当前位置: 首页 > news >正文

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构

LNMP

  • 一、playbooks 分布式部署 LNMP
    • 1. 环境配置
    • 2. 安装 ansble
    • 3. 安装 nginx
      • 3.1 准备 nginx 相关文件
      • 3.2 编写 lnmp.yaml 的 nginx 部分
      • 3.3 测试 nginx
    • 4. 安装 mysql
      • 4.1 准备 mysql 相关文件
      • 4.2 编写 lnmp.yaml 的 mysql 部分
      • 4.3 测试 mysql
    • 5. 安装 php
      • 5.1 编写 lnmp.yaml 的 php 部分
      • 5.2 测试 php
  • 二、playbooks 集中式部署 LNMP
    • 1. 环境配置
    • 2. 安装 ansible
    • 3. 准备配置文件
      • 3.1 nginx
      • 3.2 mysql
    • 4. 编写 lnmp.yaml 文件
    • 5. 测试并用浏览器访问
  • 三、role 模块部署 LNMP
    • 1. 环境配置
    • 2. 安装 ansible
    • 3. 配置相关文件
      • 3.1 创建目录
      • 3.2 准备 nginx 相关文件
      • 3.3 准备 php 相关文件
      • 3.4 准备 mysql 相关文件
    • 4. 启动安装分布式 LNMP


一、playbooks 分布式部署 LNMP

1. 环境配置

ansible服务器    192.168.145.15
nginx  服务器    192.168.145.30
mysql  服务器    192.168.145.45
php    服务器    192.168.145.60

2. 安装 ansble

#管理端安装 ansible
yum install -y epel-release			#先安装 epel 源
yum install -y ansible

在这里插入图片描述

#配置密钥对验证
ssh-keygen -t rsa
vim /etc/ssh/ssh_config
-----35行,取消注释-----
StrictHostKeyChecking nosshpass -p '123' ssh-copy-id root@192.168.145.30
sshpass -p '123' ssh-copy-id root@192.168.145.45
sshpass -p '123' ssh-copy-id root@192.168.145.60

在这里插入图片描述

#配置主机清单
cd /etc/ansiblevim hosts       
[nginx]		
192.168.145.30	
[mysql]
192.168.145.45
[php]
192.168.145.60

在这里插入图片描述

#创建一个目录用来存放 playbooks 的文件
cd /etc/ansible/
mkdir playbooks

在这里插入图片描述

3. 安装 nginx

3.1 准备 nginx 相关文件

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
#准备nginx源,进行yum安装
cd /opt/
mv nginx.repo /etc/ansible/playbooks/
cd /etc/ansible/playbooks/

在这里插入图片描述

#配置 nginx 支持 PHP 解析
cd /etc/nginx/conf.dvim default.conflocation / {root   /usr/share/nginx/html;index  index.php index.html index.htm;}
......location ~ \.php$ {root           html;fastcgi_pass   192.168.145.60:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;  # $document_root 和 root 属性一样include        fastcgi_params;}cp default.conf /etc/ansible/playbooks/default.conf.j2

在这里插入图片描述

#准备php文件
vim /etc/ansible/playbooks/index.php
<?php
phpinfo();
?>
#测试mysql是否能连接成功
vim /etc/ansible/playbooks/test.php
<?php
$link=mysqli_connect('192.168.145.45','root','Admin@123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

在这里插入图片描述

3.2 编写 lnmp.yaml 的 nginx 部分

vim lnmp.yaml
- name: nginx playhosts: nginxremote_user: roottasks:- name: disable selinuxcommand: '/sbin/setenforce 0'ignore_errors: true- name: disable firewalldservice: name=firewalld state=stopped- name: copy nginx yum repo filecopy: src=nginx.repo  dest=/etc/yum.repos.d/- name: install nginxyum: name=nginx state=latest- name: copy index.phpcopy: src=index.php  dest=/usr/share/nginx/html- name: copy nginx template configuration filetemplate: src=default.conf.j2  dest=/etc/nginx/conf.d/default.conf- name: start nginxservice: name=nginx state=started enabled=yes

在这里插入图片描述

3.3 测试 nginx

#在ansible服务器运行
cd /etc/ansible/playbooks/
ansible-playbook lnmp.yaml --syntax-check    #检查yaml文件的语法是否正确
ansible-playbook lnmp.yaml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HHMJQfy8-1690849321990)(C:/Users/86138/AppData/Roaming/Typora/typora-user-images/image-20230731130407255.png)]

#在 nginx 服务器查看
systemctl status nginx

在这里插入图片描述

4. 安装 mysql

4.1 准备 mysql 相关文件

#安装 mysql 5.7
cd /etc/yum.repos.d
wget -
http://www.lryc.cn/news/109799.html

相关文章:

  • Spring中的事务
  • 38 非法地址访问的 segment fault 的调试
  • c++中c_str()的用法详解
  • 谈谈关于新能源汽车的话题
  • EventBus 开源库学习(二)
  • 4_Apollo4BlueLite电源管理
  • Pytorch入门学习——快速搭建神经网络、优化器、梯度计算
  • 举例说明typescript的Exclude、Omit、Pick
  • 记录一次Linux环境下遇到“段错误核心已转储”然后利用core文件解决问题的过程
  • WPF中自定义Loading图
  • 用html+javascript打造公文一键排版系统14:为半角和全角字符相互转换功能增加英文字母、阿拉伯数字、标点符号、空格选项
  • 叮咚买菜财报分析:叮咚买菜第二季度财报将低于市场预期
  • 设计模式行为型——中介者模式
  • Vue——formcreate表单设计器自定义组件实现(二)
  • 人脸验证(Face verification) 和 人脸识别(Face recognition) 的区别
  • 前端如何打开钉钉(如何唤起注册表中路径与软件路径不关联的软件)
  • 数据可视化入门指南
  • React 18 响应事件
  • 面试总结-c++
  • Spring(九) - 解惑 spring 嵌套事务.2
  • Android Studio API 33 获取当前连接的WIFI名称
  • ICCV 2023 | 半监督三维目标检测新SOTA:密集匹配和量化补偿
  • python+django+mysql项目实践三(用户管理)
  • Java多线程 | 操作线程的方法详解
  • 【ConcurrentHashMap1.7源码】十分钟带你深入ConcurrentHashMap并发解析
  • 程序框架-事件中心模块-观察者模式
  • 通过AOP的ProceedingJoinPoint获取方法信息
  • 【JavaSE】初步认识类和对象
  • python中的matplotlib画饼图(数据分析与可视化)
  • 用Rust实现23种设计模式之 职责链模式