5.saltstack使用指南:使用saltstack部署nginx

SaltStack官方文档原版PDF SaltStack官方文档原版PDF 官方原版,适用于SaltSatck学习的朋友 立即下载

使用saltstack部署nginx


搭建环境:

1.服务器列表:

salt-master:   192.168.42.131
salt-minion:   192.168.42.128(minion-192.168.42.128)
               192.168.42.130(minion-192.168.42.130)

2.环境:
(1)服务器之间互相可以通信(火墙关闭或者火墙允许通信)
(2)master对minion的主机名和ip做好解析


部署步骤

1.确定整个配置的目录文件结构:

#pcre软件安装
[root@server2 prod]# tree ./pcre/
./pcre/
├── files
│   └── pcre-8.38.tar.gz
└── install.sls

1 directory, 2 files

#nginx操作用户添加
[root@server2 prod]# tree ./user/
./user/
└── www.sls

0 directories, 1 file

#nginx安装
[root@server2 prod]# tree ./nginx/
./nginx/
├── files
│   ├── nginx-1.11.6.tar.gz
│   ├── nginx.conf
│   └── nginx.service
├── install.sls
└── service.sls

1 directory, 5 files

整个思路分为:创建用户、安装基本组件、安装服务、开启服务这几个过程。

1.创建用户

在user目录的www.sls定义了www这个用户:

[root@server2 user]# cat www.sls 
www-user-group:
  group.present:
    - name: www
    - gid: 1100

  user.present:
    - name: www
    - fullname: www
    - shell: /sbin/nologin
    - uid: 1100
    - gid: 1100

2.安装基本组件
这个根据业务系统中所需nginx的模块决定,本例中以pcre为例,如果需要其他的模块可以按照类似的方式进行安装,pcre目录下的install.sls如下所示:

[root@server2 pcre]# pwd
/srv/salt/prod/pcre
[root@server2 pcre]# cat install.sls 
pcre-source-install:
  file.managed:
    - name: /usr/local/src/pcre-8.38.tar.gz
    - source: salt://pcre/files/pcre-8.38.tar.gz
    - user: root
    - group: root
    - mode: 755

  cmd.run:
    - name: cd /usr/local/src && tar xvf pcre-8.38.tar.gz && cd pcre-8.38 && ./configure --prefix=/usr/local/pcre && make && make install
    - unless: test -d /usr/local/pcre
    - require:
      - file: pcre-source-install

在/srv/salt/prod/pcre/files目录下包含pcre的源码安装包:

[root@server2 files]# pwd
/srv/salt/prod/pcre/files
[root@server2 files]# ll
total 2008
-rw-r--r-- 1 root root 2053336 Dec  6 20:58 pcre-8.38.tar.gz

3.pcre的安装是在nginx之前进行的,我们把pcre的安装包含在nginx的安装过程中,nginx的安装文件为install.sls:

[root@server2 nginx]# cat install.sls 
#包含用户创建以及pcre安装
include:
  - pcre.install
  - user.www

nginx-source-install:
  file.managed:
    - name: /usr/local/src/nginx-1.11.6.tar.gz
    - source: salt://nginx/files/nginx-1.11.6.tar.gz
    - user: root
    - group: root
    - mode: 0644

  cmd.run:
    - name: cd /usr/local/src && tar xvf nginx-1.11.6.tar.gz && cd nginx-1.11.6 && ./configure --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-http_dav_module --with-pcre=/usr/local/src/pcre-8.38 && make && make install && chown www.www /usr/local/nginx -R
    - unless: test -d /usr/local/nginx
    - require:
      - user: www-user-group
      - file: nginx-source-install
      - cmd: pcre-source-install 

在nginx的install.sls文件中完成了nginx源码包的部署和配置,编译安装操作。

接下来需要设置nginx的配置文件以及启动nginx服务,尤其是在centos7
中,服务启动关闭的管理软件换为systemctl,需要编写相关service文件,以nginx为例,名称设置为nginx.service:

[root@server2 files]# cat nginx.service 
[Unit]  
Description=nginx service  
After=network.target

[Service]  
Type=forking   
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload 
ExecStop=/usr/local/nginx/sbin/nginx -s quit  
PrivateTmp=true  

