我是靠谱客的博主 善良故事,最近开发中收集的这篇文章主要介绍Ansible搭建LAMP环境及Wordpress项目部署,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

    • 前言
    • 一、实验环境
    • 二、项目部署
    • 总结

前言

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项目部署所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(249)

评论列表共有 0 条评论

立即
投稿
返回
顶部