【Ansible】Ansible自动化运维工具之playbook剧本搭建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 -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
sed -i 's/gpgcheck=1/gpgcheck=0/' mysql-community.repo

#将mysql的安装源移动到playbooks目录下
cp mysql-community.repo /etc/ansible/playbooks/

在这里插入图片描述

#准备mysql初始化脚本文件
cd /etc/ansible/playbooks/
vim mysql.sh
passd=$(grep "A temporary password is generated for root@localhost:" /var/log/mysqld.log | awk '{print
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的宝贝大唐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值