您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Openstack文件和元數據注入的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
openstack在創建實例的時候可以將文件注入到實例中,也可以傳一些參數到實例,這在有些情況下會非常有用,比如修改root密碼,注入ssh密鑰,對實例的個性化定制(后面會舉例子) Note: 只有注入文件失敗才會使創建實例過程失敗 對注入的支持可以有loop, guestfs, nbd, mount等,其中 mount 不安全。缺省使用: img_handlers=”loop,nbd,guestfs” 對于nbd,在ubuntu下只需要加載內核模塊(modprobe nbd)和安裝qemu-nbd 在centos下就比較麻煩了,需要手工編譯 nbd 和 qemu-nbd Guestfs方法比較簡單,只需要安裝正確的包就可以,ubuntu下安裝guestmount, centos需要安裝libguestfs和fuse
本文檔是以nova命令行的方式,圖形對有些參數的支持還沒有
使用nova命令需要設置以下參數
export OS_USERNAME=user
export OS_PASSWORD=pass
export OS_TENANT_NAME='tenant'
export OS_AUTH_URL=http://localhost:5000/v2.0
注入ssh密鑰
a) 創建密鑰(ssh-keygen)
b) 添加密鑰對
i. nova keypair-add --pub_key .ssh/id_rsa.pub mykey
c) 創建實例的時候注入密鑰
i. nova boot --key_name mykey --image id_of_image --flavor 1 name_of_instance
Note: id_of_image可以通過nova image-list取得
注入文件
假如我要注入.vimrc這個文件到新創建的實例中,可以:
nova boot --file /root/.vimrc=/root/.vimrc --image id_of_image --flavor 1 name_of_instance
Note: 可以注入多個文件(最多5個),只要寫多個--file <dst-path=src-path>
注入元數據
可以通過--meta給實例中傳入鍵值對,注入后會寫在/meta.js文件里,以類似python字典的方式存儲在虛擬機的/meta.js文件中
nova boot --meta key2=value2 --meta key1=value1 --image id_of_image --flavor 1 name_of_instance
Cat /meta.js # 虛擬機中
{"key2": "value2", "key1": "value1"}
示例:
假如我們想讓新創建的實例運行一個初始化腳本,但這個腳本會根據不用的需求有所變化,我們可以這樣做
在創建鏡像模板的時候在/etc/rc.local中加入
/opt/init.py
Init.py可以讀取注入的元數據(meta.js)比如
{"url": "http://example.com/init.sh"}
得到初始化腳本的地址,下載下來并執行,這樣的好處是對不同的需要可以有多個初始化文件,而不用修改模板
關于“Openstack文件和元數據注入的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。