教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线: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

0 分享到:
和我们在线交谈!