本篇博客的内容在上一篇博客ansible搭建的基础上完成:自动化运维工具Ansible的搭建
一、Ansible的command默认模块的简单使用
1、在ansible1上执行
[devops@ansible1 ansible]$ ansible test -m command -a 'df -h'
test指ansible中test组,-m后指定模块 -a后加这个模块的参数
注意:command模块为默认的模块,如果不-m指定的话,默认使用的command模块
二、copy模块
1、copy
[devops@ansible1 ansible]$ ansible test -m copy -a 'src=/etc/passwd dest=/tmp/passwd'
查看
[devops@ansible1 ansible]$ ansible test -a 'ls /tmp/passwd'
三、file模块
查看docker2某文件的权限
[devops@ansible1 ansible]$ ansible test -a 'ls -l /tmp/passwd'
更改权限:
[devops@ansible1 ansible]$ ansible test -m file -a 'dest=/tmp/passwd mode=600'
四、yum模块
查看yum模块的使用方法:
[devops@ansible1 ansible]$ ansible-doc yum
注意:我们现在使用的是普通用户,没有执行yum命令的权力:
先配置devops用户的sudo权限:
[root@ansible2 ~]# vim /etc/sudoers
====================================
93 devops ALL=(ALL) NOPASSWD: ALL
+++++++++++++++++++++++++++++++++++++++++
[root@ansible3 ~]# vim /etc/sudoers
====================================
93 devops ALL=(ALL) NOPASSWD: ALL
- ansible2
- ansible3
在docker2-3上,下载httpd服务
#一定要加入-b选项,否则会报错
[devops@ansible1 ansible]$ ansible test -m yum -a 'name=httpd state=present' -b
查看是否下载成功:
[devops@ansible1 ansible]$ ansible test -m command -a 'rpm -q httpd'
不加-b可以在ansible的配置文件里面配置:
[devops@ansible1 ansible]$ vim ansible.cfg
==========================================
[defaults]
inventory = inventory
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
- test组
[devops@ansible1 ansible]$ ansible test -m yum -a 'name=httpd state=present'
- webservers组
[devops@ansible1 ansible]$ ansible webservers -m yum -a 'name=httpd state=present'
卸载:
[devops@ansible1 ansible]$ ansible test -m yum -a 'name=httpd state=absent'
五、service模块
启动db组的httpd服务:
[devops@ansible1 ansible]$ ansible db -m service -a 'name=httpd state=started'
测试:
[devops@ansible1 ansible]$ curl 172.25.70.3
这是ansible3的httpd服务的默认发布页,不太直观,我们写一个发布页:
[devops@ansible1 ansible]$ ansible db -m copy -a 'content="www.redhat.com\n" dest=/var/www/html/index.html'
六、firewalld模块
如何在开启防火墙的情况下,正常使用httpd服务呢?
首先开启防火墙
[devops@ansible1 ansible]$ ansible db -m service -a 'name=firewalld state=started enabled=true'
测试:
[devops@ansible1 ansible]$ curl ansible3
把httpd服务加入防火墙白名单:
[devops@ansible1 ansible]$ ansible db -m firewalld -a 'service=http state=enabled permanent=yes immediate=yes'