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 指定切换用户的密码。(免秘钥登录才可以实现)