美文网首页
ansible group 的一些难解问题

ansible group 的一些难解问题

作者: 陈sir的知识图谱 | 来源:发表于2018-11-12 21:26 被阅读0次

获取group 中的IP 信息

group 信息如下

node-01 ansible_ssh_host=192.168.100.101
node-02 ansible_ssh_host=192.168.100.102
node-03 ansible_ssh_host=192.168.100.103
node-04 ansible_ssh_host=192.168.100.104
node-05 ansible_ssh_host=192.168.100.105

[mainnodes]
node-[01:04]

获取IP 方法

方法1

vars:
  {% set main_nodes_ip_arr=[] %}
  {% for host in groups['mesos-slave'] %}
     {% if main_nodes_ip_arr.insert(loop.index,hostvars[host]['ansible_ssh_host']) %} {% endif %}
  {% endfor %}
  main_nodes_ips: "{{main_nodes_ip_arr|join(',')}}"
  main_nodes_ips_with_port: "{{main_nodes_ip_arr|join(':3000,')}}"

在ansible 2+ 之后 ansible_ssh_host 已经被标注为过时,改用ansible_host 了。

方法2

main_nodes_ips: "{{ groups['mainnodes'] | map('extract', hostvars, ['ansible_ssh_host']) | join(',') }}"
main_nodes_ips_with_port: "{{ groups['mainnodes'] | map('extract', hostvars, ['ansible_ssh_host']) | join(':3000,') }}:3000"

注意,以上方法要求所有的host 主机都必须使用带ansible_ssh_host 格式的定义,不然模板里会报找不到ansible_ssh_host属性的错误。

其他参考

相关文章

网友评论

      本文标题:ansible group 的一些难解问题

      本文链接:https://www.haomeiwen.com/subject/pvlhfqtx.html