Vagrant 在Ansible中为流浪VM设置主机名
为了测试Ansible,我设置了一个Vagrant VM,它可以通过Vagrant 在Ansible中为流浪VM设置主机名,vagrant,ansible,vagrantfile,Vagrant,Ansible,Vagrantfile,为了测试Ansible,我设置了一个Vagrant VM,它可以通过Vagrant provision进行配置,如下所示 config.vm.provision "ansible" do |ansible| ansible.playbook = "site.yml" end 在文件中。当我将hosts设置为all时,此功能会起作用 - hosts: all sudo: true roles: - common - ssl - webserver 或者,文件
Vagrant provision
进行配置,如下所示
config.vm.provision "ansible" do |ansible|
ansible.playbook = "site.yml"
end
在文件中
。当我将hosts
设置为all
时,此功能会起作用
- hosts: all
sudo: true
roles:
- common
- ssl
- webserver
或者,文件
.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
这是由流浪者自己说的
default ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
这意味着流浪VM的名称是default
。因此,
- hosts: default
也做我想做的。但是,我希望对VM有一个更具体的名称(例如,vagrant
)
有没有办法把这个名字改成别的名字?你可以从流浪汉医生那里读到
如果要更改虚拟机的名称,可以使用以下命令
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还提出了一个选项,允许您编写自己的库存文件,并使用该选项进行引用。诀窍是定义VM(这里有两个VMproduction
和staging
):
然后vagrant生成以下库存:
production ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
staging ansible_ssh_host=127.0.0.1 ansible_ssh_port=2200
另请参见。若要仅更改中的目录主机名。vagrant/provisioners/ansible/inventory/vagrant\u ansible\u inventory
,请使用:
config.vm.define "myvm"
这将产生以下结果:
# Generated by Vagrant
myvm ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
因此,ansibleinventory\u主机名
将变成myvm
如果要同时更改计算机的主机名,请使用:
config.vm.define "myvm" do |myvm|
myvm.vm.hostname = "myvm.example.com"
end
这只会更改虚拟机内的主机名,而不会更改.vagrant/provisioners/ansible/inventory/vagrant\u ansible\u inventory的内容,因此ansible所指的名称不会更改。
config.vm.define "myvm" do |myvm|
myvm.vm.hostname = "myvm.example.com"
end