ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)

以下所有的实验来都是在redhat7.3上


本章对ansible的inventory文件的配置做了详解,让我们了解了如何定义主机、主机组、主机变量、主机组变量等配置。
擅长使用使用ansible ad-hoc指令,使用ansible常用模块

1.搭建实验环境

主机信息 作用
server5(172.25.70.5) 主控端节点
server6(172.25.70.6) 被控节点1
server7(172.25.70.7) 被控节点2

(1) 在真机上创建三台快照(母盘内存是2048M,cpu为2)

[root@foundation70 images]# qemu-img create -f qcow2 -b rhel7.3small.qcow2 ansible1
[root@foundation70 images]# qemu-img create -f qcow2 -b rhel7.3small.qcow2 ansible2
[root@foundation70 images]# qemu-img create -f qcow2 -b rhel7.3small.qcow2 ansible3

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第1张图片
在这里插入图片描述
在这里插入图片描述
(2)在真机上远程连接server5、server6、server7
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第2张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第3张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第4张图片(3)在真机上搭建第三方yum源仓库,里面包括ansible以及一些依赖性关系的rpm包
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第5张图片

##这里的repodate是进行了createrepo -v /var/www/html/ansible所生成的
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第6张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第7张图片
#关闭真机的防火墙

[root@foundation70 ansible]# systemctl start httpd
[root@foundation70 ansible]# systemctl enable httpd.service 
[root@foundation70 ansible]# systemctl stop firewalld

在这里插入图片描述
(4)在server5上面编写yum配置文件
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第8张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第9张图片
(5)各个主机上进行域名解析
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第10张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第11张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第12张图片

2.部署ansible环境

(1)在server5上面安装ansible

下载ansible所需要的相关rpm包及其依赖包,进行安装
由于我在真机的网络yum源里面搭建了第三方仓库,因此这里直接安装,不需要处理依赖性关系
在真机上已经createrepo -v ansible的目录,所以现在可以直接使用

[root@server5 yum.repos.d]# yum install -y ansible  #安装ansible

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第13张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第14张图片
(2)查看安装版本

[root@server5 ~]# ansible --version

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第15张图片

(3)查看ansible的配置文件

[root@server5 yum.repos.d]# cd /etc/ansible/
[root@server5 ansible]# ls
ansible.cfg  hosts  roles

/etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性
/etc/ansible/hosts 主机清单
/etc/ansible/roles/ 存放角色的目录

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第16张图片(4)编辑/etc/hosts文件,添加本地解析(因为ansible的连接是通过ssh,加快ssh连接)
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第17张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第18张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第19张图片
(5)添加普通用户使用ansible,编辑ansible主配置文件

[root@server5 ansible]# useradd devops #添加用户
[root@server5 ansible]# id devops #查看添加成功
uid=1000(devops) gid=1000(devops) groups=1000(devops)
[root@server5 ansible]# su - devops #切换用户
[devops@server5 ~]$ mkdir ansible
[devops@server5 ~]$ cd ansible/
[devops@server5 ansible]$ ls
[devops@server5 ansible]$ pwd
/home/devops/ansible
[devops@server5 ansible]$ vim ansible.cfg
[devops@server5 ansible]$ cat ansible.cfg 
[defaults]
inventory      = ./inventory  #管理主机的清单,#等号后面的名字无所谓,主要是前面的参数

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第20张图片
(6)设置ansible主机,文件为inventory

[devops@server5 ansible]$ vim inventory
[devops@server5 ansible]$ pwd
/home/devops/ansible
[devops@server5 ansible]$ cat inventory 
[web] # 主机组名
172.25.70.6   #主机ip

[db] #主机组名
172.25.70.7

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第21张图片
(7)设置ssh免密登陆
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第22张图片
给两个节点server2和server3同样添加devops用户,并且设置密码

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第23张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第24张图片
将公钥(锁)发送给server6和server7
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第25张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第26张图片

测试是否可以免密远程登录server6和server7
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第27张图片 (9)测试一下设置是否正确

[devops@server5 ansible]$ ansible 172.25.70.6 -m ping -k  #输入密码,测试server6 的ansible节点是否可以ping通

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第28张图片

[devops@server5 ansible]$ ansible web -m ping

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第29张图片
测试所有的ansible节点是否可以ping通

[devops@server5 ansible]$ ansible all  -m ping

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第30张图片

3.ansible工具的常用参数及命令

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第31张图片
在这里插入图片描述

4.Inventory文件配置

#rm -rf /root/.ansible/cp/* 清除缓存
其实命令和模块常常是结合在一起使用的
ansible命令示例

