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

目录

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 nginxyum:name: nginx
#下载nginx- name: copy nginx filecopy:src: /opt/nginx.confdest: /etc/nginx/
#将配置好的nginx.从文件copy到目标节点- name: Download WordPressget_url:url: https://wordpress.org/latest.tar.gzdest: /opt/latest.tar.gz- name: Extract WordPresscommand: "tar -xf /opt/latest.tar.gz -C /usr/share/nginx/html/"- name: Set permissions for WordPresscommand: "chmod -R 777 /usr/share/nginx/html/wordpress"
#下载wordpress,解压,放入html下,提供访问- name: start nginxservice:name: nginxstate: 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 mariadbyum: name:- mariadb - mariadb-server
#下载mariadb和其server- name: start itservice: 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 installyum:name: https://rpms.remirepo.net/enterprise/remi-release-7.rpmvalidate_certs: no
#添加 REMI 存储库,validate_certs: no表示禁用 SSL 证书验证,不然安全机制会禁止下载- name: remi startcommand:cmd: yum-config-manager --enable remi-php71
#启动remi仓库- name: php installyum:name:- php- php-fpm- php-mysqlnd.x86_64
#下载php、php-fpm和php和mysql扩展- name: php startservice:name: php-fpmstate: started
#启动php-fpm

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

vim /etc/ansibel/roles/site.yml- hosts: 20.0.0.61remote_user: rootroles:- 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.hqwc.cn/news/297317.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

西门子博途与菲尼克斯无线蓝牙模块通讯

菲尼克斯无线蓝牙模块 正常运行时,可以使用基站控制字0发送00E0(得到错误代码命令) 正常运行时,可以使用基站控制字0发送00E0(得到错误代码命令)得到各个无线I/O是否连 接的信号(状态字IN word 1的第2、6、10位) 小车1连接状态 小车2连接状态 小车3连接状态 1#小车自…

基于 ACK One 实现简单的跨云协同,让业务管理更高效

作者:庄宇 本文根据 2023 云栖大会现场分享实录整理 2 年前的云栖大会,我们发布分布式云容器平台 ACK One,随着 2 年的发展,很高兴看到 ACK One 在混合云,分布式云领域帮助到越来越多的客户,今天给大家汇报…

K8S 日志方案

目录 一、统一日志管理的整体方案 1、基础日志 2、Node级别的日志 3、集群级别的日志架构 二、安装统一日志管理组件 1、 部署Elasticsearch 2、部署Fluentd 3、部署Kibana 三、日志数据展示 一、统一日志管理的整体方案 通过应用和系统日志可以了解Kubernetes集群内…

快速学习 webpack

目录 1. webpack基本概念 webpack能做什么? 2. webpack的使用步骤 2.1_webpack 更新打包 3. webpack的配置 3.1_打包流程图 3.2_案例-webpack隔行变色 3.3_插件-自动生成html文件 3.4_加载器 - 处理css文件问题 3.5_加载器 - 处理css文件 3.6_加载器 - 处…

红队攻防实战之DC1

如果额头终将刻上皱纹,你只能做到,不让皱纹刻在你的心上 0x01 信息收集: 1.1 端口探测 使用nmap工具 端口扫描结果如下: 由nmap扫描可以知道,目标开放了22,80,111,46204端口,看到端口号22想到ssh远程连接&#xff…

五、交换机基础配置实验

文章目录 实验内容实验拓扑配置交换机双工模式 实验内容 某公司刚成立,新组建网络,购置了 3 台交换机。其中 S1和 S2为接入层交换机,S3 为汇聚层交换机。现在网络管理员需要对3 台新交换机进行基本配置,保证交换机间的接口使用全…

超维空间S2无人机使用说明书——21、VINS视觉定位仿真

引言:为了实现室内无人机的定位功能,S系列无人机配置了VINS-FUSION定位环境,主要包含了仿真跑数据集和实际操作部分。为了提前熟悉使用原理,可以先使用仿真环境跑数据集进行学习和理解 硬件:1080P显示器、Jetson orin…

Cisco 将收购 Cilium 母公司 Isovalent,预计 2024 年第 3 季度完成

本文地址:Cisco 将收购 Cilium 母公司 Isovalent,预计 2024 年第 3 季度完成 | 深入浅出 eBPF 2023 年 12 月 21 日,Isovalent 公司 CTO & 联合创始人 Thomas Graf 和 Cisco 安全业务集团高级副总裁兼总经理 Tom Gillis 分别在各自公司网…

贝叶斯球快速检验条件独立

贝叶斯球 定义几个术语,描述贝叶斯球在一个结点上的动作: 通过(pass through):从当前结点的父结点方向过来的球,可以访问当前结点的任意子结点(父->子)。从当前节点的子结点方向…

【java爬虫】基于springboot+jdbcTemplate+sqlite+OkHttp获取个股的详细数据

注:本文所用技术栈为:springbootjdbcTemplatesqliteOkHttp 前面的文章我们获取过沪深300指数的成分股所属行业以及权重数据,本文我们来获取个股的详细数据。 我们的数据源是某狐财经,接口的详细信息在下面的文章中,本…

Python小细节之代码极致简化到一行(2)(技法慎用)

一行代码合并字典(新字典) 引言开整一行代码合并字典普通方法举例 简化高级方法举例 总结:结尾 引言 上次的极简化,看起来大家反应还不错 所以继续肝,但是我觉得这种讲细一点会比较好 所以,每次就KO一个…

Point-BERT:一种基于Transformer架构的点云深度网络

目录 1. 前言 2. Point Tokenization 3. Transformer Backbone 4. Masked Point Modeling 5. Experiments Reference 1. 前言 从PointNet [1] 开始,点云深度网络逐渐成为解决点云特征提取与语义分析的主要研究方向。尤其在OpenAI的GPT模型获得了突破性成果后&#…