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

本文介绍了如何使用saltstack自动化部署源码编译的nginx和haproxy。首先详细阐述了源码编译nginx的步骤,包括编写sls文件、解决依赖问题和启动服务。接着,文章展示了使用saltstack部署haproxy的过程,从配置环境到安装haproxy,再到修改配置文件实现负载均衡。最后,通过实际操作验证了配置的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

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

二、使用源码编译nginx

nginx源码编译的基本步骤必须知道
在源码编译当然需要nginx的压缩包,在网上可以找到,由于我们也是做实验,所以对于版本没有要求。
先在base目录下面创建相应的目录
在这里插入图片描述

步骤一:编写nginx.sls文件
我们一点点进行
在这里插入图片描述
之前我们在源码安装时,需要注释掉debug
在这里插入图片描述
先在server2上测试,命令是否能够的到想要的结果

在这里插入图片描述
查看已经注释掉了
写入sls文件
在这里插入图片描述
推送
在这里插入图片描述
之所以不成功是因为依赖性问题
步骤二:写清楚我们需要做什么,解压,安装,当然在安装的时候需要考虑依赖性的问题
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
推送成功!

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

在这里插入图片描述
files里面存放文件,将nginx.service放到files目录下面
在这里插入图片描述
在这里插入图片描述service.sls里面使用include。所以在写全局文件时,只需要写service
在这里插入图片描述

nginx配置文件的修改(我们在没有安装nginx时,系统是没有nginx服务,更别说配置文件,我们在一个主机上解压,得到他的配置文件就可以了,在sls文件里面的书写,也可以在已经安装nginx的主机上测试,判断自己是否写对)
在这里插入图片描述
在这里插入图片描述

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

每一次的修改之后必须推送,否则不生效
在这里插入图片描述

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

在这里插入图片描述

全局推送

全局推送的好处就是不需要太多的要求,只需要在全局文件里面写清楚即可
也可以称之为一键推送
在这里插入图片描述
不同的是server2用的是service,server3用的是install
这与两个所写的sls文件有关,server2中涉及到了service,而service.sls调用了install.sls文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、使用saltsack自动部署haproxy

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

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

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

如果连接不上,在server4上查看/etc/salt/minion_id,将它清空。然后重新连接
在这里插入图片描述

开始部署

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

在这里插入图片描述
先安装haproxy,得到它的相应的配置文件
在这里插入图片描述
修改配置文件,将server4上的配置文件拷贝到server1上/srv/salt/haproxy/files里面,存放文件
在这里插入图片描述
文件的修改结果如下:
加入后端的轮询ip以及相应的端口,一定要查看server2和server3上的端口,不一定是默认的
在这里插入图片描述

在这里插入图片描述
推送成功即可
在这里插入图片描述
但是当我们访问web界面的时候,却是404的错误
在这里插入图片描述
通过curl,实现了轮询
在这里插入图片描述在这里插入图片描述
是因为在配置文件里面没有添加uri的目录
在这里插入图片描述同时将server4写进全局文件里面

在这里插入图片描述
使用全局推送
在这里插入图片描述

在这里插入图片描述
再次访问可以看到web界面对sever2和server3的状态的显示
在这里插入图片描述
我们先关闭server3的httpd
在这里插入图片描述
可以看到web界面上server3的状态变红,出错了
在这里插入图片描述
在这里插入图片描述
将httpd打开,又恢复正常
在这里插入图片描述
通过浏览器访问,实现轮询
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值