[Install]  
WantedBy=multi-user.target  

4.nginx配置文件的部署和服务的开启,该内容在nginx目录的service.sls文件中:

[root@server2 nginx]# cat service.sls 
#包含nginx的安装设置
include:
  - nginx.install

nginx-init:
  file.managed:
    - name: /usr/lib/systemd/system/nginx.service
    - source: salt://nginx/files/nginx.service
    - user: root
    - group: root
    - mode: 754

/usr/local/nginx/conf/nginx.conf:
  file.managed:
    - name: /usr/local/nginx/conf/nginx.conf
    - source: salt://nginx/files/nginx.conf
    - user: www
    - group: www
    - mode: 644


nginx.service:
  cmd.run:
    - name: systemctl start nginx.service
    - require:
      - file: nginx-init
    - watch:
      - file: /usr/local/nginx/conf/nginx.conf

(1)在该文件的起始部分首先包含了nginx的安装:nginx.install;
(2)设置了nginx服务的启动脚本文件;
(3)设置nginx配置文件(这里可以使用salt的模板进行设置);
(4)启动nginx服务;


执行部署操作

部署操作非常的简单,在/srv/salt/prod/top.sls文件中添加nginx.service,然后进行部署:

[root@server2 prod]# salt '*' state.highstate 
minion-192.168.42.130:
----------
          ID: pcre-source-install
    Function: file.managed
        Name: /usr/local/src/pcre-8.38.tar.gz
      Result: True
     Comment: File /usr/local/src/pcre-8.38.tar.gz is in the correct state
     Started: 21:11:34.125059
    Duration: 145.506 ms
     Changes:   
----------
          ID: pcre-source-install
    Function: cmd.run
        Name: cd /usr/local/src && tar xvf pcre-8.38.tar.gz && cd pcre-8.38 && ./configure --prefix=/usr/local/pcre && make && make install
      Result: True
     Comment: unless execution succeeded
     Started: 21:11:34.272172
    Duration: 9.418 ms
     Changes:   
----------
          ID: www-user-group
    Function: group.present
        Name: www
      Result: True
     Comment: Group www is present and up to date
     Started: 21:11:34.282685
    Duration: 2.538 ms
     Changes:   
----------
          ID: www-user-group
    Function: user.present
        Name: www
      Result: True
     Comment: User www is present and up to date
     Started: 21:11:34.286017
    Duration: 31.402 ms
     Changes:   
----------
          ID: nginx-source-install
    Function: file.managed
        Name: /usr/local/src/nginx-1.11.6.tar.gz
      Result: True
     Comment: File /usr/local/src/nginx-1.11.6.tar.gz is in the correct state
     Started: 21:11:34.317595
    Duration: 72.0 ms
     Changes:   
----------
          ID: nginx-source-install
    Function: cmd.run
        Name: cd /usr/local/src && tar xvf nginx-1.11.6.tar.gz && cd nginx-1.11.6 && ./configure --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-http_dav_module --with-pcre=/usr/local/src/pcre-8.38 && make && make install && chown www.www /usr/local/nginx -R
      Result: True
     Comment: unless execution succeeded
     Started: 21:11:34.390782
    Duration: 9.355 ms
     Changes:   
----------
          ID: nginx-init
    Function: file.managed
        Name: /usr/lib/systemd/system/nginx.service
      Result: True
     Comment: File /usr/lib/systemd/system/nginx.service is in the correct state
     Started: 21:11:34.400385
    Duration: 55.461 ms
     Changes:   
----------
          ID: /usr/local/nginx/conf/nginx.conf
    Function: file.managed
      Result: True
     Comment: File /usr/local/nginx/conf/nginx.conf is in the correct state
     Started: 21:11:34.455996
    Duration: 48.59 ms
     Changes:   
----------
          ID: nginx.service
    Function: cmd.run
        Name: systemctl start nginx.service
      Result: True
     Comment: Command "systemctl start nginx.service" run
     Started: 21:11:34.505367
    Duration: 15.254 ms
     Changes:   
              ----------
              pid:
                  22253
              retcode:
                  0
              stderr:
              stdout:

