Ansible模块管理
- 一.command模块
- 二.cron模块
- 三.user模块
- 四.group模块
- 五.copy模块
- 六.file模块
- 七.ping模块
- 八.yum模块
- 九.service模块
- 十.shell模块
- 十一.script模块
- 十二.setup模块
一.command模块
##默认模块、执行命令##
命令格式:ansible [主机] [-m 模块] [-a args]
ssh-agent bash #免交互
ssh-add
ansible-doc -l #列出所有已安装的模块,按q退出
ansile-doc -s yum #列出yum模块描述信息和操作动作
ansible 192.168.160.131 -m command -a 'date' #指定ip执行date
ansible webserver -m command -a ‘date’ #指定分类执行date
ansible mysql -m command -a ‘date’
ansible all -m command -a 'date' #所有hosts主机执行date命令
ansible all -a 'ls /' #如果不加-m模块,则默认运行command模块
二.cron模块
##周期性任务##
两种状态(state):present表示添加(可以省略),absent表示移除。
ansible-doc -s cron #查看cron模块信息
ansible mysql -m cron -a 'minute="*/1" job="/usr/bin/echo lmx" name="lmx cron job" ' #控制端为mysql节点设置周期性任务
ansible mysql -a 'crontab -l' #查看周期性任务是否执行
crontab -l #切换至mysql节点下查看周期性任务
ansible mysql -m cron -a 'name="lmx cron job" state=absent' #移除周期性任务
三.user模块
##用户管理##
user模块请求的是useradd、userdel、usermod三个指令 #即创建/删除用户,设定用户所属组
ansible mysql -m user -a 'name="lmx01"' #在mysql主机中创建用户lmx01
ansible mysql -m command -a 'tail /etc/passwd' #查看用户信息
ansible mysql -m user -a 'name="lmx01" state=absent' #删除用户
四.group模块
##用户(组)模块##
该模块请求的是groupadd,groupdel,groupmod这三个指令(组)
ansible mysql -m group -a 'name=mysql gid=306 system=yes' #name=mysql : 组名是mysql gid号是306 system=yes: 为系统组
ansible mysql -a 'tail /etc/group' #查看组信息的最后十行,是否添加成功mysql
ansible mysql -m user -a 'name=lmx02 uid=306 group=mysql system=yes' #向mysql组中添加系统用户lmx02,用户uid号为306
ansible mysql -a 'id lmx02' #通过该命令查看用户lxm02是否添加成功
五.copy模块
##复制模块##
ansible mysql -m copy -a 'src=/etc/fstab dest=/opt/lmx.bk owner=root mode=644' #使用copy模块,讲源地址(src)文件复制到目的地址(dest)文件下,属主为root,权限为644
ansible mysql -a 'ls -l /opt' #查看mysql中/opt目录下的文件
ansible mysql -m copy -a 'content="this is lmx" dest=/opt/test.txt' #content为添加的内容;dest为添加内容的目的地址
ansible mysql -a 'cat /opt/test.txt' #查看添加的内容
六.file模块
##指定文件属性模块##
ansible mysql -m file -a 'path=/opt/test.txt owner=lmx02 group=mysql mode=666'
ansible mysql -a 'ls -l /opt/test.txt' #查看是否更改成功
ansible mysql -m file -a 'src=/opt/test.txt path=/opt/test.txt.link state=link' #将/opt/test.txt文件链接到/opt/test.txt.link 文件下
ansible mysql -m file -a 'path=/opt/abc.txt state=touch' #在/opt目录下创建一个abc.txt的空文件
ansible mysql -m file -a 'path=/opt/abc.txt state=absent' #将之前创建的空文件abc.txt删除掉
七.ping模块
##测试联通状态模块##
ansible all -m ping #检测被控制端是否能ping通
八.yum模块
##安装/卸载软件包模块##
yum:使用yum软件包管理器安装,升级,降级,删除和列出软件包和组
ansible mysql -m yum -a 'name=httpd' #安装httpd服务
ansible mysql -m yum -a 'name=httpd state=absent' #移除httpd服务
九.service模块
##管理服务状态模块##
ansible mysql -m service -a 'name=httpd enabled=true state=started' #设置httpd服务开机自启,前提是将httpd服务安装好
ansible mysql -m service -a 'name=httpd enabled=true state=stopped' #关闭服务
十.shell模块
##免交互模块##
shell 模块可以使用"<",">","|",";","&"等符号特殊符号,使用方法与 command 模块一致。
ansible mysql -m user -a 'name=lmx' #首先创建一个用户
ansible mysql -m shell -a 'echo 123456 | passwd --stdin lmx' #使用shell模块给lmx用户创建密码
十一.script模块
##执行脚本模块##
vim /opt/lmx.sh
#!/bin/bash
echo "dont complain free word" > /opt/lmx.txt
chmod +x /opt/lmx.txt
chmod +x /opt/lmx.sh
ansible all -m script -a 'lmx.sh' #使用script模块执行创建的脚本
十二.setup模块
##收集信息模块##
ansible mysql -m setup #收集mysql组的facts文件下的所有的详细信息