ansible playbook脚本,安装LAMP套件

news2024/11/27 6:13:34

yum 集中式安装lamp

---
- name: LAMP install
  hosts: dbservers
  tasks:
    - name: disable firewalld
      service:
        name: firewalld
        enabled: no
        state: stopped
    - name: disabled selinux
      shell: "sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config"
      shell: "iptables -F"
    - name: install httpd
      yum:
        name: httpd
        state: present
    - name: install mariadb
      yum:
        name: mariadb-server
        state: present
    - name: install php
      yum:
        name: php,php-mysql,php-gd
        state: present
    - name: start mariadb
      service:
        name: mariadb
        enabled: yes
        state: started
    - name: new db passwd
      shell: 'mysqladmin -u root password "123456"'
    - name: start http
      service:
        name: httpd
        enabled: yes
        state: started
    - name: copy index.php
      copy: src=index.php dest=/var/www/html/index.php
    - name: reboot
      reboot:
        reboot_timeout: 60
   
...        

 网页验证

分布式安装lamp

---
- name: this is deploy lamp service by yum install
  remote_user: root
  hosts: all
  gather_facts: false
  tasks:
   - name: stop firewalld
     service: name=firewalld state=stopped
   - name: stop seliunx
     command: '/usr/sbin/setenforce 0'
     ignore_errors: true
  
   - name: cope nginx.repo file
     copy: src=/opt/nginx.repo dest=/etc/yum.repos.d
     when: inventory_hostname == "192.168.50.25"
   - name: yum install nginx service
     yum: name=nginx state=latest
     when: inventory_hostname  == "192.168.50.25"
   - name: start nginx service
     service: name=nginx state=started enabled=yes
     when: inventory_hostname == "192.168.50.25"  
 


   - name: yum install php service
     yum: name=php state=latest
     when: inventory_hostname  == "192.168.50.26"
   - name: copy test file
     copy: src=/opt/index.php dest=/var/www/html
     when: inventory_hostname  == "192.168.50.26"


   - name: yum install mariadb state=latest
     yum: name=mariadb
     when: inventory_hostname == "192.168.50.27"
   - name: yum install mariadb-server
     yum: name=mariadb-server state=latest
     when: inventory_hostname == "192.168.50.27"
   - name: start mariadb service
     service: name=mariadb state=started enabled=yes
     when: inventory_hostname == "192.168.50.27"

   - name: modify nginx.conf to connect php with nginx
     copy: src=/opt/default.conf  dest=/etc/nginx/conf.d/default.conf
     when: inventory_hostname == "192.168.50.25"
   - name: restart nginx
     service: name=nginx state=restarted
     when: inventory_hostname == "192.168.50.25"
   - name: new mariadb passwd
     shell: 'mysqlaadim -u root password "abc123"'
     when: inventory_hostname == "192.168.50.25"

远程挂载镜像

---
- name: this is test for mount
  hosts: webservers
  remote_user: root
  tasks:
   - name: mount test
     mount:
      src: /dev/sr0
      path: /mnt
      state: mounted
      fstype: 'iso9660'
 

三:通过role分布式YUM安装lnmp

 

建立role的文件夹

mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -p

touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml

安装nginx 服务

 

 

 

 

 安装php服务

 

 准备文件

 

 

安装mysql服务

 vim site.yml

 

运行剧本

ansible-playbook site.yum

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/651037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Random random = SecureRandom.getInstanceStrong();堵塞线程问题解决

sonar扫描到使用Random随机函数不安全, 推荐使用SecureRandom替换,就是他–》【SecureRandom.getInstanceStrong()】,分别在本地,测试环境测过没问题上生产,但是运行了一段时间突然报错!!! 然后…

简要介绍 | 基于双风机振动的燕麦清选与筛选

注1:本文系“简要介绍”系列之一,仅从概念上对基于双风机振动的燕麦清选和筛选装置设计与仿真进行非常简要的介绍,不适合用于深入和详细的了解。 注2:"简要介绍"系列的所有创作均使用了AIGC工具辅助 基于双风机振动的燕…

37 # commonjs 规范流程梳理

require 源码大致过程 mod.require 会默认调用 require 语法Module.prototype.require 模块的原型上有 require 方法Module._load 调用模块的加载方法,最终返回的是 module.exportsModule._resolveFilename 解析文件名,将文件名变成绝对路径&#xff0c…

EndNote下载安装与引用

哎!写论文这个事真是没有头绪啊,今天研究一下参考文献怎么搞,发现了EndNote,但是这玩意感觉写中文的论文用还可以,英文的不太会用。这里记录一下安装使用过程,方便以后查阅。 EndNote下载安装与引用 EndNot…

React学习[一]

React学习[一] React概述React特点声明式基于组件学习一次,随处可用 React基本使用React使用方法说明 React脚手架意义脚手架初始化项目npx命令介绍 在脚手架中使用react JSXJSX的基本使用JSX使用步骤 JSX中使用JavaScript表达式嵌入式JS表达式 JSX的条件渲染JSX的列…

Model Checking(模型检测)

1. Definition 给定一个系统和一个我们期待拥有的属性P, Model checking 会探索这个系统的每个状态,验证系统是否满足定义的性质。如果满足直接返回True,否则会给出一个反例(counter example)。如果系统被证明是正确的,说明该系统的所有的行…

H3C-HCL模拟器-STP生成树协议实验

