无业游民ansible:选择var fron环境变量

时间:2020-11-09 14:36:11

标签: vagrant

以下是我的ansible_local相关的Vagrantfile代码:

config.vm.provision "ansible_local" do |ansible|
    ansible.become = true
    ansible.inventory_path = '/vagrant/provisioning/inventory/hosts.ini'
    ansible.playbook = "/vagrant/provisioning/playbook.yml"
    ansible.limit = 'all'
    ansible.galaxy_role_file = "/vagrant/provisioning/requirements.yml"
    ansible.galaxy_roles_path = "/etc/ansible/roles"
    ansible.galaxy_command = "sudo ansible-galaxy install --role-file=%{role_file} --roles-path=%{roles_path} --force"
end

如您所见,ansible.limitall

├── ansible.cfg
├── provisioning
│   ├── group_vars
│   │   └── all.yml
│   ├── inventory
│   │   ├── hosts.ini
│   │   └── hosts.yml
│   ├── playbook.yml
│   └── requirements.yml
└── Vagrantfile

all.yml的内容是:

solr_cores:
mssql_restore_backups: false

我需要替换mssql_restore_backup的默认值,以便从环境变量中获取它。

反正有将环境变量值传递给ansible供应商吗?

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在Ansible中,市长优先级的变量为extra-vars,您可以按如下所示将其添加到Vagrantfile中

ansible.extra_vars = {
  mssql_restore_backup: $MSSQLRESTOREBACKUP
}

文档:

https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#understanding-variable-precedence

https://www.vagrantup.com/docs/provisioning/ansible_common#extra_vars