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 -