ansible-playbook实操之一键搭建lnmp+wordpress

news2024/9/27 17:25:09

目录

1、架构和准备:

2、配置nginx角色:

3、配置mariadb角色:

4、配置php角色:

5、配置完之后,写脚本调用roles

6、配置完之后浏览器搭建wordpress:


1、架构和准备:

操控节点:20.0.0.22 ansible

搭建节点:20.0.0.61

关闭防火墙和安全机制

在主节点ansible中配置roles

cd /etc/ansible/roles
mkdir nginx mariadb php
mkdir nginx/tasks
mkdir mariadb/tasks
mkdir php/tasks

2、配置nginx角色:

cd /etc/ansible/roles/nginx/tasks
vim main.yml

- name: install nginx
  yum:
    name: nginx
#下载nginx

- name: copy nginx file
  copy:
    src: /opt/nginx.conf
    dest: /etc/nginx/
#将配置好的nginx.从文件copy到目标节点

- name: Download WordPress
  get_url:
    url: https://wordpress.org/latest.tar.gz
    dest: /opt/latest.tar.gz

- name: Extract WordPress
  command: "tar -xf /opt/latest.tar.gz -C /usr/share/nginx/html/"

- name: Set permissions for WordPress
  command: "chmod -R 777 /usr/share/nginx/html/wordpress"
#下载wordpress,解压,放入html下,提供访问

- name: start nginx
  service:
    name: nginx
    state: started
#启动nginx

nginx的配置文件放在/opt下面:

在原先nginx.conf的基础上加入:

location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
}
location / {
            root   html;
            index  index.html index.htm index.php;
        }

FastCGI是一种用于连接Web服务器(如Nginx、Apache等)与应用程序(如PHP、Python、Ruby等)的通信协议。它的作用是提供一种高效、可靠、灵活的方式来处理动态网页内容的请求,使Web服务器能够与动态应用程序进行交互。

location ~ \.php$ { ... }:这是一个正则表达式匹配的location块,用于匹配以.php为后缀的请求。

root html;:设置服务器根目录为html,即将从这个目录开始查找文件。

fastcgi_pass 127.0.0.1:9000;:设置FastCGI服务器的地址和端口号。

在这里,FastCGI服务器设置为本地地址(127.0.0.1)的9000端口。通常,这是PHP-FPM的监听地址和端口。

fastcgi_index index.php;:指定当请求目录时默认访问的文件名。

在这里,如果请求目录时,默认访问的文件为index.php。

fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;:

设置FastCGI参数SCRIPT_FILENAME的值,指定PHP脚本的文件路径。

$fastcgi_script_name是FastCGI服务器传递给PHP-FPM的变量,

表示当前请求的脚本路径。这里将根目录设置为/usr/local/nginx/html,

以匹配Nginx配置文件中root指令的值。

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;:

这是另一种设置SCRIPT_FILENAME的方式,使用了$document_root变量。

$document_root表示Nginx中root指令指定的值,即服务器根目录。

这里将$document_root$fastcgi_script_name设置为SCRIPT_FILENAME的值,

以便传递给PHP-FPM。

include fastcgi_params;:包含fastcgi_params文件中的FastCGI参数。

这里使用include指令,将fastcgi_params中的内容合并到当前配置中。

3、配置mariadb角色:

vim /etc/ansible/roles/mariadb/tasks/main.yml

- name: install mariadb
  yum: 
    name:
     - mariadb 
     - mariadb-server
#下载mariadb和其server

- name: start it
  service: name=mariadb state=started
#启动mariadb

下载完mariadb之后要进入mysql中给wordpress创数据库和给权限。

ansible不支持交互式的命令,所以只能远程登录mysql操作:

但远程的前提是数据库中给权限:

所以这里mariadb给权限,貌似不能远程操作。。。

这里我们坐高铁去现场给权限:

进入容器给权限:

create database wordpress;
grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' identified by '123456';
flush privileges;

给完权限打车回家,继续远程:

4、配置php角色:

wordpress6.4.2需要最少php7.0以上才能支持

yum仓库中的php版本太低

这里我们利用remi仓库下载php7.1.1:

vim /etc/ansible/roles/php/tasks/main.yml

