概述
目录
- 前言
- 一、实验环境
- 二、项目部署
- 总结
前言
Ansible是目前最受运维欢迎的自动化运维工具,基于Python开发,集合了众多运维工具(SaltStack puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。本次介绍一下通过Ansible来构建LAMP及Wordpress项目部署。
一、实验环境
测试环境:centos7.8
ansible机器:192.168.139.154
web机器:192.168.139.155
database机器:192.168.139.156
功能:ansible搭建LAMP环境及Wordpress项目部署
二、项目部署
(1)yml文件编写
这里要注意,编辑的文件结尾要以yaml或yml结尾,而且此类文件的语法格式是非常严谨的,所以要谨慎操作,尤其是语法格式、相关模块名称等。yml文件内容如下所示:
[root@ansible ansible]# vim wordpress.yaml
---
# hosts: 后面可写主机组名或主机名
- hosts: all
remote_user: root
# 定义变量
vars:
db_pkgs:
# 以下的-为变量“值”,也就是在引用db_pkgs变量时,可取变量中的值
- mariadb
- mariadb-server
web_pkgs:
- httpd
- php
- php-gd
- php-mysql
- gd
# tasks:ansible机器要执行操作的任务列表(依次执行)
tasks:
# 安装mariadb
- name: install mariadb
# 引用变量时使用{{}}
yum: name={{ db_pkgs }} state=latest
when: ansible_nodename == 'database'
# 安装webserver相关服务(httpd、php)
- name: install webserver
yum: name={{ web_pkgs }} state=latest
when: ansible_nodename == 'web'
# 启动mariadb
- name: start mariadb
service: name=mariadb state=started
# 触发(类似c语言的中断信号),触发后会去handlers执行相关操作
notify: create_db
# when判断,用来针对某主机执行的操作,比如这里是指定对database组里的机器进行操作
when: ansible_nodename == 'database'
# 启动webserver相关服务
- name: start webserver
service: name=httpd state=started
when: ansible_nodename == 'web'
# 将项目包发送到指定机器(及解包)
- name: to package
unarchive: src=/etc/ansible/wordpress-4.9.4-zh_CN.tar.gz dest=/var/www/html
when: ansible_nodename == 'web'
# 修改指定机器网站发布目录属组/主
- name: chown
file: owner=apache group=apache recurse=yes path=var/www/html
when: ansible_nodename == 'web'
# 触发操作
handlers:
# 注意:这里的name名字必须和notify的触发名称保持一致
- name: create_db
# 调用shell解释器执行相关命令
shell: mysql -e "create database wordpress;grant all on *.* to 'zrs'@'%' identified by '015210';flush privileges;"
# 同样这里是针对database这个主机组里的机器
when: ansible_nodename == 'database'
(2)运行前三部曲
-
检查错误
[root@ansible ansible]# ansible-playbook wordpress.yaml --syntax-check
-
列出所有任务
[root@ansible ansible]# ansible-playbook wordpress.yaml --list-task
-
列出在那些机器执行
[root@ansible ansible]# ansible-playbook wordpress.yaml --list-hosts
(3)运行yml文件
[root@ansible ansible]# ansible-playbook wordpress.yaml
稍稍等待即可,执行完毕后就可以浏览器端访问和配置wordpress。
(4)查看database端的数据库是否起了
[root@ansible ansible]# netstat -lntp
(5)查看web端的httpd是否起了
[root@ansible ansible]# netstat -lntp
(6)浏览器端访问
项目部署成功,接下来就是点点点的操作。
如果想看具体的操作步骤,请移步至我的个人博客 https://blog.rabcnops.cn/posts/articles/1c8d3a9.html
总结
其实这里需要知道的是ansible是一款非常优秀的自动化运维工具,能批量安装部署。但要注意的是,ansible的yml文件书写格式,不能有任何出错(否则会导致无法运行),因为yml文件对格式的要求很严格。
最后
以上就是善良故事为你收集整理的Ansible搭建LAMP环境及Wordpress项目部署的全部内容,希望文章能够帮你解决Ansible搭建LAMP环境及Wordpress项目部署所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复