为了测试Ansible,我设置了一个Vagrant VM,可以配置vagrant provision
,给定
config.vm.provision "ansible" do |ansible|
ansible.playbook = "site.yml"
end
Vagrantfile
中的。这在我将hosts
设置为all
,
- hosts: all
sudo: true
roles:
- common
- ssl
- webserver
或者,文件
.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
由Vagrant自己生成
default ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
表示Vagrant VM的名称为default
。因此,
- hosts: default
也做我想要的。但是,我想为VM设置一个更具体的名称(例如vagrant
)。
有没有办法将该名称更改为其他名称?
答案 0 :(得分:3)
要在.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
中更改仅库存主机名,请使用:
config.vm.define "myvm"
这将生成以下内容:
# Generated by Vagrant
myvm ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
因此,ansible inventory_hostname
将成为myvm
。
如果您想同时更改本机的主机名,请使用:
config.vm.define "myvm" do |myvm|
myvm.vm.hostname = "myvm.example.com"
end
答案 1 :(得分:1)
您可以阅读vagrant doc
中的The inventory file如果要更改VM的名称,可以使用
Vagrant.configure("2") do |config|
config.vm.define "host1"
config.vm.provision "ansible" do |ansible|
ansible.playbook = "site.yml"
将产生库存文件
# Generated by Vagrant
host1 ansible_ssh_host=...
请注意,vagrant还提出了static inventory选项,允许您使用inventory_path
选项编写自己的库存文件和参考