- name: remi install
  yum:
    name: https://rpms.remirepo.net/enterprise/remi-release-7.rpm
    validate_certs: no
#添加 REMI 存储库,validate_certs: no表示禁用 SSL 证书验证,不然安全机制会禁止下载

- name: remi start
  command:
    cmd: yum-config-manager --enable remi-php71
#启动remi仓库

- name: php install
  yum:
    name:
      - php
      - php-fpm
      - php-mysqlnd.x86_64
#下载php、php-fpm和php和mysql扩展

- name: php start
  service:
    name: php-fpm
    state: started
#启动php-fpm

5、配置完之后,写脚本调用roles

vim /etc/ansibel/roles/site.yml

- hosts: 20.0.0.61
  remote_user: root
  roles:
   - nginx
   - mariadb
   - php

启动ansible-playbook

cd /etc/ansibel/roles
ansible-playbook site.yml

6、配置完之后浏览器搭建wordpress:

http://20.0.0.61/wordpress/index.php

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

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

相关文章

2022第十二届PostgreSQL中国技术大会-核心PPT资料下载

一、峰会简介 本次大会以“突破•进化•共赢 —— 安全可靠,共建与机遇”为主题,助力中国数据库基础软件可掌控、可研究、可发展、可生产,并推动数据库生态的繁荣与发展。大会为数据库从业者、数据库相关企业、数据库行业及整个IT产业带来崭…

C# 类型和成员

C# 教程 - 类型及其成员 - C# | Microsoft Learnhttps://learn.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/types 目录 类和对象 类型参数 基类 结构 接口 枚举 可为 null 的类型 元组 作为面向对象的语言,C# 支持封装、继承和多态性这些概念。 类可…

图像质量评估方法——结构相似性指数(SSIM)

结构相似性指数(SSIM)是一种全参考图像质量评估方法,用于比较两幅图像的相似性。 SSIM的计算涉及到亮度(Luminance)、对比度(Contrast)和结构(Structure)三个方面的相似性…

Goland配置leetcode

1. 安装 首先在goland的setting界面上找到Plugins,然后搜索关键字leetcode,找到LeetCode Editor,安装它。 在安装后,第一次需要对其进行配置,在Tools中找到LeetCode Plugins,如下图所示进行配置。首先国内…

Pytorch,16个超强转换函数全总结!!

哈喽,这些天无论是社群还是私信,很多人希望看到更多关于深度学习基础内容,这篇文章想要分享的是关于pytorch的转换函数。 建议大家一定要好好看看这部分,在平常的使用中,既多又重要!! 当然在 P…

正式官宣!谈思AutoSec 8周年年会暨中国汽车网络安全及数据安全合规峰会将于明年4月在沪召开

随着智能互联网时代的到来,智能汽车的安全形势变得更加严峻和复杂,网络资产的暴露和安全边界继续扩大。与传统的汽车车身安全问题相比,网络安全、数据安全、用户隐私等安全问题交织叠加,并加速了黑客对智能汽车领域的渗透&#xf…

在别人发来的文章上修改时,出现红色且带下划线的情况

这是因为一些比较严谨的机构将模板发过来在你修改的时候会出现特殊标记(比如律师行业) 这里想要直接在他的文档上进行修改,需要取消掉原来的修订配置 再次输入格式消失

我们一起动手学大模型应用开发

大模型正逐步成为信息世界的新革命力量,其通过强大的自然语言理解、自然语言生成能力,为开发者提供了新的、更强大的应用开发选择。 随着国内外井喷式的大模型 API 服务开放,如何基于大模型 API 快速、便捷地开发具备更强能力、集成大模型的…

three.js使用精灵模型Sprite渲染森林

效果&#xff1a; 源码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div class"box-right&quo…

nginx反向代理服务器及负载均衡服务配置

一、正向代理与反向代理 正向代理&#xff1a;是一个位于客户端和原始服务器(oricin server)之间的服务器&#xff0c;为了从原始服务器取得内容&#xff0c;客户端向代理发送一个请求并指定目标(原始服务器)&#xff0c;然后代理向原始服务器转交请求并将获得的内容返回给客户…

