saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)

文章目录

    • 一、前言
    • 二、使用源码编译nginx
      • 全局推送
    • 三、使用saltsack自动部署haproxy
      • 开始部署

一、前言

在之前对于nginx的学习中,源码编译nginx需要输入的命令较多,而且也比较麻烦,今天我们将saltsack工具来将它进行自动化源码编译,其实ansible和saltsack两者的作用一样,只是每个公司所使用的的工具不一样。两个工具都是基于python语言的,所以将两个都学习一下。

二、使用源码编译nginx

nginx源码编译的基本步骤必须知道
在源码编译当然需要nginx的压缩包,在网上可以找到,由于我们也是做实验,所以对于版本没有要求。
先在base目录下面创建相应的目录
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第1张图片

步骤一:编写nginx.sls文件
我们一点点进行
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第2张图片
之前我们在源码安装时,需要注释掉debug
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第3张图片
先在server2上测试,命令是否能够的到想要的结果

在这里插入图片描述
查看已经注释掉了
写入sls文件
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第4张图片
推送
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第5张图片
之所以不成功是因为依赖性问题
步骤二:写清楚我们需要做什么,解压,安装,当然在安装的时候需要考虑依赖性的问题
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第6张图片
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第7张图片

nginx-install:
  pkg.installed:
    - pkgs:
      - gcc
      - pcre-devel
      - openssl-devel

  file.managed:
    - name: /mnt/nginx-1.16.1.tar.gz
    - source: salt://nginx/files/nginx-1.16.1.tar.gz

  cmd.run:
    - name: cd /mnt && tar zxf nginx-1.16.1.tar.gz && cd  nginx-1.16.1  && sed -i.bak 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx --with-http_ssl_module &> /dev/mull && make &> /dev/mull && make install &> /dev/mull
    - creates: /usr/local/nginx

saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第8张图片
推送成功!

步骤三:打开服务。由于是源码安装,所以需要使用脚本打开服务。
在网上搜索
在这里插入图片描述

saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第9张图片
files里面存放文件,将nginx.service放到files目录下面
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第10张图片
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第11张图片service.sls里面使用include。所以在写全局文件时,只需要写service
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第12张图片

nginx配置文件的修改(我们在没有安装nginx时,系统是没有nginx服务,更别说配置文件,我们在一个主机上解压,得到他的配置文件就可以了,在sls文件里面的书写,也可以在已经安装nginx的主机上测试,判断自己是否写对)
在这里插入图片描述
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第13张图片

nclude:
  - nginx.install

/usr/local/nginx/conf/httpd.conf:
  file.managed:
    - source: salt://nginx/files/nginx.service

nginx.service:
  file.managed:
    - name: /usr/lib/systemd/system/nginx.service
    - source: salt://nginx/files/nginx.service

  service.running:
    - name: nginx
    - reload: true
    - watch:
      - file: /usr/local/nginx/conf/httpd.conf

每一次的修改之后必须推送,否则不生效
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第14张图片

步骤四:在server2上查看进程和端口

saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第15张图片

全局推送

全局推送的好处就是不需要太多的要求,只需要在全局文件里面写清楚即可
也可以称之为一键推送
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第16张图片
不同的是server2用的是service,server3用的是install
这与两个所写的sls文件有关,server2中涉及到了service,而service.sls调用了install.sls文件
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第17张图片
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第18张图片
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第19张图片

三、使用saltsack自动部署haproxy

根据上述的几个实验,一个安装了apache,一个安装了nginx,我们重新添加一个主机,来安装我们的haoroxy。

server4的上也需要配置环境,与之前server2和serve3上的操作一样。
yum源---->安装salt-minion---->修改自己的minion,标明master的ip---->打开服务---->在master上连接server4

saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第20张图片
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第21张图片

saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第22张图片

如果连接不上,在server4上查看/etc/salt/minion_id,将它清空。然后重新连接
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第23张图片

开始部署

将server1和server4来连接起来之后,在base目录下面创建haproxy目录

saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第24张图片
先安装haproxy,得到它的相应的配置文件
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第25张图片
修改配置文件,将server4上的配置文件拷贝到server1上/srv/salt/haproxy/files里面,存放文件
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第26张图片
文件的修改结果如下:
加入后端的轮询ip以及相应的端口,一定要查看server2和server3上的端口,不一定是默认的
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第27张图片

saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第28张图片
推送成功即可
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第29张图片
但是当我们访问web界面的时候,却是404的错误
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第30张图片
通过curl,实现了轮询
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第31张图片在这里插入图片描述
是因为在配置文件里面没有添加uri的目录
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第32张图片同时将server4写进全局文件里面

saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第33张图片
使用全局推送
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第34张图片

saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第35张图片
再次访问可以看到web界面对sever2和server3的状态的显示
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第36张图片
我们先关闭server3的httpd
在这里插入图片描述
可以看到web界面上server3的状态变红,出错了
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第37张图片
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第38张图片
将httpd打开,又恢复正常
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第39张图片
通过浏览器访问,实现轮询
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第40张图片
saltstack自动化运维----使用saltstack自动化部署源码编译nginx和自动化部署haproxy(4)_第41张图片

你可能感兴趣的:(企业)