ansible
asible帮助查询
ansible-doc -l
查看所有模块
ansible-doc -s module
查看某个模块的参数
ansible-doc module
查看该模块更详细的信息
Ansible Ad-hoc
格式:ansible 主机/组 -m 模块名 -a "模块参数" ansible参数
·主机和组(主机清单中的主机和组)
·模块名 (可以通过ansible-doc -l
查看目前安装的模块,默认不使用commmand模块【可在/etc/ansible/ansbile.cfg
中修改默认模块module_name = command
】)
·模块参数 (可以通过ansible-doc 模块名
查看具体的用法和后面参数)
·ansible参数
命令执行模块:
·command模块(-a 命令
可以直接执行,但是不支持命令中带有'<''>''|''&' )
ansible node1 -m command -a 'chdir=/tmp ls -l'
[WARNING]: log file at /var/log/ansible.log is not writeable and we cannot create it, aborting
node1 | CHANGED | rc=0 >>
total 0
drwx------. 2 root root 41 Dec 7 15:22 ansible_command_payload_v0vn30gd
drwx------. 3 root root 17 Dec 7 14:55 systemd-private-06fa2ec1ec8c4dabbb4617d6c0b7a66c-bluetooth.service-QjD1Hg
drwx------. 3 root root 17 Dec 7 14:55 systemd-private-06fa2ec1ec8c4dabbb4617d6c0b7a66c-colord.service-WBuaFf
drwx------. 3 root root 17 Dec 7 14:55 systemd-private-06fa2ec1ec8c4dabbb4617d6c0b7a66c-ModemManager.service-YdN9oi
drwx------. 3 root root 17 Dec 7 14:55 systemd-private-06fa2ec1ec8c4dabbb4617d6c0b7a66c-rtkit-daemon.service-bBoXfj
drwxr-xr-x. 2 root root 6 Dec 7 15:09 test.txt
drwx------. 2 root root 6 Dec 5 16:02 vmware-root_1010-2957124853
drwx------. 2 root root 6 Dec 7 14:55 vmware-root_1021-4256545058
drwx------. 2 root root 6 Nov 29 09:06 vmware-root_1025-4281777827
drwx------. 2 root root 6 Dec 6 09:20 vmware-root_1050-2957649121
·shell模块(用法和command基本一致,但shell是通过/bin/sh进行执行,所以shell模块可以执行任何命令,类似于在本机执行)
选项:
·free_form :要执行的linux指令
·chdir:在执行指令之前,先切换到该指定目录,默认目录是远程主机的家目录
·creates:一个文件名,当文件存在,则命令不执行
·removes:一个文件名,当文件不存在,则命令不执行
[hum@control ansible]$ ansible node1 -m shell -a 'chdir=/opt ls'
[WARNING]: log file at /var/log/ansible.log is not writeable and we cannot create it, aborting
node1 | CHANGED | rc=0 >>
hosts
test.txt
·raw模块(用法和shell基本一致,同样可以执行任意命令,类似本机执行,但是raw没有chdir,creates,removes参数)
·script模块(将管理端的shekk在被管理主机上执行【其原理是先将shell复制到远程主机,再在远程主机上执行】)
ansible 主机|组 -m 模块名 -a "模块参数"
[hum@control ansible]$ ansible node1 -m script -a '/home/hum/ansible/sh/script.sh'
[WARNING]: log file at /var/log/ansible.log is not writeable and we cannot create it, aborting
node1 | CHANGED => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to node1 closed.\r\n",
"stderr_lines": [
"Shared connection to node1 closed."
],
"stdout": "ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\r\n inet 192.168.10.20 netmask 255.255.255.0 broadcast 192.168.10.255\r\n inet6 fe80::20c:29ff:fe40:6b24 prefixlen 64 scopeid 0x20<link>\r\n ether 00:0c:29:40:6b:24 txqueuelen 1000 (Ethernet)\r\n RX packets 1425 bytes 836622 (817.0 KiB)\r\n RX errors 0 dropped 0 overruns 0 frame 0\r\n TX packets 954 bytes 119424 (116.6 KiB)\r\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\r\n\r\nlo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536\r\n inet 127.0.0.1 netmask 255.0.0.0\r\n inet6 ::1 prefixlen 128 scopeid 0x10<host>\r\n loop txqueuelen 1000 (Local Loopback)\r\n RX packets 74 bytes 5958 (5.8 KiB)\r\n RX errors 0 dropped 0 overruns 0 frame 0\r\n TX packets 74 bytes 5958 (5.8 KiB)\r\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\r\n\r\nvirbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500\r\n inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255\r\n ether 52:54:00:14:1b:8d txqueuelen 1000 (Ethernet)\r\n RX packets 0 bytes 0 (0.0 B)\r\n RX errors 0 dropped 0 overruns 0 frame 0\r\n TX packets 0 bytes 0 (0.0 B)\r\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\r\n\r\nFilesystem Type Size Used Avail Use% Mounted on\r\ndevtmpfs devtmpfs 1.9G 0 1.9G 0% /dev\r\ntmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm\r\ntmpfs tmpfs 2.0G 9.6M 1.9G 1% /run\r\ntmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup\r\n/dev/mapper/rhel-root xfs 16G 5.2G 11G 34% /\r\n/dev/sr0 iso9660 23M 23M 0 100% /mnt/ansible\r\n/dev/sr1 iso9660 9.5G 9.5G 0 100% /mnt/cdrom\r\n/dev/nvme0n1p1 xfs 495M 215M 281M 44% /boot\r\ntmpfs tmpfs 391M 1.2M 390M 1% /run/user/42\r\ntmpfs tmpfs 391M 0 391M 0% /run/user/0\r\ntmpfs tmpfs 391M 4.0K 391M 1% /run/user/1003\r\n",
"stdout_lines": [
"ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500",
" inet 192.168.10.20 netmask 255.255.255.0 broadcast 192.168.10.255",
" inet6 fe80::20c:29ff:fe40:6b24 prefixlen 64 scopeid 0x20<link>",
" ether 00:0c:29:40:6b:24 txqueuelen 1000 (Ethernet)",
" RX packets 1425 bytes 836622 (817.0 KiB)",
" RX errors 0 dropped 0 overruns 0 frame 0",
" TX packets 954 bytes 119424 (116.6 KiB)",
" TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0",
"",
"lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536",
" inet 127.0.0.1 netmask 255.0.0.0",
" inet6 ::1 prefixlen 128 scopeid 0x10<host>",
" loop txqueuelen 1000 (Local Loopback)",
" RX packets 74 bytes 5958 (5.8 KiB)",
" RX errors 0 dropped 0 overruns 0 frame 0",
" TX packets 74 bytes 5958 (5.8 KiB)",
" TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0",
"",
"virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500",
" inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255",
" ether 52:54:00:14:1b:8d txqueuelen 1000 (Ethernet)",
" RX packets 0 bytes 0 (0.0 B)",
" RX errors 0 dropped 0 overruns 0 frame 0",
" TX packets 0 bytes 0 (0.0 B)",
" TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0",
"",
"Filesystem Type Size Used Avail Use% Mounted on",
"devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev",
"tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm",
"tmpfs tmpfs 2.0G 9.6M 1.9G 1% /run",
"tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup",
"/dev/mapper/rhel-root xfs 16G 5.2G 11G 34% /",