Ansible 命令
Ansible 有多个命令,不同命令有不同的功能,以下列出一些常用的命令和常用参数。
常用命令
# 设置 ansible 的配置文件
ansible-config
# 查看 ansible 相关模块和模块文档
ansible-doc
# 查看 ansible 的主机清单
ansible-inventory
# 执行临时任务
ansible
# 执行 ansible 的 playbook
ansible-playbook
# 设置 ansible 的角色
ansible-galaxy
# ansible 相关文件加密或解密
ansible-vault
Ansible-config 常用参数
# 生成一个注释所有配置的 ansible 配置文件
ansible-config init --disabled -t all > ./ansible.cfg
Ansible-doc 常用参数
# 列出所有支持的模块
ansible-doc -l
# 查看模块参数
ansible-doc -s <模块名>
# 查看模块案例
ansible-doc <模块名>
# 这个可以通过搜索 EXAMPLE 来快速查看使用方法
# 按类型列出模块
ansible-doc -t cache -l # 列出所有缓存模块
Ansible-inventory 常用参数
# 列出所有主机
ansible-inventory -i inventory --list
-i # 指定主机清单文件
--list # 列出所有主机
# 查看某一个主机
ansible-inventory -i inventory --host server1
# 以树状图显示并显示变量
ansible-inventory -i inventory --graph --vars
# 以 toml 格式输出主机清单
ansible-inventory -i inventory --list --toml
# 以 yaml 格式输出主机清单
ansible-inventory -i inventory --list --yaml
# 将内容输出到文件里
ansible-inventory -i inventory --list --output file
Ansible 常用参数
ansible all -u root -k -m command -a 'pwd chdir=/opt removes=/root/anaconda-ks.cfg'
all # 表示需要执行任务的主机或主机组
-m # 后接要使用的模块
command # 使用的模块
-u root # 指定连接用户
-k # 手动输入密码
-a # 后接模块的参数
有的地方可能会提到 Ansible Ad-Hoc,Ansible Ad-Hoc 就是
ansible
命令,通过命令的方式执行简单任务(一次使用一个模块执行一个任务)。
Ansible-playbook 常用参数
ansible-playbook --become --become-method sudo \
--become-user root -i inventory \
--ask-pass --ask-become-pass playbook.yaml
--become # 启动提权
--become-method # 设置提权方法
--become-user # 设置提权到什么用户
--ask-pass # 输入远程用户密码
--ask-become-pass # 设置提权密码
# 检查 playbook 是否有语法错误
ansible-playbook --syntax-check playbook.yaml
# 执行 playbook 但不做更改
ansible-playbook --check playbook.yaml
Ansible-galaxy 常用选项
# 列出所有 role
ansible-galaxy role list
# 初始化一个名为 role 的 role1
ansible-galaxy role init role1
# 下载集合
ansible-galaxy collection download
Ansible-vault 常用选项
# 创建加密文件
ansible-vault create test1
# 对已有文件进行加密
ansible-vault encrypt test
# 对字符串 username=root 进行加密
ansible-vault encrypt_string "username=root"
# 编辑加密文件
ansible-vault edit test
# 查看加密文件
ansible-vault view test
# 修改文件密码
ansible-vault rekey test
# 解密文件
ansible-vault decrypt test2