Ansible 常用命令汇总,运维自动化必备收藏!
今天我们来分享一下ansible的常用命令。
命令
说明
ansible --version
查看 Ansible 版本
ansible all -m ping
测试所有主机连通性
ansible <主机组> -m ping
Ping 指定主机组
ansible webservers -m command -a "uptime"
在目标主机上执行 shell 命令
ansible all -i <ip>, -m ping
临时执行命令(逗号不能省)
2. 主机清单命令
说明
ansible-inventory --list
显示当前 inventory 的主机列表(JSON 格式)
ansible-inventory --graph
图形化显示主机组结构
ansible-inventory -i <inventory文件> --list
使用指定 inventory 文件显示主机列表
3. 模块使用(常用模块)命令
说明
-m ping
测试连通性
-m shell -a "<命令>"
使用 shell 模块执行命令
-m command -a "<命令>"
使用 command 模块(不支持管道、重定向等)
-m copy -a "src=/etc/hosts dest=/tmp/hosts"
复制文件到远程主机
-m fetch -a "src=/var/log/messages dest=/tmp"
从远程主机拉取文件
-m file -a "path=/tmp/test state=touch"
创建空文件
-m file -a "path=/tmp/test state=absent"
删除文件
-m yum -a "name=httpd state=present"
安装软件包
-m service -a "name=httpd state=started enabled=true"
启动并设置服务开机自启
-m user -a "name=testuser state=present"
创建用户
-m group -a "name=testgroup state=present"
创建用户组
4. Playbook 相关命令
说明
ansible-playbook site.yml
执行 playbook
ansible-playbook -i hosts site.yml
指定 hosts 文件执行
ansible-playbook --check site.yml
模拟执行(不会真正更改)
ansible-playbook --syntax-check site.yml
语法检查
ansible-playbook -v/-vv/-vvv
增加详细日志输出
ansible-playbook site.yml --start-at-task="task名"
从指定任务开始执行
5. 密钥与权限命令
说明
ansible all -m ping -u root
指定用户执行
ansible all -m ping -u root --ask-pass
提示输入 SSH 密码
ansible-playbook site.yml -K
提示 sudo 密码
ansible-playbook site.yml --ask-vault-pass
提示输入加密变量密码
6. Vault(敏感信息加密)命令
说明
ansible-vault create secret.yml
创建加密文件
ansible-vault edit secret.yml
编辑加密文件
ansible-vault view secret.yml
查看加密文件
ansible-vault encrypt file.yml
加密文件
ansible-vault decrypt file.yml
解密文件
ansible-playbook playbook.yml --vault-password-file ~/.vault_pass.txt
从文件中读取密码
ansible-playbook playbook.yml --ask-vault-pass
运行 playbook 时询问密码
7. 实用技巧命令
说明
ansible-doc -l
查看所有模块
ansible-doc <模块名>
查看指定模块说明
ansible-doc -s copy
显示模块参数结构(推荐)
ansible-playbook --tags "install"
执行指定标签的任务
ansible-playbook --skip-tags "install"
跳过指定标签的任务
ansible-playbook -e "var1=value1"
-e :临时传入变量