Ansible ad-hoc 是一种通过命令行批量管理的方式
格式: ansible 主机集合 -m 模块名 -a "具体命令"
其它选项:
-k 使用密码远程
-i 指定主机q清单文件
[root@control ~]# cd ~/ansible
[root@control ansible]# ansible all --list-hosts #查看所有主机列表
[root@control ansible]# ansible node10 -m ping #调用ping模块
[root@control ansible]# ansible node10,node20 -m ping
[root@control ansible]# ansible webserver -m ping
Ansible帮助命令
ansible-doc #帮助命令
ansible-doc -l #列出所以的模块
ansible-doc 模块名 #查看模块的详细信息
ansible-doc 模块名 -s #查看模块的选项使用说明
[root@control ansible]# ansible node10 -m command -a "uptime"
[root@control ansible]# ansible node10 -m command -a "uname -r"
[root@control ansible]# ansible node10 -m command -a "ip a s eth0"
[root@control ansible]# ansible node10 -a "ip a s eth0"
[root@control ansible]# ansible all -a "date"
[root@control ansible]# ansible-doc -l #列出所有模块
[root@control ansible]# ansible-doc -l | grep yum #过滤模块
[root@control ansible]# ansible-doc yum #查看模块帮助
ad-hoc 模式执行流程
模块执行的工作流程:
1.主控端命令行执行命令;
2.将模块拷贝到受控端;
3.按照模块定义的操作在受控端执行;
4.返回信息,删除受控端模块;
Ansible执行命令的返回值颜色:
屎黄色:执行命令成功,并且做了修改;
草帽绿:执行命令成功,只查看信息,没有修改
玫瑰红:执行失败,报错
葡萄紫:表示对命令发错的操作有警告信息
Ansible常见返回值
常用模块
command # 默认使用模块,用于远程执命令,不支持管道
shell # 远程执行命令,支持管道
raw # ssh登录,再执行
script # 远程执行本地脚本
yum # 远程安装
copy # 推送文件
file # 对文件操作
service # 控制启动关闭服务
systemd # 控制启动关闭服务
cron # 定时任务模块
mount # 挂载与卸载模块
user/group # 用于管理的用户创建与删除
unarchive # 解压缩模块
get_url # 下载文件,类似于curl
firewalld # 防火墙
selinux # selinux
setup # 获取主机信息
git # git命令模块
sysctl # 控制内核
评论区