今天继续给大家介绍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 Firewallshell: iptables -F;setenforce 0;systemctl stop firewalld

创建apache/tasks/main.yml,写入如下内容:

- name: Install Apacheyum: name=httpd state=installed
- name: Config Apachecopy: src=httpd.conf dest=/var/www/html/notify: Restart Apache

创建apache/handlers/main.yml,写入如下内容:

- name: Restart Apacheservice: name=httpd state=restarted

创建mysql/tasks/main.yml,写入如下内容:

- name: Install MySQL 1yum: name=mariadb state=installed
- name: Install MySQl 2yum: name=mariadb-server state=installed
- name: Config MySQLcopy: src=my.cnf dest=/etc/my.cnfnotify: Restart Mariadb

创建mysql/handlers/main.yml,写入如下内容:

- name: Restart Mariadbservice: name=mariadb state=restarted

创建php/tasks/main.yml,写入如下内容:

- name: Install PHPyum: name=php state=installed
- name: Install PHP-MySQLyum: name=php-mysql state=installed
- name: Config Main pagecopy: src=index.php dest=/var/www/html/
- name: Config Main pageshell: rm -rf /var/www/html/index.html

创建main.yml,写入如下内容:

- name: LAMPremote_user: roothosts: exproles:- prepare- apache- mysql- php

上述所有配置完成后,执行命令:

ansible-playbook /etc/ansible/role/lamp/main.yml

执行结果如下:


可见,我们的Ansible Roles安抓LAMP架构成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

Ansible详解(十四)——Ansible Role实战相关推荐

  1. Linux内核Thermal框架详解十四、Thermal Governor(4)

    本文部分内容参考 万字长文 | Thermal框架源码剖析, Linux Thermal机制源码分析之框架概述_不捡风筝的玖伍贰柒的博客-CSDN博客, "热散由心静,凉生为室空" ...

  2. IgH详解十四、igh添加总线链路状态监测功能

    在工业现场有可能因为复杂的现场环境导致ethercat网络链路出现异常.监测链路的异常是分析总线异常一个很重要的功能. 链路异常有两种情况: 1.网络断开 2.链路受到干扰有错包 EtherCAT从站 ...

  3. ansible 详解

    文章目录 一.ansible 简介 1.1 ansible 是什么? 1.2 ansible 特点 1.3 ansible 架构图 二.ansible 任务执行 2.1 ansible 任务执行模式 ...

  4. 桌面widget详解(四)——桌面音乐播放器(实战)

    前言:这将是这个系列的最后一篇了,我写这几篇文章也是累的快不行了,再写就真的要吐了,言归正转,前面三篇已经把widget中涉及到的基本知识基本上讲完了,今天我们就做一个小例子,看看桌面音乐播放器wid ...

  5. 元宇宙技术普及读本重磅问世 详解十大技术 把脉数字经济 前瞻产业布局

    转自 元宇宙共识圈 王恩东.倪光南.沈昌祥.郑纬民--四位中国工程院院士联袂力荐 倪健中.姚前.李正茂.朱嘉明.肖风.敖然等权威专家一致推荐 汇聚元宇宙技术专家及产业一线佼佼者倾力撰写 元宇宙技术普及 ...

  6. Android Studio 插件开发详解三:翻译插件实战

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78113868 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

  7. 【WINDOWS / DOS 批处理】for命令详解(四)

    for命令详解(一)[共十篇]                  for命令详解(六)[共十篇] for命令详解(二)[共十篇]                  for命令详解(七)[共十篇] fo ...

  8. Linux内核Thermal框架详解十二、Thermal Governor(2)

    本文部分内容参考 万字长文 | Thermal框架源码剖析, Linux Thermal机制源码分析之框架概述_不捡风筝的玖伍贰柒的博客-CSDN博客, "热散由心静,凉生为室空" ...

  9. Element Plus 实例详解(四)___Border 边框

    Element Plus 实例详解(四)___Border 边框 本文目录: 一.前言 二.搭建Element Plus试用环境 1.搭建Vue3项目(基于Vite + Vue) 2.安装Elemen ...

  10. 一致性协议raft详解(四):raft在工程实践中的优化

    一致性协议raft详解(四):raft在工程实践中的优化 前言 性能优化 client对raft集群的读写 参考链接 前言 有关一致性协议的资料网上有很多,当然错误也有很多.笔者在学习的过程中走了不少 ...

最新文章

  1. 海思涵科技WIFI认证服务器不在线,在海思平台外加一个usb wifi模块,mt7601 加载ok,配置网络ok,但不能ping通?...
  2. virtual box挂载 共享文件夹
  3. 《分布式操作系统》知识点(15~21)三
  4. linux 查看磁盘空间 拷贝不同目录下的文件
  5. uLua Unity工作机制
  6. 计算机科学家Erik Meijer眼中的Hacker Way工作方式
  7. 【DP】[NOI2013]书法家
  8. AngularJS中使用ng-repeat的index
  9. JS中ptototype和__proto__的关系
  10. 木棒,POJ(1011)
  11. Windows Embedded CE 6.0开发初体验(三)设置Boot-loader
  12. html页面左右布局透明背景,HTML透明背景
  13. Spring:自动装配模式
  14. C语言的环境搭建(Microsoft Visual Studio 2010的介绍与安装)
  15. 释放vmware磁盘空间
  16. VLC框架总结(二)VLC源码及各modules功能介绍
  17. C# 将PDF文档转换成图片
  18. apm、pixhawk、pixhack飞控航拍后pos数据提取流程
  19. 支持多线程的DRB server
  20. 操作系统习题(有一个具有两道作业的批处理系统)

热门文章

  1. 让大家久等了,BERT推理加速终于开源了
  2. 数据中台是什么?数据中台应包含什么?来听听袋鼠云合伙人张旭的回答!
  3. 名企面试官精讲典型编程题之C++篇
  4. 《Java程序员职场全攻略:从小工到专家》连载十:这条路大家都是怎么走的
  5. .Net软件设计新思维
  6. Django应用部署 - 上线指南
  7. opencv2+ glob循环读入图片,将文件夹中的图片统一格式
  8. python处理era5_python批量下载EC—ERA5再分析资料
  9. oracle数字类型是什么格式,oracle字段类型NUMBER(38,3),括号中两个数字分别表示什么?...
  10. matlab帕累托分布函数,matlab 进行广义的帕累托参数估计