linux-ansible-02 ansible常用模块
参数解析
ansible命令常用参数:
-a指定模块参数
-m指定模块名称
-M指定模块路径
–list-hosts:列出主机清单
–f FORKS:指定进程并发量,默认为5
其中,常用-a与-m配合完成一条ansible命令,默认使用的模块是command;也就是说,你不指定模块是,默认使用的是command模块。
举例分析
在上一篇文章中,我们改了主机名,命令如下
1 | [root@localhost ~]# ansible node2 -m command -a "hostnamectl set-hostname node2" |
其中,-m command表示指定使用command模块,-a “hostnamectl set-hostname node3”表示指定的模块参数是”hostnamectl set-hostname node3”,整个命令连起来就是用command模块将node3更改主机名称为node3的意思。
ansible的执行状态
绿色:执行成功并且不需要做改变的操作
黄色:执行成功并且对目标主机做变更
红色:执行失败
常用模块
在介绍常用模块之前,必须要掌握的命令是ansible-doc命令。
ansible-doc -l 查看当前支持的所有模块
ansible-doc -s 模块名 查看当前指定模块使用方法
ansible-doc -h 该命令使用方法
ansible-doc -M 指定模块路径
例如,查看command模块如何使用
1 | ansible-doc -s command |
ansible-doc -s 模块名之后如何退出:按q即可退出。
ping
如下,可以看到
1 | [root@test ~]# ansible-doc -s ping |
user
1 | [root@test ~]# ansible-doc -s user |
group
1 | [root@test ~]# ansible-doc -s group |
command
1.command是默认使用的模块
2.不支持管道,变量及重定向等,如果是带有管道,变量及重定向符号,请用shell模块
1 | [root@test ~]# ansible-doc -s command |
shell
1.调用bash执行命令
2.但是某些复杂的操作即使使用shell也可能会失败
解决方法:将操作写到脚本中,通过script模块
3.command不支持管道,变量及重定向等,如果是带有管道,变量及重定向符号,请用shell模块
1 | [root@test ~]# ansible-doc -s shell |
script
1 | [root@test ~]# ansible-doc -s script |
copy
1 | [root@test ~]# ansible-doc -s copy |
file
1 | [root@test ~]# ansible-doc -s file |
cron
1 | [root@test ~]# ansible-doc -s cron |
yum
1 | [root@test ~]# ansible-doc -s yum |
service
1 | [root@test ~]# ansible-doc -s service |
setup
1 | [root@test ~]# ansible-doc -s setup |
selinux
1 | [root@test ~]# ansible-doc -s selinux |
firewalld
1 | [root@test ~]# ansible-doc -s firewalld |
setup
1 | [root@test ~]# ansible-doc -s setup |