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

news2024/12/31 4:57:55

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 no

sshpass -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/ansible

vim 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.d

vim default.conf
	location / {
        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 play
  hosts: nginx
  remote_user: root
  tasks:
  - name: disable selinux
    command: '/sbin/setenforce 0'
    ignore_errors: true
  - name: disable firewalld
    service: name=firewalld state=stopped
  - name: copy nginx yum repo file
    copy: src=nginx.repo  dest=/etc/yum.repos.d/
  - name: install nginx
    yum: name=nginx state=latest
  - name: copy index.php
    copy: src=index.php  dest=/usr/share/nginx/html
  - name: copy nginx template configuration file
    template: src=default.conf.j2  dest=/etc/nginx/conf.d/default.conf
  - name: start nginx
    service: 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.coloradmin.cn/o/820546.html

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

相关文章

健身时戴什么耳机比较好、健身用的运动耳机推荐

运动健身已经成为一种潮流&#xff0c;有的人为了追求马甲线和八大块腹肌&#xff0c;还有的人为了缓解学习和工作的压力。但你在运动健身的时候难免会有烦躁、疲惫的时候&#xff0c;如果这时有音乐的加入那就完美了&#xff0c;因为美妙的歌声能冲淡这种疲惫感&#xff0c;让…

面向金融科技方向选手!一级学会背书,AI选股与可视分析大赛来啦

金融量化领域邂逅人工智能&#xff0c;将会迸发出怎样的火花&#xff1f; 在深度学习、强化学习和自然语言处理等技术取得不断突破和创新的今天&#xff0c;AI如何赋能量化投资领域&#xff0c;助力开发者打造表现优异&#xff0c;更加安全可靠的量化模型&#xff1f; 第四届CS…

回收站清空的文件怎么恢复?文件恢复,就靠这3个方法!

“不小心把回收站清空了怎么办&#xff1f;之前在回收站里的文件还能恢复吗&#xff1f;诚心发问&#xff0c;希望大家给我出出主意。” 文件被删除之后通常在电脑的回收站中还可以还原。但实际使用电脑时&#xff0c;很多朋友为了释放电脑内存&#xff0c;都会有定期清空回收站…

【Redis】内存数据库 Redis 进阶

目录 分布式缓存 RedisRedis 持久化RDB (Redis DataBase)RDB执行时机RDB启动方式——save指令save指令相关配置save指令工作原理save配置自动执行 RDB启动方式——bgsave指令bgsave指令相关配置bgsave指令工作原理 RDB三种启动方式对比RDB特殊启动形式RDB优点与缺点 AOF (Appen…

租赁固定资产管理

智能租赁资产管理系统可以为企业单位提供RFID资产管理系统。移动APP资产管理&#xff0c;准确总结易损耗品和固定资金&#xff0c;从入库到仓库库存实时跟踪&#xff0c;控制出库和入库的全过程。同时&#xff0c;备件和耗材与所属资产设备有关&#xff0c;便于备件的申请和管理…

指针进阶详解续---C语言

❤博主CSDN:啊苏要学习 ▶专栏分类&#xff1a;C语言◀ C语言的学习&#xff0c;是为我们今后学习其它语言打好基础&#xff0c;C生万物&#xff01; 开始我们的C语言之旅吧&#xff01;✈ 目录 前言&#xff1a; 一.函数指针数组 二.指向函数指针数组的指针 三.回调函数 …

3D WEB轻量化渲染引擎Communicator发布冲突检测库!增加客户端和服务器端冲突检测功能

​HOOPS Communicator是Tech Soft 3D旗下的主流产品之一&#xff0c;具有强大的、专用的高性能图形内核&#xff0c;专注于基于Web的高级3D工程应用程序。其由HOOPS Server和HOOPS Web Viewer两大部分组成&#xff0c;提供了HOOPS Convertrer、Data Authoring的模型转换和编辑工…

【Java练习题汇总】《第一行代码JAVA》综合测试二,汇总Java练习题

Java练习题 综合测试二 1️⃣ 综合测试二 1️⃣ 综合测试二 下面( )不属于面向对象的特点。 A. 封装 B. 转型 C. 继承 D. 多态 下面关于类与对象的描述正确的是( )。 A. 任何情况下必须先有类再有对象&#xff0c;对象只能够调用类中定义的方法&#xff0c;不能够调用属性 B.…

大家知道AI智能绘画是什么吗?我将为你解答

最近&#xff0c;我经常看到朋友在朋友圈上一直发美女图&#xff0c;我在想“这小子现在怎么回事&#xff0c;天天发女孩子的图片”。 便去询问了一下&#xff0c;他却笑着对我说&#xff1b;“这些都不是真人&#xff0c;是我ai智能绘画出图的”。 顿时&#xff0c;我就有点懵…

详细谈谈AIO、BIO、NIO 的区别

目录 一、什么是AIO 二、什么是BIO 三、什么是NIO 四、NIO 在 Netty 中的使用 一、什么是AIO AIO&#xff08;Asynchronous I/O&#xff0c;异步输入输出&#xff09;是一种处理输入输出的编程模型&#xff0c;它允许同时处理多个输入输出操作&#xff0c;而不需要等待每个…

Activity的自启动模式

以下内容摘自郭霖《第一行代码》第三版 文章目录 Activity的自启动模式1.standard&#xff08;默认&#xff09;2.singleTop3.singleTask4.singleInstance Activity的自启动模式 启动模式一共有4种&#xff0c;分别是standard、singleTop、singleTask和singleInstance&#x…

java: MultiValueMap

实际就是value为List的map.在较早版本(比如2.3.7)的spring boot 的loadSpringFacotories方法中有使用&#xff0c; 新版本(比如2.6.6&#xff09;已换成Map<String,List> MultiValueMap用法很简单&#xff1a;

资产盘点流程及注意事项

公司在引进固定资产管理的同时&#xff0c;也广泛加快了信息化工作的进程。现代计算机技术、条码技术、条码技术等都不能满足传统的固资管理机制&#xff0c;RFID技术、硬件扫描技术、提高固定资产管理流程、固定资产管理和统计等方面的特殊要求。科学规范地管控企业有形资产的…

日常环境配置

pip install 使用代理 例&#xff1a;代理端口&#xff1a;10808 pip install akshare --proxyhttp://127.0.0.1:10808———— conda 虚拟环境安装pip包 查看虚拟环境地址 conda info --env #查看虚拟环境地址使用–taget 安装pip 包 pip install akshare --target &q…

DataSphere Studio - 1.1.0安装部署 (单机版)

不要采用这种安装方式&#xff01;&#xff01;全部服务启动成功&#xff0c;不报错。页面还是各种报错&#xff0c;效率非常低下。 感谢微信群各位大佬帮助&#xff0c;分享了社区优秀文章中一键自动化部署脚本。 喝咖啡&#xff0c;自动部署&#xff0c;课本上故事成真。 自…

ChatGLM-6B模型使用

一、创建环境 conda create -n chatglm python3.8 conda activate chatglm 二、下载代码 git clone https://github.com/THUDM/ChatGLM-6B.git三、安装依赖 我这里是cuda11.2&#xff0c;根据自己的版本安装&#xff0c;这里是pytorch版本&#xff1a;https://pytorch.org/g…

linux系统编程重点复习--文件和目录操作

目录 复习目标 1.文件IO 2.C标准函数与系统函数的区别 2.1什么是系统调用 2.2 文件描述符 2.3 open函数 2.4 close函数 2.5 read/write 2.5.1read函数 2.5.2 write 2.6 lseek 2.7 perror和errno 2.8 阻塞和非阻塞: 3文件和目录 3.1 stat/lstat函数 3.2 opendir…

在使用Python爬虫时遇到解析错误解决办法汇总

在进行Python爬虫任务时&#xff0c;遇到解析错误是常见的问题之一。解析错误可能是由于网页结构变化、编码问题、XPath选择器错误等原因导致的。为了帮助您解决这个问题&#xff0c;本文将提供一些实用的解决办法&#xff0c;并给出相关的代码示例&#xff0c;希望对您的爬虫任…

【好书推荐】ChatGPT入门经典《这就是 ChatGPT》

文章目录 一、前言二、通俗易懂三、传奇大佬四、精彩的导读序五、总结 一、前言 目前很少能有一本书&#xff0c;能做到一定深度地普及 ChatGPT 的原理&#xff0c;而这本书可以做到恰到好处地告诉大家&#xff0c;ChatGPT 是如何工作的。 二、通俗易懂 ChatGPT 是一种人工智…

PCB制版技术

1、在头脑里形成一个原理图----现在就下载AD9盖版&#xff0c;诞生了一个问题&#xff0c;电路板去哪里买&#xff0c;买了怎么焊接电路和芯片&#xff0c;怎样流程化批量制作电子产品 1.1 形成一个PCB板&#xff0c;形成一个结构 1.2 焊接&#xff0c;嫁接&#xff0c;组装等 …