Ansible ad-hoc
什么是Ansible的ad-hoc
ad-hoc简而言之就是“临时命令”,执行完即结束,并不会保存
# 使用场景
比如在多台机器上查看某个进程是否启动,或拷贝指定文件到本地,等等
Ansible ad-hoc的命令使用
Ansible ad-hoc的返回的颜色
绿色: 代表被管理端主机没有被修改
黄色: 代表被管理端主机发现变更
红色: 代表出现了故障,注意查看提示
Ansible ad-hoc常用的模块
command # 执行shell命令(不支持管道等特殊字符)
shell # 执行shell命令
scripts # 执行shell脚本
yum_repository # 配置yum仓库 #只能 centos debian建议用copy
yum # 安装软件
apt # 安装软件
copy # 变更配置文件
file # 建立目录或文件
service # 启动与停止服务
mount # 挂载设备
cron # 定时任务
get_url #下载软件
firewalld #防火墙
selinux #selinux
Ansible-doc帮助手册
ansible-doc -l # 查看所有模块说明
ansible-doc copy # 查看指定模块方法
ansible-doc -s copy # 查看指定模块参数
实战演练(命令模块)
command
### 默认的模块就是command
[root@li ~]#ansible all -a 'hostname'
bbb01 | CHANGED | rc=0 >>
103
aaa02 | CHANGED | rc=0 >>
102
aaa01 | CHANGED | rc=0 >>
101
shell
[root@li ~]#ansible all -m shell -a "df -h|grep /dev "
bbb01 | CHANGED | rc=0 >>
/dev/sda3 98G 12G 81G 13% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda2 512M 6.1M 506M 2% /boot/efi
/dev/sr0 4.5G 4.5G 0 100% /media/a103/Ubuntu 22.04.5 LTS amd64
aaa02 | CHANGED | rc=0 >>
/dev/sda3 89G 8.8G 76G 11% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 9.1G 284K 8.6G 1% /tmp
/dev/sr0 5.8G 5.8G 0 100% /media/ubuntu101/Ubuntu 24.04.1 LTS amd64
aaa01 | CHANGED | rc=0 >>
/dev/sda2 98G 11G 83G 12% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sr0 5.8G 5.8G 0 100% /media/aa/Ubuntu 24.04.1 LTS amd64
script
# 编写脚本
[root@m01 ~]# vim /root/aa.sh
#!/usr/bin/bash
ls -l
#在本地运行模块,等同于在远程执行,不需要将脚本文件进行推送目标主机执行
[root@m01 ~]# ansible all -m script -a "/root/aa.sh"
[root@li ~]#ansible all -m script -a "/root/aa.sh"
bbb01 | CHANGED => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 10.0.0.103 closed.\r\n",
"stderr_lines": [
"Shared connection to 10.0.0.103 closed."
],
"stdout": "总计 4\r\ndrwx------ 5 root root 4096 10月 16 2024 snap\r\n",
"stdout_lines": [
"总计 4",
"drwx------ 5 root root 4096 10月 16 2024 snap"
]
}
aaa01 | CHANGED => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 10.0.0.101 closed.\r\n",
"stderr_lines": [
"Shared connection to 10.0.0.101 closed."
],
"stdout": "总计 4\r\ndrwx------ 6 root root 4096 10月 13 09:48 snap\r\n",
"stdout_lines": [
"总计 4",
"drwx------ 6 root root 4096 10月 13 09:48 snap"
]
}
aaa02 | CHANGED => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 10.0.0.102 closed.\r\n",
"stderr_lines": [
"Shared connection to 10.0.0.102 closed."
],
"stdout": "总计 4\r\ndrwx------ 6 root root 4096 10月 15 2024 snap\r\n",
"stdout_lines": [
"总计 4",
"drwx------ 6 root root 4096 10月 15 2024 snap"
]
}