ansible的ad hoc命令行格式:
ansible <host-pattern> -i <inventory path> -m <moudle> -a <moudle argument>
<host-pattern> :表示 某个主机组或者某个主机
-i 参数后面跟inventory路径,<inventory path>表示inventory路径
-m 参数后面跟模块,比如 shell、command、copy、ping、yum等等
-a 后面跟的是模块的参数
例:
[root@bogon lizf]# ansible test -i /home/lizf/host -m shell -a 'ls /tmp/' 192.168.131.129 | CHANGED | rc=0 >> ansible_command_payload_dM2M60 systemd-private-7daea4ed89884c8ca5fc9f2ca1bd4766-chronyd.service-Xpd1xn vmware-root_715-4281843213
ansible基础模块使用:
ansible-doc -l 列出当前系统中所有的ansible模块
当你想查看某一个模块的用法时,可以用ansible-doc <模块名称>,当然查看到的都是playbook格式的操作。
下面列出一下常用的ansible模块以及用法:
命令模块: command、shell
文件模块:copy、fetch、lineinfile
用户模块:user、group
定时任务模块:cron
安装模块:yum
压缩解压模块:unarchive
服务模块:service
挂载模块:mount
command
适合使用简单的命令 无法支持"<",">","|",";","&"等符号,如果ansible命令不加-m参数,默认就使用command模块
[root@bogon lizf]# ansible test -i host -m command -a 'hostname' 192.168.131.129 | CHANGED | rc=0 >> bogon
shell
类似command模块升级版—万能模块,可以写shell命令,可以使用"<",">","|",";","&"等符号特殊符号
[root@bogon lizf]# ansible test -i host -m shell -a 'egrep -v "^#|^$" /etc/ssh/sshd_config' 192.168.131.129 | CHANGED | rc=0 >> HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key SyslogFacility AUTHPRIV AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes ChallengeResponseAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials no UsePAM yes X11Forwarding yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS Subsystem sftp /usr/libexec/openssh/sftp-server
copy
copy模块是常用的文件拷贝模块,后面可以加很多的参数
src 指定需要将本地拷贝的文件路径
dest 需要拷贝到目标主机的路径
mode 设置拷贝到目标主机的权限
group 设置拷贝文件的属组信息
owner 设置拷贝文件的属主用户信息
force 当设置为yes时,如果目标主机有同名的文件,将会覆盖;设置为no时则原文件不会做改变
backup 默认为no,当设置为yes时,如果目标主机有同名的文件时,先备份原文件,然后再覆盖
[root@bogon lizf]# ansible test -i /home/lizf/host -m copy -a 'src=/home/lizf/host dest=/home/ mode=0777 owner=lizf group=lizf backup=yes' 192.168.131.129 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": true, "checksum": "ae983bbcb03c06e321b54652af1a0b43a14628d5", "dest": "/home/host", "gid": 1000, "group": "lizf", "md5sum": "a3fb8ee7823ccf7ca7b5af22279f0ce6", "mode": "0777", "owner": "lizf", "secontext": "unconfined_u:object_r:user_home_dir_t:s0", "size": 24, "src": "/root/.ansible/tmp/ansible-tmp-1628262316.65-245400100393655/source", "state": "file", "uid": 1000 } [root@bogon lizf]# ansible test -i /home/lizf/host -m shell -a 'ls -l /home/' 192.168.131.129 | CHANGED | rc=0 >> 总用量 4 -rwxrwxrwx. 1 lizf lizf 24 8月 6 23:05 host drwx------. 3 lizf lizf 132 8月 5 00:04 lizf
fetch
抓取文件到ansible主机
src : 被管理主机中文件的路径
dest :ansible主机要保存的文件路径
[root@bogon lizf]# ansible test -i /home/lizf/host -m fetch -a 'src=/tmp/xiaozhi.txt dest=/home/lizf/' 192.168.131.129 | CHANGED => { "changed": true, "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709", "dest": "/home/lizf/192.168.131.129/tmp/xiaozhi.txt", "md5sum": "d41d8cd98f00b204e9800998ecf8427e", "remote_checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709", "remote_md5sum": null } [root@bogon lizf]# tree -n 5 /home/ 5 [error opening dir] /home/ ├── ansible.cfg ├── lizf │ ├── 192.168.131.129 │ │ ├── tmp │ │ │ └── xiaozhi.txt │ │ └── var │ │ └── log │ │ └── messages │ └── host └── xiaozhi