【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

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构_第1张图片

#配置密钥对验证
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

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构_第2张图片

#配置主机清单
cd /etc/ansible

vim hosts       
[nginx]		
192.168.145.30	
[mysql]
192.168.145.45
[php]
192.168.145.60

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构_第3张图片

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

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构_第4张图片

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/

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构_第5张图片

#配置 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

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构_第6张图片

#准备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 "

Success!!

"
; else echo "Fail!!"; ?>

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构_第7张图片

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

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构_第8张图片

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

【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构_第9张图片

4. 安装 mysql

4.1 准备 mysql 相关文件

#安装 mysql 5.7
cd /etc/yum.repos.d
wget -

你可能感兴趣的:(Ansible,运维,ansible,自动化)