以bruce用户执行ping存活检测  # ansible all -m ping -u bruce  
以bruce sudo至root执行ping存活检测  # ansible all -m ping -u bruce -b  
以bruce sudo至batman用户执行ping存活检测  # ansible all -m ping -u bruce -b --become-user batman 

ansible命令使用场景

非固化需求
临时一次性操作
二次开发接口调用

Inventory文件配置
Inventory是Ansible管理主机信息的配置文件,相当于系统HOSTS文件的功能,默认存放在/etc/ansible/hosts

定义主机和组
# Inventory可以直接为IP地址  
172.25.0.2
# 端口号不是默认22端口时,可明确的表示为:
server2:2222
server2 ansible_port=2222 ansible_host=172.25.0.2
定义主机和组
# 中括号表示一个组,也可以表示一个范围
[webserver]
www[1:10].example.com
db-[a:f].example.com
定义主机变量
在playbook中使用时对主机进行个性化定制
[webserver]
web1 http_port=8080 maxRequestsPerChild=1024

定义组变量

[webserver]
server2
server3
[webserver:vars]
ntp_server=time1.aliyun.com
webserver组中的所有主机ntp_server值为time1.aliyun.com

定义组嵌套及组变量
组与组之间可以相互调用,并且可以向组中的主机指定变量。不过,这些变量只能在Ansible-playbook中使用,而Ansible不支持

[apache]  
server1
server2
[nginx]  
server3
server4   
[webservers:children]  
apache  
nginx 
[webservers:vars]  
ntp_server=time1.aliyun.com

组与组之间可以相互掉用户,并且可以向组中的主机指定变量。不过,这些变量只能在Ansible-palybook中使用,而Ansible不支持
在inventory 主文件中保存所有的变量并不是最佳的方式.还可以保存在独立的文件中

 这些独立文件的格式为 YAML
/etc/ansible/group_vars/raleigh
/etc/ansible/group_vars/webservers
/etc/ansible/host_vars/foosball
当变量变得太多时,分文件定义变量更方便进行管理和组织
/etc/ansible/group_vars/raleigh/db_settings
/etc/ansible/group_vars/raleigh/cluster_settings

变量的检索位置

Inventory配置文件(默认/etc/ansible/hosts)
Playbook中vars定义的区域
Roles中vars目录下的文件
Roles同级目录group_vars和hosts_vars目录下的文件
大家设置变量时尽量沿用同一种方式,以方便维护人员管理。

Ansible与正则

匹配所有主机,all或*号功能相同。
ansible all –m ping  
ansible "*" -m ping 
ansible 172.25.0.* -m ping 
对多台主机或多个组同时执行,相互之间用冒号分隔即可
ansible "web1:web2" -m ping 
在webserver组但不在database组的主机,用感叹号表示
ansible 'webservers:!database' -m ping 
在webserver组和database组中同时存在的主机,用&符号表示
ansible "webservers:&database" -m ping
模糊匹配
*.example.com
www*.com:database 

5.Ansible Ad-Hoc命令集

(1)ad-hoc 使用场景

Ansible提供两种方式去完成任务,一是 ad-hoc 命令,一是写 Ansible playbook
在学习了 playbooks 之后,你才能体会到 Ansible 真正的强大之处在哪里
ad-hoc更注重于解决一些简单或者平时工作中临时遇到的任务,相当于Linux系统命令行下的Shell命令
后者更适合于解决复杂或需固化下来的任务,相当于Linux系统的Shell Scripts。
使用场景
关闭所有不必要的服务器
临时更新Apache或Nginx的配置文件

(2)ansible命令执行流程
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第32张图片
(3)Ansible的并发特性
Ansible和Ansible-playbook默认会fork 5个线程并发执行命令,如果同时操作的主机数比较多的话,可以调整到一个更大的值。

Ansible为我们提供了便捷的选项,-f指定线程数。
# ansible webserver -m ping -f 3 
ansible有许多模块,默认是 command,也就是命令模块,我们可以通过 -m 选项来指定不同的模块。

(4)Ansible-doc用法
ansible的模块非常之多,Ansible也提供了类似于man功能的help说明工具ansible-doc。
正式学习Ansible模块使用前,有必要先了解ansible-doc用法:

ansible-doc -l  # 显示所有可用模块# 
ansible-doc yum  # 获取yum模块帮助# 
ansible-doc user  #先看 =号参数  必写项   - 号可选参数

(5)Ansible常用模块

