0

希望你们一切都好!

我正在通过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 配置文件配置实例的替代方式吗?

4

1 回答 1

0

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

对于您的情况,您可以做两件事:

  1. 使用 .更改您想要的所有配置vm_overrides。这不切实际,因为您已经有一个特定的配置文件。

例子:

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两次,一次用于具有不同配置文件的第一台服务器,另一次用于具有默认配置文件的其余服务器。

例子:

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'])
于 2016-12-19T15:14:50.867 回答