Summary for minion-192.168.42.130
------------
Succeeded: 9 (changed=1)
Failed:    0
------------
Total states run:     9
Total run time: 389.524 ms
minion-192.168.42.128:
----------
          ID: pcre-source-install
    Function: file.managed
        Name: /usr/local/src/pcre-8.38.tar.gz
      Result: True
     Comment: File /usr/local/src/pcre-8.38.tar.gz is in the correct state
     Started: 21:11:34.153260
    Duration: 135.174 ms
     Changes:   
----------
          ID: pcre-source-install
    Function: cmd.run
        Name: cd /usr/local/src && tar xvf pcre-8.38.tar.gz && cd pcre-8.38 && ./configure --prefix=/usr/local/pcre && make && make install
      Result: True
     Comment: unless execution succeeded
     Started: 21:11:34.289558
    Duration: 9.864 ms
     Changes:   
----------
          ID: www-user-group
    Function: group.present
        Name: www
      Result: True
     Comment: Group www is present and up to date
     Started: 21:11:34.300283
    Duration: 3.019 ms
     Changes:   
----------
          ID: www-user-group
    Function: user.present
        Name: www
      Result: True
     Comment: User www is present and up to date
     Started: 21:11:34.303914
    Duration: 29.652 ms
     Changes:   
----------
          ID: nginx-source-install
    Function: file.managed
        Name: /usr/local/src/nginx-1.11.6.tar.gz
      Result: True
     Comment: File /usr/local/src/nginx-1.11.6.tar.gz is in the correct state
     Started: 21:11:34.334260
    Duration: 75.035 ms
     Changes:   
----------
          ID: nginx-source-install
    Function: cmd.run
        Name: cd /usr/local/src && tar xvf nginx-1.11.6.tar.gz && cd nginx-1.11.6 && ./configure --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-http_dav_module --with-pcre=/usr/local/src/pcre-8.38 && make && make install && chown www.www /usr/local/nginx -R
      Result: True
     Comment: unless execution succeeded
     Started: 21:11:34.409912
    Duration: 8.683 ms
     Changes:   
----------
          ID: nginx-init
    Function: file.managed
        Name: /usr/lib/systemd/system/nginx.service
      Result: True
     Comment: File /usr/lib/systemd/system/nginx.service is in the correct state
     Started: 21:11:34.418893
    Duration: 50.052 ms
     Changes:   
----------
          ID: /usr/local/nginx/conf/nginx.conf
    Function: file.managed
      Result: True
     Comment: File /usr/local/nginx/conf/nginx.conf is in the correct state
     Started: 21:11:34.469076
    Duration: 47.592 ms
     Changes:   
----------
          ID: nginx.service
    Function: cmd.run
        Name: systemctl start nginx.service
      Result: True
     Comment: Command "systemctl start nginx.service" run
     Started: 21:11:34.517608
    Duration: 21.014 ms
     Changes:   
              ----------
              pid:
                  23156
              retcode:
                  0
              stderr:
              stdout:

Summary for minion-192.168.42.128
------------
Succeeded: 9 (changed=1)
Failed:    0
------------
Total states run:     9
Total run time: 380.085 ms

在对应的节点192.168.42.128上查看nginx是否开启:

[root@server1 ~]# systemctl status nginx.service 
● nginx.service - nginx service
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2016-12-07 14:42:32 CST; 6h ago
  Process: 19352 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 19353 (nginx)
   Memory: 1.4M
   CGroup: /system.slice/nginx.service
           ├─19353 nginx: master process /usr/local/nginx/sbin/nginx
           └─19354 nginx: worker process

Dec 07 14:42:32 server1.example.com systemd[1]: Starting nginx service...
Dec 07 14:42:32 server1.example.com systemd[1]: Started nginx service.
Dec 07 21:11:34 server1.example.com systemd[1]: Started nginx service.

使用浏览器访问该页面,查看页面能否访问:
这里写图片描述


小结

在个基础上还可以添加php模块,丰富nginx的功能。后续的章节将会进行介绍。

SaltStack中文手册第1部分-Salt Installation-of-2017.7.2 因为SaltStack中文材料比较少,且国内早期的几个Salt社区也不是很活跃了,社区中的一些材料太旧了。所以着手依据当前最新的2017.7版本的Salt官方英文材料,翻译出一份中文手册。这是第一部分:Salt 安装。后续会陆续翻译和发布更多的中文材料。 立即下载

