文章

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

itemloop 的默认变量名,用于遍历列表:

- 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 进行授权