更新時間:2019年12月06日17時59分 來源:傳智播客 瀏覽次數(shù):
ansible是非常強(qiáng)大的配置自動化工具,主要的特點(diǎn)是部署快捷簡單,客戶端只需要打開ssh服務(wù)即可。
它可以使用YAML格式來編寫PALYBOOK實(shí)現(xiàn)編排部署,并且可以使用roles來實(shí)現(xiàn)類似編程語言中函數(shù)的封裝用法。使用roles可以方便部署大型的自動化任 務(wù)。推薦了解linux云計算+運(yùn)維開發(fā)課程。
下面使用ansible來編排部署lamp+discuz,大家可以舉一反三來編排部署其它應(yīng)用。
第1步: 創(chuàng)建roles目錄及文件,并確認(rèn)目錄結(jié)構(gòu)
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步: 準(zhǔn)備httpd相關(guān)文件
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相關(guān)軟件包 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網(wǎng)站文件到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/ # 上面的命令有點(diǎn)多,可以寫成腳本,然后使用script模塊來調(diào)用執(zhí)行。 - name: 啟動httpd并開機(jī)啟動 service: name=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相關(guān)軟件包 yum: name=mariadb-server,mariadb-devel state=latest - name: 啟動mariadb服務(wù)器并設(shè)置開啟自啟動 service: name=mariadb srate=started enabled=on - name:執(zhí)行建庫腳本 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相關(guān)軟件包 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文件調(diào)用前面定義好的三個角色
master# vim /etc/ansible/playbook/lamp.yaml --- - hosts: group1 # 代表需要安裝的主機(jī)組 remote_user:root # 執(zhí)行任務(wù)的用戶 rolse: # 調(diào)用如下3個role,相當(dāng)于調(diào)用函數(shù) - httpd - mysql - php
第9步: 執(zhí)行l(wèi)amp的playbook文件
master# ansible-playbook /etc/ansible/playbook/lamp.yaml
第10步: 可以通過瀏覽器訪問屬于group1的主機(jī)進(jìn)行安裝
Mysql中如何修改字段的排列順序?
2019-11-28MySql數(shù)據(jù)表中怎么刪除字段?[運(yùn)維培訓(xùn)]
2019-11-28MySql如何在數(shù)據(jù)表中添加字段?[IT運(yùn)維培訓(xùn)]
2019-11-28Mysql中如何修改字段的數(shù)據(jù)類型?[運(yùn)維培訓(xùn)]
2019-11-28傳智播客SVN視頻教程下載-共12節(jié)課[IT運(yùn)維培訓(xùn)]
2019-11-28容器化部署微服務(wù)項(xiàng)目視頻教程[IT運(yùn)維培訓(xùn)]
2019-11-22