通过Salt-Cloud Python API使用多个云配置文件配置实例

时间:2016-12-13 21:49:15

标签: python amazon-web-services amazon-ec2 salt-stack salt-cloud

希望你们一切顺利!

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

自动部署AWS EC2中的MongoDB副本集

我想使用单个脚本来配置服务器:

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

但是,我希望使用不同的云配置文件创建第一台服务器,比如db_master_profile。 “profile”客户端有一个vm_overrides选项(参见上面链接的文档),但我找不到它应该如何工作的更多细节。

任何人都可以了解vm_overrides如何工作,如果这是一个可能的解决方案,或者使用低开销的SINGLE脚本基于Salt-Cloud配置文件配置实例的替代方式?

1 个答案:

答案 0 :(得分:0)

vm_overrides选项用于在配置时更改小兵的配置。它可以覆盖配置文件中设置的任何配置,但不能修改您正在使用的配置文件。

对于你的情景,你可以做两件事:

  1. 使用vm_overrides更改您想要的所有配置。由于您已经拥有特定的个人资料,因此不切实际。
  2. 示例:

    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'}
    }
    
    1. 您可以在脚本中调用client.profile两次,一次调用 第一台服务器有不同的配置文件,另一台服务器用于 剩余服务器使用默认配置文件。
    2. 示例:

      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'])