ansible自动运维工具之ansible-playbook详解

一、Playbook简介
ansible自动运维工具之ansible-playbook详解
二、playbook的核心元素
ansible自动运维工具之ansible-playbook详解
三、playbook格式
ansible自动运维工具之ansible-playbook详解
1、执行简单的playbook文件:
ansible自动运维工具之ansible-playbook详解
我这里编写的playbook文件如下:
ansible自动运维工具之ansible-playbook详解
playbook文件定义的任务需要通过ansible-playbook命令进行调用并执行,ansible-playbook命令用法如下:
ansible自动运维工具之ansible-playbook详解
其中option中的功能包括:

–syntax-check:检测yaml文件的语法。
-C:预测试,不会改变目标主机的任何设置。
–list-tasks:列出yaml文件的任务列表。
–list-hosts:列出yaml文件影响的主机列表。
–list-tags:列出yaml文件中的标签。
-t TAGS:表示只执行指定标签的任务。
–skip-tags=SKIP_TAGS:表示出了指定标签的任务,执行其他任务。
–start-at-task=START_AT:从指定任务开始往下运行。
执行a.yml文件的示例如下:
ansible自动运维工具之ansible-playbook详解
有一个在线的ansible-playbook语法检测工具,可以更直观的检查出语法中的错误,感兴趣可以看一下
2、触发器
ansible自动运维工具之ansible-playbook详解
handlers触发器的使用示例如下:
ansible自动运维工具之ansible-playbook详解
3、角色

将多种不同的tasks的文件集中存储在某个目录下,则该目录就是角色。角色一般存放在/etc/ansible/roles/目录下,可通过ansible的配置文件来调整默认的角色目录,/etc/ansible/roles/目录下有很多子目录,其中每一个子目录对应一个角色,每个角色也有自己的目录结构,结构如下:

ansible自动运维工具之ansible-playbook详解ansible自动运维工具之ansible-playbook详解
上面的目录中,tasks、handlers、vars、meta、default至少应该包含一个main.yml文件,该目录下也可以有其他.yml文件,但是需要在main.yml文件中用include指令将其他.yml文件包含进来。

有了角色后,可以直接在yaml文件(playbook配置文件)中调用角色,示例如下:
ansible自动运维工具之ansible-playbook详解
可以只调用一个角色,也可以调用多个角色,当定义了角色后,用ansible-playbook PALYBOOK文件执行即可。此时ansible会到角色集合的目录(/etc/ansible/roles)去找mysql和httpd目录,然后依次运行mysql和httpd目录下的所有代码。

下面来个安装及配置mariadb数据库的实例:
ansible自动运维工具之ansible-playbook详解
开始在ansible服务器上实施:
ansible自动运维工具之ansible-playbook详解
待安装完成后,在远端主机上查看是否已经创建了testdb数据库,并测试以test用户登录,自行测试吧

mysql -u root #进入数据库
show databases #查看数据库