如何在ansible中遍历主机名或IP

斯里纳斯

我试图在Ubuntu 14.04中使用Ansible剧本设置和配置起搏器。

截至目前,仅在一个节点上对其进行测试。因此,在主机文件中,我只是保留了该节点的信息

[hostname]
1.2.3.4   ansible_ssh_private_key_file=/home/ubuntu/test.pem

在剧本YAML文件中,我尝试安装和配置起搏器

- hosts: all
  sudo: yes
  tasks:
    - name: install pacemaker
      apt: name=pacemaker state=present
    - name: install corosync
      apt: name=corosync state=present
    - name: install fence-agents
      apt: name=fence-agents state=present
    #- copy: src=corosync_start dest=/etc/default/corosync
    #- shell: update-rc.d -f pacemaker remove
    #- shell: update-rc.d pacemaker start 50 1 2 3 4 5 . stop 01 0 6 .

安装在我的节点中正确进行。但是对于配置,我需要编辑/etc/corosync/corosync.conf,在其中我需要指定我的主机地址来代替bindnetaddress

假设我在[主机名]部分下有多个条目-Ansible中有什么方法可以在YAML文件中对其进行循环?

我正在尝试使用sed命令替换IP。您能解释一下如何循环或打印IP吗?

我尝试过这样

- hosts: all
  sudo: yes
  tasks:
    - debug: msg = "{{ ansible_hostname }}"
    - name: Test
      task: {% for host in groups['app_servers'] %}
            {{host}}
            {% endfor %}
maque

抱歉让您对我的评论感到困惑,假设您有库存文件

    [ALL]
host1.com
host2.com

您的yaml文件应如下所示(使用with_items)

- hosts: all
  sudo: yes
  tasks:
    - name: install pacemaker
      apt: name=pacemaker state=present
    - name: install corosync
      apt: name=corosync state=present
    - name: install fence-agents
      apt: name=fence-agents state=present
    - copy: src=corosync_start dest=/etc/default/corosync
    - lineinfile: dest=/etc/selinux/config line="my host {{ item }}"
      with_items: groups['ALL']

请记住,它将为每个主机创建每一行,我认为您正在寻找的内容实际上不是循环而是获取当前主机名(ansible_hostname):

 - hosts: all
      sudo: yes
      gather_facts: yes
      tasks:
        - name: install pacemaker
          apt: name=pacemaker state=present
        - name: install corosync
          apt: name=corosync state=present
        - name: install fence-agents
          apt: name=fence-agents state=present
        - copy: src=corosync_start dest=/etc/default/corosync
        - lineinfile: dest=/etc/selinux/config line="my host {{ ansible_hostname }}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ansible中遍历主机名或IP

来自分类Dev

如何基于AWS EC2库存主机名的IP地址访问Ansible剧本中的主机名标签?

来自分类Dev

Ansible:如何在分配DNS之前设置主机名

来自分类Dev

如何在主机文件中交换fqdn <->主机名

来自分类Dev

如何从IP(Linux)获取主机名?

来自分类Dev

Ansible获取库存主机组的主机名和IP

来自分类Dev

PHP - 从主机名中检索 IP

来自分类常见问题

如何在docker-compose中设置主机名?

来自分类Dev

如何在Python中获取标准主机名?

来自分类Dev

如何在Qt中解析网络主机名+端口?

来自分类Dev

如何在C#中获取完整的主机名?

来自分类Dev

如何在httpclient中设置请求主机名

来自分类Dev

如何在chroot中解析主机名?

来自分类Dev

如何在jboss中禁用主机名验证

来自分类Dev

如何在yast中设置主机名?

来自分类Dev

如何在Wireshark中按主机名过滤?

来自分类Dev

如何在JAVA中设置主机名?

来自分类Dev

如何在Debian中启用主机名解析?

来自分类Dev

如何在bash中更改主机名的颜色?

来自分类Dev

如何在ssh config中匹配实际的主机名?

来自分类Dev

如何在bash中获取映射到docker容器的特定主机名的所有IP地址

来自分类Dev

IP到主机名

来自分类Dev

IP到主机名

来自分类Dev

从 IP 获取主机名

来自分类Dev

如何在DHCP服务器上将主机名设置为IP地址的特定范围?

来自分类Dev

如何在家庭网络上使用主机名而不是IP地址?

来自分类Dev

如何在DHCP服务器上将主机名设置为IP地址的特定范围?

来自分类Dev

如何在家庭网络上使用主机名而不是IP地址?

来自分类Dev

如何在Bash脚本中将主机名解析为IP地址?

Related 相关文章

热门标签

归档