saltstack之virt模組建立虛擬機器分析之二

2021-09-04 04:31:47 字數 2595 閱讀 5023

那今天說下第2種,命令執行格式如下:

salt 'kvm.tiancity.com' virt.init web20 4 512 nic=nics disk=system

在這裡,我們需要注意下對與kvm/qemu不允許使用profile,我們需要將virt.py改下**:

這樣,就允許我的試驗環境了。

我的想法是,我的虛擬機器映象檔案被儲存在

/var/lib/libvirt/images/web20/system.raw,看下我如何構造磁碟的資料結構呢.

diskp=[}]

從分析**中,

default = [}]

elif hypervisor in ['qemu', 'kvm']:

overlay =

disklist = __salt__['config.get']('virt:disk', {}).get(profile, default)

看出來沒,在沒有提供disk的profile的情況下,我們使用的是default的資料,再使用

for key, val in overlay.items():

for i, disks in enumerate(disklist):

for disk in disks:

if key not in disks[disk]:

disklist[i][disk][key] = val

就會獲取到disklist=

[}]在這裡我需要改變pool,那麼我咋整呢?我可以用grains,pillar來設定.

root@saltstack:/srv/salt/_grains# more virt_disk_nic.py

def disk_profile():

grains = {}

grains['virt']=}

grains['virt']['disk']['system']={}

grains['virt']['disk']['system']=[}]

return grains

同步grains

root@saltstack:/srv/salt/_grains# salt 'kvm.tiancity.com' saltutil.sync_all

kvm.tiancity.com:

----------

grains:

- grains.virt_disk_nic

modules:

outputters:

renderers:

returners:

states:

測試:root@saltstack:/srv/salt/_grains# salt 'kvm.tiancity.com' config.get virt:disk --output=json}]

}}那麼對應的profile名字是system,所以,如果你想使用另類的profile名字,你僅需要修改的

grains['virt']['disk']['system(profile名字)']={}

接下來,我們再來構造網絡卡的構造

default = [}]

kvm_overlay =

config_data = __salt__['config.get']('virt:nic', {}).get(

profile_name, default

)inte***ces=

以上幾處便是將inte***ce網絡卡相關屬性資訊新增到inte***ces列表中的

inte***ces=

那麼網絡卡和磁碟的構造:

def disk_nic():

grains = {}

grains['virt']=,'nic':{}}

grains['virt']['disk']['system']={}

grains['virt']['nic']['nics']=[}]

grains['virt']['disk']['system']=[}]

return grains

測試:root@saltstack:/srv/salt/_grains# salt 'kvm.tiancity.com' config.get virt:nic --output=json         }]

}}好了,我們所有的東西都構造好了,那麼我們來執行下,看看能不能正常啟動我的虛擬機器web20,當然映象檔案已經放置好到/var/lib/libvirt/images/web20/system.raw

開始執行吧...

秒開....

哈哈。下次,我再嘗試下,新增一塊資料盤和新增一塊網絡卡。

到時再看看能不能正常啟動。

saltstack之virt模組建立虛擬機器分析之二

那今天說下第2種,命令執行格式如下 salt kvm.tiancity.com virt.init web20 4 512 nic nics disk system 在這裡,我們需要注意下對與kvm qemu不允許使用profile,我們需要將virt.py改下 這樣,就允許我的試驗環境了。我的想法...

saltstack 模組學習之 state

入口檔案top.sls 三要素 環境 通過file roots指定 目標主機 可以使用萬用字元 配置檔案路徑 路徑分割符為.比如a.mysql 表示在環境指定的路徑下有個a目錄,a目錄下有個mysql.sls檔案 每個相同要素下的元素為並列關係,使用列表 source salt hello etc ...

SaltStack之sshd去DNS解析

saltstack之sshd去dns解析 環境 os centos6.5 x64 master salt master.example.com minion salt minion1.example.com salt minion2.example.com 參考文件 多數發行版的sshd服務都預設開...