Ansible自动化运维工具使用,详细 ! ! !

Ansible概述

Ansible是近年来愈来愈火的一款开源运维自动化工具,通过Ansible可以运维自动化,
提供运维工程师的工作效率,减少人物失误

实验环境如下

IP 系统 (VM1)

IP 系统 (VM1)

IP 系统(VM1)

Ansible安装

进入 192.168.100.102中操作
1)通过YUM安装Ansible(联网)

#阿里云源
[root@CentOS7-02 www]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#Ansible软件默认不在yum仓库中,因此我们需要配置 epel仓库
[root@cong11 ~]# yum install -y epel-release

[root@CentOS7-02 www]#yum -y install ansible

2) 验证安装结果

[root@CentOS7-02 www]# ansible –version

3)创建SSH免密交互

Ansible需要建立密钥对验证,免交互登陆

按照我图中操作

Ansible自动化运维工具使用,详细 ! ! !

链接:https://pan.baidu.com/s/17lrspNNUi7vPtzptjdhGiQ

提取码:x56p

脚本写好后,需要依靠特定的命令执行
ansible-playbook

syntax-check:
-C:
–list-hosts:
–list-tasks:

[root@CentOS7-02 ~]# ansible-playbook –syntax-check /etc/ansible/a.yml (测试a.yml语法)

#这样表示没有错误

[root@CentOS7-02 ~]# ansible-playbook -C /etc/ansible/a.yml

Ansible自动化运维工具使用,详细 ! ! !
一般都先是预测试脚本文件,然后再执行脚本文件

2. 触发器

需要触发才能执行的任务,当之前在tasks中的任务执行成功后,若希望在此基础上触发其他的任务,这是就需要定义handlers

例如当对目标主机的配置文件做修改后,如果任务执行成功,可以配置一个触发器,在触发器中,定义目标主机的服务重启,以使配置文件生效

handlers是Ansible提供的条件机制之一,handlers和task很类似,但是它只是在task通知时候才会触发执行

handlers只会在所有任务执行后执行,而且即使被通知多次,它也只会执行一次,handlers按照定义的顺序依次执行

例如,把web1 100.103主机的80端口改为8080端口

[root@CentOS7-02 ~]# ssh 192.168.100.103 netstat -anpt | grep 80

[root@CentOS7-02 ~]# vim /etc/ansible/httpd.yml (按我下图打,这个在我上面的百度云中也有分享)

Ansible自动化运维工具使用,详细 ! ! !
这个文件只是部分脚本代码,不可以单独运行,所有也就不用测试

[root@CentOS7-02 tasks]# cd /etc/
[root@CentOS7-02 etc]# chmod 777 my.cnf (默认只有读取权限)

[root@CentOS7-02 etc]# cd /etc/ansible/roles/mariadb/files/
[root@CentOS7-02 files]# cp /etc/my.cnf /etc/ansible/roles/mariadb/files/
(这就是刚刚脚本文件中写的,src就是会在这个文件夹中找my.cnf,然后上传)

[root@CentOS7-02 files]# cd …/handlers/
[root@CentOS7-02 handlers]# vim main.yml

Ansible自动化运维工具使用,详细 ! ! !
执行这个脚本文件,相当于一个总的开关,会调用mariadb角色,并执上两个文件中的那些代码

[root@CentOS7-02 ansible]# ansible-playbook –syntax-check mariadb.yml


[root@CentOS7-02 ansible]# ansible-playbook -C mariadb.yml
(测试会出现蓝色,没事,只要没有红色就行)

[root@CentOS7-02 tasks]# ansible-playbook /etc/ansible/mariadb.yml
(执行,不能出现红色,其他颜色都可以,红色是报错)

验证

进入客户机1 100.103中

[root@demo1 ~]# mysql -u root

MariaDB [(none)]> show databases;

#这里有testdb数据库

验证权限

MariaDB [(none)]> show grants for ;

Ansible自动化运维工具使用,详细 ! ! !

实验完毕 !!

文章知识点与官方知识档案匹配,可进一步学习相关知识来源:benjamin’sBlog

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月18日
下一篇 2019年10月18日

相关推荐