Ansible ad-hoc


什么是Ansible的ad-hoc

ad-hoc简而言之就是“临时命令”,执行完即结束,并不会保存
# 使用场景
比如在多台机器上查看某个进程是否启动,或拷贝指定文件到本地,等等

Ansible ad-hoc的命令使用

image-20241015211019186

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"
    ]
}