相关推荐

浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现

迪杰斯特拉(Dijkstra)算法和A*算法的原理及实现。

Guo_Zhanyu 9597

使用saltstack部署nginx

在server3中需要做同样的步骤 [root@server3 salt]# vim /etc/yum.repos.d/rhel-source.repo [root@server3 salt]# yum install -y salt-minion [root@server3 salt]# cd /etc/salt/ [root@server3 salt]# vim minion 16 m...

Le_Anny的博客 572

利用SPSS实现逻辑回归,树模型,以及广义线性模型

本案例是IBM SPSS数据分析与挖掘实战案例精粹----第九章的学习记录 案例背景:分析出导致急救后迟发性颅脑损伤的主要影响因素,共有201项案例: 分析思路:先使用logistic回归模型进行影响因素筛选,然后利用分类树探索自变量中是否存在交互作用,最后利用广义线性模型过程拟合带交互项的Logistic回归模型 字段:性别,年龄,收缩压,舒张压,血小板,脑挫伤,中线位移,脑肿胀,入院意识,是否手术急救,其余急救措施,是否出现迟发性脑损伤; ...

hepan_defeng的博客 1万+

利用Saltstack自动化运维工具一键部署Apache与Nginx服务

搭建第三方yum仓库: [root@foundation66 Desktop]# ls salt [root@foundation66 Desktop]# mv -r salt /var/www/html/ 网页测试: 排错: 如果网页访问显示403,说明是文件权限问题,注意不仅仅需要更改目录权限还需要更改文件权限!!! 在server1结点上 1.配置yum源 [root@server1 ...

lilygg的博客 296

思科路由器、交换机组网实验报告

通过思科模拟器搭建路由交换网络

ghj528的博客 1334

安鸾渗透测试平台-CTF系列-bash

工具Xshell 公网VPS接收反弹shell Xshell新手的下载及安装教程(超详细)_新手程序员攀爬之路的博客-优快云博客_xshell使用教程 Xshell连接后 #!/bin/bash cat ${0} while : do echo "$" read input output=`$input` 显示了一个文件,不过咋做呢?这里可能考察的是linux的语法 方法 输入bash 获得shell cat ${0} while : do .

AAAAAAAAAAAA66的博客 2689

saltstack源码安装nginx和负载均衡

nginx源码安装部署的步骤分为 1.依赖性的安装 2.源码安装nginx 3.启动nginx 环境 server5:salt-master 172.25.24.5 server7:salt-minion 172.25.24.7 需要打开master端配置文件的模块 1.依赖性的安装 [root@server5 nginx]# pwd /sr...

a939029674的博客 571

YOLOv8【第九章:模型部署篇·第2节】一文搞懂,模型剪枝与压缩技术!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1523

saltstack:源码编译安装nginx,一键部署负载均衡

源码编译安装nginx 1、在master端 mkdir /srv/salt/nginx/files -p 将nginx的源码包放入files目录 编写源码编译安装脚本: cd /srv/salt/nginx vim install.sls nginx-install: # 安装源码编译nginx所需要的依赖 pkg.installed: - pkgs: - gcc ...

gd0306的博客 473

Open3D 实现CSF布料模拟算法【2025最新版】

CSF布料模拟算法在open3d模块下的实现,博客长期更新,本文最近更新时间为:2025年1月16日。。

点云侠的博客 5744

PCL学习笔记(四)——点云曲面重建

文章目录一、凸包算法二、 单纯的点云数据固然很好,但仅仅是点的话仍是不够的,因为这不利于我们后续对实体对象的渲染与各种应用,如计算实体的表面积、体积等等,所以这就需要我们对实体进行点云的曲面重建。 一、凸包算法 在计算机图形学中,凸包是指在任意维空间中包含某一有限点集P的最小凸集,它由凸包顶点构成,在二维上其表现形式为一个凸多边形,而在三维上则表现为一个凸多面体。在二维层面上来讲,最常用的凸包算法有Graham扫描法和Jarvis卷包裹法,但前者并不适用于三维层面,后者倒是可以扩展到三维。除此之外,在

dayuhaitang1的博客 6912

运维实操——saltstack自动化运维部署httpd和ngnix

