ansible使用技巧
ansible-playbook,获取当前被控机 ip
play中设置 gather_facts: true
- name: 集群管理
gather_facts: true
hosts: "{{ myhost }}"
roles:
- common
使用以下变量获取ip
{{ ansible_facts[‘网卡名称’]['ipv4']['address'] }}
在jinjia2 中获取索引位数
# 先开启一个循环,在循环中找到自己要的值,通过 loop.index 获取对应的索引位置
# loop.index 是从 1 开始计数 loop.index0 是从0开始计数
{% for ip in groups['kafka'] %} {% if ansible_facts[‘网卡名称’]['ipv4']['address'] == ip %}
broker.id={{ loop.index0 }}
{% endif %}
{% endfor %}
jinjia2 列表字符串凭借
# 先声明一个变量,然后把端口和分隔符拼接到一起,通过join进行串联,最后的主机后面添加个端口
{% set str= ':'+zkport+',' %}
zookeeper.connect={{ groups['zookeeper']|join(str) }}:{{ zkport }}
ansible 指定主机组中的单独主机执行 --limit
ansible-playbook -i hosts te.yml --limit 192.168.0.12