zoukankan      html  css  js  c++  java
  • 自动化运维工具Ansible之LNMP实践环境部署

    Ansible-实战指南-LNMP环境部署,并使用zabbix监控

    主机规划

    系统初始化:必要的系统初始化

    基础组件包括:zabbix监控,mariadb(用于存放zabbix监控信息)

    业务组件包括:MySQL、memcached、nginx、PHP、haproxy、keepalived

    添加用户账号

    说明:

    1、 运维人员使用的登录账号;

    2、 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放;

    3、 该用户也被 ansible 使用,因为几乎所有的生产环境都是禁止 root 远程登录的(因此该 yun 用户也进行了 sudo 提权)。

    1 # 使用一个专门的用户,避免直接使用root用户
    2 # 添加用户、指定家目录并指定用户密码
    3 # sudo提权
    4 # 让其它普通用户可以进入该目录查看信息
    5 useradd -u 1050 -d /app yun && echo '123456' | /usr/bin/passwd --stdin yun
    6 echo "yun  ALL=(ALL)       NOPASSWD: ALL" >>  /etc/sudoers
    7 chmod 755 /app/

    备注:记得在管理机 172.16.1.180 上实现对其他机器的免密登录。

    Ansible 配置清单Inventory

     1 [yun@ansi-manager ansible_info]$ cat hosts_key
     2 # 业务组件分组
     3 [manageservers]
     4 172.16.1.180:22
     5 
     6 [keepalivedserver]
     7 172.16.1.181
     8 172.16.1.182
     9 
    10 [proxyservers]
    11 172.16.1.18[1:2]:22
    12 
    13 [webservers]
    14 172.16.1.183 ansible_ssh_port=22
    15 172.16.1.184 ansible_ssh_port=22
    16 172.16.1.185 ansible_ssh_port=22
    17 
    18 [memservers]
    19 172.16.1.185
    20 
    21 [dbservers]
    22 172.16.1.183
    23 172.16.1.184
    24 172.16.1.185
    25 
    26 [dbservers_master]
    27 172.16.1.183
    28 
    29 [dbservers_slave]
    30 172.16.1.184
    31 172.16.1.185
    32 
    33 
    34 # 基础组件分组
    35 ## 数据库组件分组
    36 [zabbixdbserver]
    37 172.16.1.180
    38 
    39 ## 基础业务组件分组
    40 [zabbixserver]
    41 172.16.1.180

    系统架构

    实战项目GitHub地址

    该项目已经放在了GitHub上,地址如下:

    https://github.com/zhanglianghhh/ansible-example-lnmp

    如需要请自行访问或下载。

    项目任务分解

    获取需求并拿到机器的时候,这时需要我们做如下分析:

    1、主机规划:每台主机用于部署什么模块【本文第一节实际已经规划好了】

    2、普通用户创建与提权:如果机器是公司统一初始化的,那么可以不创建普通用户,只需提权即可。

    3、ansible管理机到其他机器的免密登录。

    4、具体任务分解:包括机器必要的初始化、基础组件部署与业务组件部署。如果公司对机器做了统一的初始化,那么视情况而定。

    ## 系统初始化
    1、基础镜像源与epel镜像源
    2、必要的包安装
    3、指定环境变量,如:为history命令添加时间信息;操作命令记录到系统日志
    4、用户名、主机添加背景色,用于生产环境,这样可以减少人为的误操作
    5、别名配置,如:alias grep='grep --color=auto'
    6、内核参数修改,生产中视情况而定
    7、创建web站点用户 www。
    8、创建必要的目录,如:软件包存放目录,后期运维脚本存放目录
    
    ## 基础组件部署
    1yum 安装mariadb,用于存放监控信息
    2yum 安装zabbix server
    3yum 安装zabbix agent
    
    ## 业务组件部署
    1、MySQL 数据库部署
    2、MySQL 主从实现
    3、memcached 部署
    4、nginx 部署
    5、PHP 部署
    6、nginx、PHP整合,nginx、PHP、MySQL整合,nginx、PHP、memcached整合
    7、haproxy 部署
    8、keepalived 部署

    项目编写与后续验证步骤

    请参见:

    https://github.com/zhanglianghhh/ansible-example-lnmp

    这里包含:涉及目录与文件说明;服务部署;停止服务【因为是个人电脑通过虚拟机实现的】;服务验证。

    为了避免重复这里就不单独说了,参见上面地址即可。


    ———END———
    如果觉得不错就关注下呗 (-^O^-) !

     

  • 相关阅读:
    Leetcode#117 Populating Next Right Pointers in Each Node II
    Leetcode#123 Best Time to Buy and Sell Stock III
    获取文件大小的方法
    内存映射
    git patch
    git cherry-pick
    关于extern的说明
    Linux如何查看与/dev/input目录下的event对应的设备
    如何在Linux下统计高速网络中的流量
    [: ==: unary operator expected 解决方法
  • 原文地址:https://www.cnblogs.com/zhanglianghhh/p/12872125.html
Copyright © 2011-2022 走看看