1、command模块

一般用于执行linux命令,不支持管道符和重定向

2、shell模块

相当于command模块的升级版,也可以支持linux命令。支持管道符和重定向

3、cron模块

在远程主机生成定时任务

分 时 日 月 周 minute hour day month weekday

job=

name 声明计划任务的名称,可以不加,以后声明定时任务的名称是必须的。

4、user模块:

远程管理用户的模块,创建用户

system=yes | no

声明是普通还是系统用户

yes 程序用户

no 普通用户

登录的shell还是需要用户自己声明

remove=yes/no

删除用户时是否删除家目录

userdel -r

password 创建密码

5、group模块,创建用户组

6、ping模块,测试和远程主机的连通性

只有在/etc/ansible/hosts文件中声明的主机,ansible的服务端才能进行远程操作

7、hostname模块,给远程主机改名

8、copy模块,用于复制指定的主机文件到远程主机的模块

9、file模块 文件模块(和目录无关)

10、yum模块 远程主机上安装与卸载软件包

11、service/systemd模块

12、script模块 运行本地脚本,然后把结果输出到目标主机

13、setup模块 查看目标主机的环境信息(facts),目标节点的系统信息

模块7:hostname模块 给远程主机改名

ansible 192.168.233.20 -m hostname -a ‘name=yc’

模块8:copy模块 用于复制指定的主机文件到远程主机的模块

常用参数:

dest 指出要复制的文件在哪,必须使用绝对路径。如果源目标是目录,那么指目标也要是目录。如果目标文件存在,会覆盖原有内容

src:复制文件的源。最好使用绝对路径,源目标是目录,指目标也得是目录

owner 指出文件的所有者

group 指定文件的所在组

content 从主机复制指定的内容到目标主机。用了content就不能用src,作用就是替代src

mode 指定复制之后的文件权限

复制目录时,还是复制完整的目录,即目录当中不能为空

src

[root@10 opt]# mkdir test

[root@10 opt]# cd test/

[root@10 test]# touch 123

[root@10 test]# cd ..

[root@10 opt]# ansible 192.168.233.20 -m copy -a ‘src=/opt/test dest=/opt/guoqi2 mode=777’

content

[root@10 opt]# ansible 192.168.233.20 -m copy -a ‘content=”I LOVE YOU” dest=/opt/love.txt’

没有mv模块

模块9:file模块 文件模块(和目录无关)

owner

group

mode

state=link 创建链接文件

state=touch 创建文件

state=absent 删除文件

模块10:yum模块 远程主机上安装与卸载软件包

在目标主机上的操作都是后台运行,不影响其他用户的使用

模块11:service/systemd模块

name 设定管理服务的名称

state=satrted/stopped/restarted 管理动作

enabled=yes/no 表示是否设置开机自启,如果不加,默认就是开机不自启

runlevel:配合enabled的,开机自启的话,可以设置运行级别。在命令行可以设置,但是不生效,必须要在playbook中使用

模块12:script模块 运行本地脚本,然后把结果输出到目标主机

ansible all -m script -a ‘1.sh’

模块13:setup模块 查看目标主机的环境信息(facts),目标节点的系统信息

查看全部

ansible 192.168.233.20 -m setup

查看IP地址

ansible all -m setup -a ‘filter=*ipv4’

查看CPU

ansible all -m setup -a ‘filter=ansible_processor’

查看内存

ansible all -m setup -a ‘filter=ansible_memory*’

查看系统信息

ansible all -m setup -a ‘filter=*system*’

查看系统底层信息

ansible all -m setup -a ‘filter=*os*’

查看硬盘

ansible all -m setup -a ‘filter=*system*’

内核信息

ansible all -m setup -a ‘filter=*proc*’

主机清单:

ansible可以管理上千台主机

快速声明多个主机

192.168.233.3[1:9]

31–39

ansible_host 连接时的IP地址

ansible_port 声明对方的连接端口,默认是ssh的22端口

ansible_user 指定连接时使用对方主机的用户名,不指定主机执行ansible的用户即为使用目标主机的用户名

ansible_password 指定连接sshs时的密码 (目标主机的用户密码)

ansible_become 提升用户权限

ansible_become_password 指定切换用户的密码。(免秘钥登录才可以实现)