ansible常用方法
ansible常用方法
本文档整理了 Ansible 日常使用中的常用方法和技巧。
检查语法错误
在运行 playbook 之前,可以先检查语法是否正确:
ansible-playbook --syntax-check xx.yml 模拟执行(Dry Run)
使用 -C 参数可以模拟执行 playbook,不会实际修改目标主机:
ansible-playbook -C xx.yml 查看当前需要执行的主机
在执行 playbook 之前,可以查看哪些主机会被执行:
ansible-playbook xx.yml --list-hosts 变量注册
--- - hosts: webservers gather_facts: false tasks: - name: output network port status ansible.builtin.shell: netstat -nltp register: net_port - name: show output ansible.builtin.debug: msg: "{{ net_port.stdout_lines }}" 获取远程主机所有变量信息
使用 setup 模块可以获取远程主机的所有系统变量信息:
ansible web01 -m setup 条件判断:匹配主机名
使用 is match 进行模式匹配,常用于条件判断:
# 匹配以 web 开头的主机名 when: (ansible_hostname is match ("web*")) # 也可以不使用括号 when: (ansible_hostname is match "web*") # 多个条件使用 or 连接 when: (ansible_hostname is match ("web*")) or (ansible_hostname is match ("lb*")) 循环:使用 loop 和 item
item 是 loop 的默认变量名,用于遍历列表:
- name: loop example ansible.builtin.debug: msg: "item={{ item }}" loop: - 1.txt - 2.txt - 3.txt 查看标签列表
查看 playbook 中定义的所有标签:
ansible-playbook tag.yml --list-tags 本文由作者按照 CC BY 4.0 进行授权