全国咨询/投诉热线:400-618-4000

Ansible如何编排部署lamp+discuz?

更新时间:2019年12月06日17时59分 来源:传智播客 浏览次数:

ansible是非常强大的配置自动化工具,主要的特点是部署快捷简单,客户端只需要打开ssh服务即可。

Ansible编排部署lamp+discuz01

它可以使用YAML格式来编写PALYBOOK实现编排部署,并且可以使用roles来实现类似编程语言中函数的封装用法。使用roles可以方便部署大型的自动化任 务。推荐了解linux云计算+运维开发课程。

下面使用ansible来编排部署lamp+discuz,大家可以举一反三来编排部署其它应用。

第1步: 创建roles目录及文件,并确认目录结构

master# cd /etc/ansible/roles/
master# mkdir -p
{httpd,mysql,php}/{files,tasks,handlers,templates,vars,met a}
master# touch
{httpd,mysql,php}/{tasks,handlers,vars,meta}/main.yml

第2步: 准备httpd相关文件

master# ls /etc/ansible/roles/httpd/files/ Discuz_X3.2_SC_UTF8.zip
httpd.conf
httpd.conf  配置文件
master# vim /etc/ansible/roles/httpd/tasks/main.yml
- name: 安装httpd相关软件包
yum: name=httpd,httpd-devel state=latest

- name: 同步配置文件
copy: src=/etc/ansible/roles/httpd/files/httpd.conf
dest=/etc/httpd/conf/httpd.conf

    notify: restart httpd
_ name: 拷贝discuz压缩包
  copy:
src=/etc/ansible/roles/httpd/files/Discuz_X3.2_SC_UTF8.zi
p dest=/tmp/
- name: 解压并mv网站文件到httpd家目录
  shell: unzip /tmp/Discuz_x3.2_sc_UTF8.zip -d /tmp &>/dev/null && 
mv /tmp/upload/* /var/www/html/ && chown -R apache.apache /var/www/html/
# 上面的命令有点多,可以写成脚本,然后使用script模块来调用执行。

- name: 启动httpd并开机启动
  servicename=httpd state=started enabled=function

第3步: 编写httpd角色的main.yml文件

第4步: 编写httpd角色里的handler


master# vim /etc/ansible/roles/httpd/handlers/main.yml
---
- name: restart httpd
  service: name=httpd state=restarted

第5步: 编写mysql角色的main.yml文件

master# vim /etc/ansible/roles/mysql/tasks/main.yml
---
- name: 安装mariadb相关软件包
yum: name=mariadb-server,mariadb-devel state=latest

- name: 启动mariadb服务器并设置开启自启动
  service: name=mariadb srate=started enabled=on

- name:执行建库脚本
  script/etc/ansible/roles/mysql/files/create.sh

第6步: 编写mysql的建库脚本

master# vim /etc/ansible/roles/mysql/files/create.sh

#!/bin/bash

mysql << EOF
create database if not exists discuz default charset=utf8; 
grant all on discuz.* to 'discuz'@'localhost' identified by '123';
flush privileges;
EOF

第7步: 编写php角色的main.yml文件


master# vim /etc/ansible/roles/php/tasks/main.yml 2 ---
- name: 安装php相关软件包
  yum: name=php,php-gd,php-ldap,php-odbc,php-pear,php- xml,php-xmlrpc,
php-mbstring,php-snmp,php-soap,curl,curl- devel,
php-bcmath,php-mysql state=present
  notify: restart httpd

第8步:编写lamp的playbook文件调用前面定义好的三个角色

master# vim /etc/ansible/playbook/lamp.yaml
---
- hosts: group1          # 代表需要安装的主机组
  remote_userroot      # 执行任务的用户
  rolse:                 # 调用如下3role,相当于调用函数
    - httpd
  - mysql
  - php

第9步: 执行lamp的playbook文件


master# ansible-playbook /etc/ansible/playbook/lamp.yaml

第10步: 可以通过浏览器访问属于group1的主机进行安装

Ansible编排部署lamp+discuz02

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额