0

希望你一切都好!通過Salt-Cloud Python API提供使用多個雲配置文件的實例

我通過Salt-Stack Salt-Cloud python API.

一個自動化的MongoDB副本在AWS EC2設定的部署,我想使用一個腳本來配置服務器:

client=salt.cloud.CloutClient(path'/etc/salt/cloud') 
client.profile('db_node_profile',names=['host1','host2','host3']) 

不過,我d喜歡使用不同雲配置文件創建的第一臺服務器,比如db_master_profile。 「profile」客戶端有一個vm_overrides選項(請參閱上面鏈接的文檔),但我無法找到關於它應該如何工作的更多細節。

任何人都可以瞭解vm_overrides的工作方式,如果這是一種可能的解決方案,或者使用低開銷SINGLE腳本基於Salt-Cloud配置文件配置實例的備選方法?

回答

0

vm_overrides選項用於在調配時更改小配件的配置。它可以覆蓋配置文件中設置的任何配置,但不能修改您正在使用的配置文件。

對於你的情況,你可以做兩件事情:你將與vm_overrides喜歡

  1. 改變所有的配置。由於您已經擁有特定的配置文件,因此這不太實際。

例子:

client=salt.cloud.CloutClient(path'/etc/salt/cloud') 
client.profile('db_node_profile',names=['host1','host2','host3']) 
{ 
    'host1': {'backups_active': 'False', 
    'created_at': '2014-09-04T18:10:15Z', 
    'droplet': {'event_id': 31000502, 
       'id': 2530006, 
       'image_id': 5140006, 
       'name': u'minion01', 
       'size_id': 66}, 
    'id': '2530006', 
    'image_id': '5140006', 
    'ip_address': '107.XXX.XXX.XXX', 
    'locked': 'True', 
    'name': 'minion01', 
    'private_ip_address': None, 
    'region_id': '4', 
    'size_id': '66', 
    'status': 'new'} 
} 
  • 你可以在你的腳本中調用client.profile兩次,一次用不同的配置文件 第一服務器和另一個用於 剩餘有默認配置文件的服務器。
  • 實施例:

    client=salt.cloud.CloutClient(path'/etc/salt/cloud') 
    client.profile('db_node_profile_0',names=['host1']) 
    client.profile('db_node_profile_1',names=['host2','host3']) 
    
    +0

    實際上,第二示例不起作用原樣;這是我過去試過的東西。似乎每個命令都很快從python傳遞到salt,而第二個命令在第一個命令完成之前「丟失」。如果你嘗試它,它實際上不提供第二臺機器。可能需要包含某種變體的ping測試。 –

    相關問題