copy模块
# ansible webservers -m copy -a "src=/etc/hosts   dest=/tmp/hosts"
file模块
# ansible webservers -m file -a "dest=/tmp/hosts mode=600 owner=root group=root"			#修改文件权限和属性
# ansible webservers -m file -a "dest=/tmp/dir1/dir2 mode=755 owner=root group=root state=directory"    #递归创建
# ansible webservers -m file -a "dest=/tmp/dir1/dir2 state=absent"
yum模块
# ansible webservers -m yum -a "name=httpd state=present"
# ansible server3 -m yum -a "name=http://172.25.0.250/rhel7.3/x86_64/dvd/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm state=present"	#在线安装
# ansible server3 -m yum -a "name=/mnt/vsftpd-3.0.2-21.el7.x86_64.rpm state=present"			#本地安装
# ansible server3 -m yum -a "name=httpd state=absent"								#卸载软件
service模块
# ansible webservers -m service -a "name=httpd state=started"
# ansible webservers -m service -a "name=httpd state=restarted"
# ansible webservers -m service -a "name=httpd state=stopped"
user模块
# ansible all -m user -a "name=wxh password=<加密密码>"
# ansible all -m user -a "name=wxh state=absent remove=yes"
# ansibledb -m user -a "name=wxh shell=/bin/bash groups=users,wheel append=yes state=present" 
mysql_user模块
# ansible server3 -m mysql_user -a "name=wxh password=testpass priv=*.*:select host='%' state=present"
远程主机需要安装MySQL-python

(6)其余知识点

ansible server2 -m setup  		##查看指定主机server2上的facts变量信息
ansible all -m setup   			##查看指定的所有主机上的facts变量信息
ansible '*' -m setup			##同上
ansible-doc -l							##列出有哪些可用的模块,按q退出
ansible-doc -l | wc -l		##列出有多少个可用的模块
ansible-doc user			##查看user模块的帮助文档,按q退出。也可以在最后一行输入/passwd,来过滤与passwd有关的内容
ansible test -a 'df -h'  	##在test组执行df -h命令
(1)默认模块command
一般来说如果-m后面没有加模块则默认使用command模块
(2)copy模块
[devops@server1 ansible]$ ansible test -m copy -a 'src=/etc/passwd dest=/tmp/passwd'		
src为源地址(是ansible控制主机上的地址),dest为被控制节点主机的目标地址
查看是否将本机文件复制到server2上
(3)file模块
查看server2的/tmp下的文件权限(刚刚复制过去的文件)
查看权限
(4)yum模块
需要注意的是我们在使用yum的时候普通用户是要有sudo权限的
其实就是devops没有权限使用yum,只有sudo授权之后才有权限
因此先设置server2和server3中devops用户的sudo权限
[root@server2 ~]# vim /etc/sudoers	#保存退出时如果显示权力不够,则加wq!强制保存即可
[root@server3 ~]# vim /etc/sudoers
权限设置好以后,尝试在server2上安装httpd服务
[devops@server1 ansible]$ ansible test -m yum -a 'name=httpd state=present' -b	
##一定要加-b,指定sudo,否则回报错
查看是否下载成功
[devops@server1 ansible]$ ansible test -a 'rpm -q httpd'
当然如果不愿意加-b去特别指定的话,我们也可以修改主配置文件,给与sudo所需要的权限
[devops@server1 ansible]$ vim ansible.cfg 
[devops@server1 ansible]$ cat ansible.cfg 
[defaults]
inventory      = inventory
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
我们去尝试在server2和server3上都安装httpd,不加参数-b
[devops@server1 ansible]$ ansible webservers -m yum -a 'name=httpd state=present'
(5)service模块
启动db(server3)的httpd服务
[devops@server1 ansible]$ ansible db -m service -a 'name=httpd state=started'
我们给它写一个默认发布界面,方便我们测试
[devops@server1 ansible]$ ansible db -m copy -a 'content="hello world\n" dest=/var/www/html/index.html'
(6)firewalld防火墙模块
首先,开启防火墙
[devops@server1 ansible]$ ansible db -m service -a 'name=firewalld state=started enabled=true'
测试:
我们把httpd服务加入防火墙的白名单:
[devops@server1 ansible]$ ansible db -m firewalld -a 'service=http state=enabled permanent=yes immediate=yes'
关闭防火墙
[devops@server1 ansible]$ ansible db -m service -a 'name=firewalld state=stopped enabled=false'

6.常用命令和模块的练习

(1)ping一下远程主机组的所有主机以及ping 远程主机的不同方式
all表示所有远程的主机组,使用command模块,也是默认的模块,然后使用ping命令
可以看到server2和server3主机是可以ping通的

[devops@server5 ansible]$ ansible all -m ping # #列出ping通的主机
[devops@server5 ansible]$ ansible "*" -m ping #*等同于all,但是需要添加引号
[devops@server5 ansible]$ ansible web:db -m ping#连接web组和db组的并集
[devops@server5 ansible]$ ansible web:!db -m ping#连接web组里面的主机但是不连接db组里面的主机
[devops@server5 ansible]$ ansible 'web:&db' -m ping #连接web组和db组的交集主机,但是报错;
[WARNING]: No hosts matched, nothing to do
[devops@server5 ansible]$ cat inventory  #
[web]
172.25.70.6