saltstack自动化运维部署与管理1、介绍2、安装与配置3、远程执行4、sls文件 1、介绍 saltstack是一个配置管理系统,能够维护预定义状态的远程节点,saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据, saltstack是运维人员提高工作效率、规范业务配置与操作的利器。 Salt的核心功能有: (1)使命令发送到远程系统是并行的而不是串行的 (2)使用安全加密的协议 (3)使用最小最快的网络载荷 (4)提供简单的编程接口 Salt同样引入了更加细致化的领域控制系

qq_40764171的博客 417

到底什么是指令集?什么是微架构?他们是什么关系?

指令集、处理器架构、芯片厂商、ARM、x86,其间关系还在迷糊吗?一文迅速理清!!

车载系统攻城狮 7811

Saltstack批量编译部署nginx(多模块)

最近一直在研究saltstack的同步文件和批量执行命令,随着架构的变大,批量部署的需求也变得明显起来了,我需要用一条命令就部署好nginx和tomcat,并且符合我所有的环境需求,可以直接投入生产环境使用,这就需要用到saltstack的批量安装部署功能了。这篇文章主要介绍nginx的批量部署,下篇讲解tomcat多实例的批量部署方法。 环境介绍: Centos 6.5

tuliper5的博客 786

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

slatstack自动化源码安装nginx

vim install.sls nginx-install: pkg.installed: - pkgs: - pcre-devel - openssl-devel - gcc file.managed: - name: /mnt/nginx-1.14.0.tar.gz - source: salt://nginx/...

dandan 238

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

slatstack部署nginx一键推送

一、SaltStack基本介绍: (一)SaltStack作用于仆从和主拓扑。SaltStack与特定的命令结合使用可以在一个或多个下属执行。实现这一点,此时Salt Master可以发出命令,如salt '*' cmd.run 'ls -l /'。 除了运行远程命令,SaltStack允许管理员使用“grain”。 grain可以在SaltStack仆从运行远程查询,因此收集仆从的状态信息并...

qq_42711214的博客 341

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

saltstack搭建lnmp并直接上线(rpm)

saltstack搭建lnmp架构,并且同时开启服务,直接上线。 php与nginx的安装是给定rpm方式

mon_star的博客 958

Linux的企业-saltstack源码编译安装lnmp

一.配置环境redhat 6.5 master:server1(172.25.50.1/24) minion:server2(172.25.50.2/24) selinux=disabled iptables=offmaster :/etc/salt/masterminion:/etc/salt/minion二.总体架构/srv/salt/三.pkgs依赖性包的配置/srv/...

weixin_34174132的博客 126

自动化运维saltstack安装部署及用haproxy实现负载均衡

一、saltstack的基础知识 1、saltstack的概念 saltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。通过部署SaltStack,我们可以在成千万台服务器上做...

qq_42241932的博客 343

saltstack自动化运维一键部署haproxy负载均衡

11

weixin_41789003的博客 414

SaltStack基础命令

一、实验环境 一、Grains模板 官网文档链接:https://docs.saltstack.cn/topics/tutorials/states_pt3.html#using-grains-in-sls-modules 1、基础命令 [root@server1 ~]# salt '*' grains.item ipv4 [root@server1 ~]# salt ...

Wielun 460

【云平台管理】SaltStack部署Nginx高可用

在控制主机上再次访问VIP地址,后端一个Nginx节点正常提供服务,高可用结构正常。查看Haproxy的状态,显示minion已经宕机。

weixin_73059729的博客 897

【云平台管理】SaltStack批量部署并配置Nginx

上面的配置文件实际上与一台服务器直接安装Nginx的过程是相同的,首先是安装包,然后是对配置文件进行修改,最后是启动服务。定义state的入口top.sls文件,注意和pillar的入口文件名字一样。,首先创建一个nginx目录,因为上面定义了Nginx配置文件的源路径。在执行结果中可以很明显的看出,被控主机的Nginx的根目录被配置成功。使用jinja模板定义Nginx配置文件。

weixin_73059729的博客 979
上一篇: 4.saltstack使用指南:使用saltstack部署zabbix
下一篇: 1.django学习:安装django并且部署一个应用
linux_player_c
博客等级 码龄13年 214粉丝 134原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值