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测试。 –

    相关问题