全國咨詢/投訴熱線: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

10大熱門學科
直播課

立即
試聽
理财平台关闭后储户的钱怎么办