向Ansible主机文件添加主机
我一直在尝试使用Ansible playbook将主机名添加到我的主机文件中。我的Ansible play如下所示,我的主机文件位于向Ansible主机文件添加主机,ansible,ansible-playbook,ansible-inventory,Ansible,Ansible Playbook,Ansible Inventory,我一直在尝试使用Ansible playbook将主机名添加到我的主机文件中。我的Ansible play如下所示,我的主机文件位于/etc/Ansible/hosts: - name: adding host playbook hosts: localhost connection: local tasks: - name: add host to ansible host file add_host: name: myvm.cloud.azure.com
/etc/Ansible/hosts
:
- name: adding host playbook
hosts: localhost
connection: local
tasks:
- name: add host to ansible host file
add_host:
name: myvm.cloud.azure.com
groups: mymasters
Playbook成功执行,但新主机名未添加到Ansible hosts文件中。有人能帮我吗?不会将主机添加到您的资源清册文件中,而是创建主机并将其添加到仅存在于内存中的资源清册中。您可以在后续播放中使用此资源清册,但它不会保存到文件中
如果您确实想使用Ansible将主机添加到清单文件中,则需要使用常规的文件编辑模块,如或
您也可以使用技巧来处理Ansible清单,但这实际上是一种黑客行为,因为清单文件实际上没有正确的INI文件结构:
- ini_file:
dest: /etc/ansible/hosts
section: mymasters
option: myvm ansible_host
value: myvm.cloud.azure.com
no_extra_spaces: yes
不会将主机添加到资源清册文件中,而是创建主机并将其添加到仅存在于内存中的资源清册中。您可以在后续播放中使用此资源清册,但它不会保存到文件中
如果您确实想使用Ansible将主机添加到清单文件中,则需要使用常规的文件编辑模块,如或
您也可以使用技巧来处理Ansible清单,但这实际上是一种黑客行为,因为清单文件实际上没有正确的INI文件结构:
- ini_file:
dest: /etc/ansible/hosts
section: mymasters
option: myvm ansible_host
value: myvm.cloud.azure.com
no_extra_spaces: yes
您可以使用模板创建主机文件 任务文件
---
- name: Create HostsFile
hosts: development
user: vagrant
become: yes
become_method: sudo
tasks:
- name: Run the Template
template: src=hostsFile.j2 dest=/tmp/file.conf owner=root group=root
模板文件:-HostsFile.j2
{{ ansible_managed }}
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
{% for group in groups %}
{% if groups[group] and group != 'all' %}
{% for host in groups[group] %}
{{hostvars[host].ansible_default_ipv4.address}} {{ ansible_hostname }}
{% endfor %}
{% endif %}
{% endfor %}
您可以使用模板创建主机文件 任务文件
---
- name: Create HostsFile
hosts: development
user: vagrant
become: yes
become_method: sudo
tasks:
- name: Run the Template
template: src=hostsFile.j2 dest=/tmp/file.conf owner=root group=root
模板文件:-HostsFile.j2
{{ ansible_managed }}
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
{% for group in groups %}
{% if groups[group] and group != 'all' %}
{% for host in groups[group] %}
{{hostvars[host].ansible_default_ipv4.address}} {{ ansible_hostname }}
{% endfor %}
{% endif %}
{% endfor %}
你可能也会喜欢将你的清单变成一个目录——这样自动条目就可以保存在自己的文件中。你可能也会喜欢将你的清单变成一个目录——这样自动条目就可以保存在自己的文件中。