使用Ansible对lnmp架构部署

引言:今天带大家使用ansible进行对lnmp的架构部署,并做wordpress网站项目

准备ansible端 db1(安装nginx与php和项目) db2(安装数据库) 并做好管理关联配置

一、创建角色

路径可以自定义,例/root/juben.dir

#ansible-galaxy init nginx

#ansible-galaxy init php

#ansible-galaxy init mariadb

#ansible-galaxy init wordpress

创建完成后会生成以下目录

继续创建role.yaml 编辑以下内容

---

- hosts: "{{ hostname }}"

  remote_user: root

  roles:

  - "{{ role }}"

这里定义的两个变量

hostname为后面执行ansinle命令时指定主机的名字

role是需要演示的角色的名字

二、配置部署nginx

1.定义nginx的配置文件模版

#cp /etc/nginx/nginx.conf /opt/

#vim /opt/nginx.conf

首先对user定义一个变量

user {{ nginx_user|default(nginx) }};

然后修改server模块的listen端口变量以及发布目录变量,在加入两个location模块  

location / {
            root /usr/share/nginx/html;
            index index.php;
        }
        location ~ \.php$ {
            root          /usr/share/nginx/html;  #指定网站目录
            fastcgi_pass   127.0.0.1:9000;    #指定访问地址
            fastcgi_index  index.php;        #指定默认文件
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #站点根目录,取决于root配置项
            include        fastcgi_params;  #包含nginx常量定义
                }

实例如下:

注:将端口和访问目录定义为一个变量

2.在nginx目录下的vars中打开main.yml给定义的变量给值

---

# vars file for nginx

nginx_user: nginx

base_dir: /usr/share/nginx/

nginx_port: 80

3.进入nginx角色目录内的tasks任务目录打开main.yml编写

---

# tasks file for nginx

- name: 安装nginx源

  yum: name=epel-release state=present

- name: 安装nginx

  yum: name=nginx state=present

- name: 拷贝nginx配置文件

  template: src=/opt/nginx.conf dest=/etc/nginx/nginx.conf backup=yes

- name: 启动nginx

  service: name=nginx state=started

4.检查配置语法

ansible-playbook --syntax-check -e hostname=db1 -e role=nginx role.yaml

5.语法没有问题我们就可以直接执行了

ansible-playbook -e hostname=db1 -e role=nginx role.yaml

6.我们可以进入db1主机查看nginx是否安装并启动

三、配置部署php-fpm

1.进入php角色目录内的tasks任务目录打开main.yml编写

---
# tasks file for php
- name: 安装php源
  yum: name=http://rpms.remirepo.net/enterprise/remi-release-7.rpm state=present

- name: 安装php
  yum: name=php80-php-xsl,php80-php,php80-php-cli,php80-php-devel,php80-php-gd,php80-php-pdo,php80-php-mysql,php80-php-fpm state=present

- name: 启动php
  service: name=php80-php-fpm  state=started enabled=yes

2.检查语法

ansible-playbook --syntax-check -e hostname=db1 -e role=php role.yaml

3.语法没有问题就可以直接执行

ansible-playbook -e hostname=db1 -e role=php role.yaml

4.我们可以去db1看一下php是否被安装并启动

四、配置部署mariadb

1.进入mariadb角色目录内的tasks任务目录打开main.yml编写

---
# tasks file for mariadb
- name: 安装数据库
  yum: name=mariadb-server,mariadb state=present

- name: 启动数据库
  service: name=mariadb state=started enabled=yes

- name: 创建一个数据库并授权用户密码
  shell: mysql -e "create database {{ databases_name }};grant all on {{ databases_name }}.* to '{{ user_name }}'@'%' identified by '{{ user_password }}';flush privileges"

2.在mariadb目录下的vars中打开main.yml给定义的变量给值

3.检查语法

语法没有问题就可以直接执行

4.我们可以进入db2主机查看mariadb是否安装并启动

五、远程解压wordpress包给到db1我们设置的nginx的访问页面目录下

1.上传wordpress-6.2.2-zh_CN.tar.gz到/root/juben.dir/wordpress/files/

2.进入wordpress角色目录内的tasks任务目录打开main.yml编写

---
# tasks file for wordpress
- name: 安装解压工具
  yum: name=unzip state=present

- name: 上传wordpress源码包
  unarchive: src=/root/juben.dir/wordpress/files/wordpress-6.2.2-zh_CN.tar.gz  dest={{ base_dir }}

- name: 重启nginx
  service: name=nginx state=restarted

3.检查语法

语法没有问题就可以直接执行

4.我们可以进入db1的/use/share/nginx/wordpress/下看看有没有远程解压并传输成功

ok

浏览器输入db1ip测试完成基础信息填写,并登录,就到了wordpress首页

下期再见!!

  • 33
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

藻头男

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

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

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

打赏作者

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

抵扣说明:

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

余额充值