Ansible详解(十四)——Ansible Role实战
今天继续给大家介绍Linux运维相关知识,本文主要内容是Ansible中的Role配置实战。
一、实战目的和思路
今天我们进行一次Ansible的Role实战,实战的目的是使用Ansible写一个Roles控制脚本,控制被控端设备上通过YUM的方式安装LAMP架构。
为完成上述任务,我们需要创建一个名为LAMP的文件夹,该文件夹作为Role的总文件夹,在该文件夹下,分别创建 prepare、apache、mysql和php的子文件夹,这些作为LAMP架构的组成部分,在这每个子文件夹下面,再分别创建名为tasks、files、vars、meta、default和handlers的子文件夹。最后,再创建一个总的Playbook,用于调用这些子Role。
二、Role准备
首先,我们先创建相关的Role文件架构,并在Ansible设备上安装LAMP架构。在Ansible设备上安装LAMP架构是为了获取这些软件的配置文件,如果可以通过其他的方式获取,那么也可以跳过此步骤。
执行命令:
mkdir -p /etc/ansible/role/lamp/{prepare,apache,mysql,php}/{tasks,vars,files,templates,meta,default,handlers}
执行完毕后,创建的文件夹架构(部分)如下:
接下来,我们在Ansible设备上安装mysql、apache、php,执行命令:
yum install -y mariadb mariadb-server httpd php php-devel
安装完毕后,我们把修改各个软件的配置文件(如果必要),并且把配置文件复制到对应的文件夹下。执行命令:
cp -a /etc/httpd/conf/httpd.conf /etc/ansible/role/lamp/apache/files/httpd.conf
cp -a /etc/my.cnf /etc/ansible/role/lamp/mysql/files/my.cnf
然后创建LAMP的测试脚本,新创建/etc/ansible/role/lamp/php/files/index.php文件,并写入如下内容:
<?php
phpinfo();
?>
三、Playbook编写
然后,我们编写各个分Role的Playbook。
创建prepare/tasks/main.yml,写入如下内容:
- name: Shutdown Firewall
shell: iptables -F;setenforce 0;systemctl stop firewalld
创建apache/tasks/main.yml,写入如下内容:
- name: Install Apache
yum: name=httpd state=installed
- name: Config Apache
copy: src=httpd.conf dest=/var/www/html/
notify: Restart Apache
创建apache/handlers/main.yml,写入如下内容:
- name: Restart Apache
service: name=httpd state=restarted
创建mysql/tasks/main.yml,写入如下内容:
- name: Install MySQL 1
yum: name=mariadb state=installed
- name: Install MySQl 2
yum: name=mariadb-server state=installed
- name: Config MySQL
copy: src=my.cnf dest=/etc/my.cnf
notify: Restart Mariadb
创建mysql/handlers/main.yml,写入如下内容:
- name: Restart Mariadb
service: name=mariadb state=restarted
创建php/tasks/main.yml,写入如下内容:
- name: Install PHP
yum: name=php state=installed
- name: Install PHP-MySQL
yum: name=php-mysql state=installed
- name: Config Main page
copy: src=index.php dest=/var/www/html/
- name: Config Main page
shell: rm -rf /var/www/html/index.html
创建main.yml,写入如下内容:
- name: LAMP
remote_user: root
hosts: exp
roles:
- prepare
- apache
- mysql
- php
上述所有配置完成后,执行命令:
ansible-playbook /etc/ansible/role/lamp/main.yml
执行结果如下:
可见,我们的Ansible Roles安抓LAMP架构成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
相关文章
- jvm最全详解-05-JVM调优工具详解及调优实战[通俗易懂]
- LNMP详解(九)——Nginx虚拟IP实战
- 【Android 应用开发】BluetoothDevice详解
- PostgreSQL教程(四):数据类型详解
- 十个免费的Web压力测试工具详解程序员
- 搭建DNS服务器详解程序员
- Spark入门实战系列–1.Spark及其生态圈简介详解大数据
- Spark入门实战系列–5.Hive(上)–Hive介绍及部署详解大数据
- Spark入门实战系列–3.Spark编程模型(下)–IDEA搭建及实战详解大数据
- Spark入门实战系列–6.SparkSQL(上)–SparkSQL简介详解大数据
- Spark入门实战系列–7.Spark Streaming(上)–实时流计算Spark Streaming原理介绍详解大数据
- Spark入门实战系列–8.Spark MLlib(上)–机器学习及SparkMLlib简介详解大数据
- Spark入门实战系列–9.Spark图计算GraphX介绍及实例详解大数据
- Docker部署大型互联网电商平台详解大数据
- Kafka实战-数据持久化详解大数据
- Kafka实战-Flume到Kafka详解大数据
- Kafka实战-实时日志统计流程详解大数据
- Kafka实战-Kafka Cluster详解大数据
- Kafka SCRAM和PLAIN实战详解大数据
- 在java代码中将图片转变为base64位代码 并且在浏览器下展示base64编码的图片详解编程语言
- 《Drools6.4 中文文档》Workbench(通用)详解编程语言
- Java 线程池之FixedThreadPool(Java代码实战-003)详解编程语言
- Java Base64 编码解码方案总结详解编程语言
- JS 中屏幕、浏览器和文档的高度、宽度和距离详解编程语言
- java中字符串 占位符替换%s {0}详解编程语言
- 指针常量VS常量指针详解编程语言
- php form表单ajax上传图片方法详解编程语言
- SpringMVC + RabbitMQ实战(XML配置rabbit,监听多条队列)详解编程语言
- Reverse Words in a String详解编程语言
- 管理与修改方式详解(mysql5.5密码)
- Redis配置文件解析:实战指南(redis配置文件详解)
- MySQL三表联查代码实战详解(mysql三表联查代码)