一文道破Java中的深拷贝,浅拷贝,零拷贝

前言 在Java编写代码中&#xff0c;对象的拷贝是一个常见的操作。根据拷贝的层次和方式不同&#xff0c;可以分为深拷贝、浅拷贝和零拷贝。本篇文章我们将详细介绍这三种拷贝方式的概念、实现方法以及使用场景&#xff0c;方便大佬学习及面试。 深拷贝 深拷贝是一种创建对象副…

晶振等效电路工作原理和特性详细解读

晶振等效电路对于理解电子设备的工作原理和故障排除具有重要意义&#xff0c;晶振工作时内部是真实的存在“振动”的&#xff0c;是机械振动。振动的同时两端会输出对应频率的振动电压&#xff0c;这个电压非常精确且稳定&#xff0c;所以我们经常用作时钟信号。 一、等效电路…

【AI】使用阿里云免费服务器搭建Langchain-Chatchat本地知识库

书接上文&#xff0c;由于家境贫寒的原因&#xff0c;导致我本地的GPU资源无法满足搭建Langchain-Chatchat本地知识库的需求&#xff0c;具体可以看一下这篇文章&#xff0c;于是我只能另辟蹊径&#xff0c;考虑一下能不能白嫖一下云服务器资源&#xff0c;于是去找网上找&…

阿里云服务器本地localhost换成本地的IP地址后不能访问的原因

阿里云服务器本地localhost换成本地的IP地址后不能访问的原因 问题在安装以及配置都没有问题的情况下我使用localhost:5001&#xff08;127.0.0.1:5001&#xff09;都可以正常使用&#xff0c;但是我是用本机Ip地址的时候发现无法打开网页以上这个问题出现在我阿里云的服务器上…

基于Matlab/Simulink不平衡电网工况下级联H桥光伏并网逆变器仿真模型

本次更新的内容为级联H桥光伏并网逆变器相关的控制&#xff0c;后面会针对储能系统在级联H桥拓扑上的应用进行分享。由于传统发电造成的环境污染问题和光伏电池板价格持续创新低&#xff0c;太阳能从众多种类的可再生能源中拔地而起&#xff0c;因而光伏逆变器成为国内外学者和…

nestjs swagger文档调用需要鉴权的接口

目标 nestjs经常需要设置一些鉴权&#xff08;登录后&#xff09;才能访问的接口&#xff0c;但是生成的swagger文档可以发起接口请求&#xff0c;文档发起的请求默认是不携带登录token的&#xff0c;所以需要移除swagger文档发起请求的守卫拦截。 nestjs守卫拦截设置见另一篇…

(Spring学习12)Spring 6.0及SpringBoot 3.0新特性解析

主要内容&#xff1a; 1、GraalVM介绍与基本使用 2、Spring Boot 3.0新特性介绍与实战 3、Docker SpringBoot3.0 新特性实战 4、RuntimeHints介绍与实战 5、Spring AOT作用与核心原理源码分析 GraalVM体验 https://github.com/spring-projects/spring-framework/wiki/What%2…

编解码异常分析

前言 最近在做的项目&#xff0c;有H264解码的需求。部分H264文件解码播放后&#xff0c;显示为绿屏或者花屏。 分析 如何确认是否是高通硬解码的问题 adb 指令 adb root adb remount adb shell setenforce 0 adb shell setprop vendor.gralloc.disable_ubwc 1 adb shell c…

【Unity学习笔记】1.创建场景

创建场景 注1&#xff1a;samplescene&#xff08;示例场景&#xff09;、standard assets&#xff08;标准资产&#xff09;、favorites&#xff08;收藏夹&#xff09;、terrain&#xff08;地形&#xff09;。 注2&#xff1a;favorites用于存放各种资源&#xff1b;sample…

【数字图像处理】常见噪声模型选择

1. 引言 1.1 背景介绍 在数字图像处理中&#xff0c;噪声是一个普遍存在的问题&#xff0c;影响图像质量和分析的准确性。本研究旨在深入探讨泊松噪声的参数估计与去噪方法&#xff0c;以提高图像处理的鲁棒性。 1.2 研究目的与意义 通过对各种常见噪声模型的仿真实现&…