一、实验拓扑图 二、实验步骤 1)CRT连接并重命名 若遇到连接失败,先在HCL中启动命令行配置 2)启动所有设备 3)4台交换机重新命令 4)查看信息 ① SW1的MAC地址:SW1是根桥 为什么SW1是根桥? HC…

图像坐标转换:一个点绕着另一个点逆时针旋转角度平移后的坐标

图像坐标系:x向右增大, y向下增大。 点A在图像中的坐标(x1, y1) 点B在图像中的坐标(x2, y2) 点B绕着点A逆时针旋转a弧度,旋转后的点B坐标为{x (x2 - x1)*cos(a) (y2 - y1)*sin(a) x1&#xf…

java基础——有多少是你不知道的?

java基础——有多少是你不知道的&#xff1f; 一、&&和||二、Integer和int三、String、StringBuffer、StringBuilder的区别四、i1<i居然是成立的&#xff1f;五、一脸懵逼的null问题六、整数除法向上取整你知道多少种&#xff1f;七、这也能运行&#xff1f; 一、&a…

QML 与 Python 交互

在 Qt 中&#xff0c;C 和 QML 交互一般有如下三种方法 上下文属性&#xff1a;setContextProperty( )向引擎注册类型&#xff1a;调用 qmlRegisterType( )QML 扩展插件&#xff1a;虽然有很大的灵活性&#xff0c;但是用 Python 创建 QML 插件比较麻烦&#xff0c;所以这种方法…

【补充:CAN卡通信的下位机-STM32cubeIDE-hal库+STMF1xx+数据发送和接收+中断接收方式+基础样例3】

【CAN卡通信的下位机-STM32cubeIDE-hal库STMF4xx数据发送和接收中断接收方式基础样例3】 1、概述2、实验环境3、问题描述4、大佬指点与解决问题5、实验效果截图6、代码连接7、细节部分8、总结 ) 1、概述 从第一篇F1和F4上采用轮询的方式调试can&#xff0c; 【CAN卡通信的下位…

如何用Jmeter进行接口测试 ,这应该是全网最详细的教程了

一、Jmeter 的使用步骤 打开Jmeter 安装包&#xff0c;进入\bin 中&#xff0c;找到"jmeter.bat", 点击打开即可。 在下图打开的Jmeter 页面中&#xff0c;右键“测试计划” -> “添加” -> "Threads(Users)" -> “线程组”&#xff0c; 建立线…

Allure安装、使用、Jenkins集成

目录 一、allure介绍 二、安装allure服务 三、安装pytest、allure-pytest 插件 四、生成报告 五、allure其他使用 5.1 给测试报告添加各种附件 5.2 添加用例标题和描述信息 5.3 添加链接 5.4 标记测试用例 5.5 优先级 六、allure和jenkins集成 一、allure介绍 all…

2023年5月青少年软件编程(图形化) 等级考试试卷(三级)

青少年软件编程&#xff08;图形化&#xff09; 等级考试试卷&#xff08;三级&#xff09; 一、 单选题(共 25 题&#xff0c; 共 50 分) 1.关于变量&#xff0c; 下列描述错误的是&#xff1f; &#xff08; &#xff09; A.只能建一个变量 B.变量可以隐藏 C.变量可以删除 D.…

【抽样调查】实验

文章目录 1、数组矩阵简单抽样&#xff08;1&#xff09;构造数组&#xff08;2&#xff09;构造矩阵&#xff08;3&#xff09;产生来自正态分布的随机数&#xff08;4&#xff09;从正态总体中抽取若干个样本&#xff08;5&#xff09;对矩阵的行或列进行统计计算 2、R软件作…

输入信号、冲激响应与卷积

输入信号与冲激响应的离散卷积 系统冲激响应&#xff1a; h ( t ) ∑ τ 0 ∞ x ( t ) δ ( t − τ ) h(t)\sum_{\tau0}^{\infty}x(t)\delta(t-\tau ) h(t)τ0∑∞​x(t)δ(t−τ) 上式中 h ( t ) h(t) h(t)是冲激信号输入到系统后系统的输出&#xff0c;也是系统对外在激…

stl容器vector笔记

Vector 一、初始化二、常用方法1. 访问元素at()、下标、data()、front()、back()2. push_back()、pop_back()尾部增删元素3. insert()在pos前插入元素&#xff0c;返回插入位置4. erase()擦除元素&#xff0c;返回擦除元素后的元素位置5. clear()清空容器6. resize()改变容器元…

C语言中函数返回数组(一维和二维)

文章目录 函数返回一维数组函数返回二维数组 C语言中函数返回数组是很重要的一种应用&#xff0c;有时候在程序中调用函数返回数组可以更容易的实现我们想要的某些操作&#xff0c;比如一次返回多个值&#xff0c;这篇文章带来的是C语言中函数返回一维数组和二维数组的例子。 函…

Python自动化测试框架我到底应该学哪一个?

企业中&#xff0c;自动化必定会演变成搭建测试框架&#xff0c;这是为什么呢&#xff1f; 可能有一些刚刚进入软件测试行业的朋友还不理解什么是测试框架&#xff0c;没关系&#xff0c;首先我们知道一点&#xff0c;为什么自动化会演变成搭建测试框架呢&#xff1f; 第一个…

Ribbon和 Nacos服务注册中心

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 微服务探索之旅 ✨特色专…