[db]
172.25.70.7
172.25.70.6 #设置web和db的交集
[webserver:children]   #创建webserver组,批量检测
web
db

[devops@server5 ansible]$ ansible 'web:&db' -m ping
172.25.8.5 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

[devops@server5 ansible]$ ansible webserver -m ping #连接webserver所有主机

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第33张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第34张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第35张图片

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第36张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第37张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第38张图片

(2)使用devops的身份去检测
- u表示指定用户
可以看出以devops用户的身份去ping远程主机的devops用户是可以的
以devops用户的身份去ping远程主机的root用户是不可以的
记住:这里的用户指的都是远程主机的用户,拿谁家的钥匙开谁家的门
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第39张图片
-b表示自动由devops用户转为root用户,因此还是不可以的
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第40张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第41张图片

[devops@server5 ansible]$ ansible web -m service -a "name=httpd state=started" #开启httpd服务
[devops@server5 ansible]$ curl 172.25.70.6

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第42张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第43张图片

[devops@server5 ansible]$ ansible web -m firewalld -a "service=http state=enabled" #打开web(172.25.70.6)的firewalld,然后设置成自启动的

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第44张图片

[devops@server5 ansible]$ ansible web -m firewalld -a "service=http state=disabled"  #给远程主机web(172.25.70.6)的firewalld设置成开机不自启
[devops@server5 ansible]$ curl 172.25.70.6
curl: (7) Failed connect to 172.25.70.6:80; No route to host

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第45张图片

[devops@server5 ansible]$ ansible web -m service -a "name=firewalld state=stopped"  #关闭防火墙

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第46张图片

(3)copy模块
将本地的文件拷贝到远程主机(test组的主机)的tmp目录下面
这个是可以的,因为远程主机的devops用户对tmp目录有权限
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第47张图片
在web组的server6主机上面查看一下是否拷贝成功
在这里插入图片描述
在server5主机上也可以直接查看,-a表示要执行的动作
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第48张图片
也可以删除
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第49张图片
删除完之后再次查看
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第50张图片
将本地的文件拷贝到远程主机(test组的主机)的/mnt目录下面
这个是不可以的,因为server1和server2的 免密是devops用户的免密,devops用户对/mnt没有权限

/mnt    --------- 此目录主要是作为挂载点使用。通常包括系统引导后被挂载的文件系统的挂载点。如挂载Windows下的某个分区
/tmp         --------- 这个目录是用来存放一些临时文件的,所有用户对此目录都有读写权限。

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第51张图片
在server2和server3上面授权,使devops具备root用户的权限
vim /etcsudoers 设置devops权限后强制wq!退出
在这里插入图片描述
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第52张图片
在这里插入图片描述ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第53张图片
再次拷贝,发现就成功了
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第54张图片
现在不想使用-b转换身份,想直接默认使用root身份
在这里插入图片描述
在这里插入图片描述
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第55张图片
再次验证就成功了
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第56张图片
(8)yum模块

使用yum模块给webserver组里面的主机安装httpd服务

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第57张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第58张图片
可以在server6上查看
在这里插入图片描述

也可以在server1上看是否给server2安装了
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第59张图片
也可以查看webserver组里面的主机是否都安装了httpd服务
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第60张图片
另外一种方法
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第61张图片
卸载webserver组里面的刚才安装的httpd服务
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第62张图片
在server6上面验证
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第63张图片
在server5上面再次验证
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第64张图片
在这里插入图片描述
(9)给web组里面的主机安装httpd服务并且开启服务
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第65张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第66张图片ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第67张图片
关闭服务
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第68张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第69张图片
(10)给web组的主机创建用户
在这里插入图片描述
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第70张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第71张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第72张图片
(11)查看主机的详细信息
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第73张图片
(12)给server7安装数据库
给server7创建用户
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第74张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第75张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第76张图片
在这里插入图片描述
打开数据库
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第77张图片
创建数据库用户并且授权
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第78张图片

在物理机上需要远程登陆数据库进行验证
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第79张图片
匿名登陆数据库
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第80张图片
创建用户的时候对用户密码加密
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第81张图片

在这里插入图片描述
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第82张图片在这里插入图片描述
显示所有mysql可用模块

ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第83张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第84张图片
ansible自动化运维(2)——部署环境以及常用模块的使用(Inventory文件配置+ad-hoc指令)_第85张图片

你可能感兴趣的:(Linux运维进阶)