saltstack部署nginx进阶
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,上一篇其实对通过saltstack部署nginx做了演示,但是可能与我目前的环境还是有点出入,然后sls的结构也不太清晰,所以就又做了改变和优化,叫做进阶可能有点噱头了,不过还是记录如下:nginx安
千家信息网最后更新 2026年11月04日saltstack部署nginx进阶
上一篇其实对通过saltstack部署nginx做了演示,但是可能与我目前的环境还是有点出入,然后sls的结构也不太清晰,所以就又做了改变和优化,叫做进阶可能有点噱头了,不过还是记录如下:
nginx安装目标:
1)安装必要依赖
2)准备pcre安装包
2)源码安装pcre
3)准备nginx安装包
4)源码安装nginx
nginx配置:
1)拷贝nginx.conf配置文件
2)拷贝启停脚本
3)添加系统服务并设置开机启动
4)拷贝日志切割脚本
5)添加定时任务
salt master上的目录结构如下:
[root@salt-master base]# tree /srv/salt/base//srv/salt/base/├── cron│ ├── files│ │ └── nginx_cut_log.sh│ └── nginx.sls├── nginx│ ├── files│ │ ├── nginx│ │ ├── nginx-1.6.3.tar.gz│ │ └── nginx.conf│ ├── install.sls│ └── service.sls├── packages│ └── install.sls├── pcre│ ├── files│ │ └── pcre-8.37.tar.gz│ └── install.sls└── user └── nginx.sls8 directories, 11 files
安装必要软件包:
[root@salt-master base]# cat packages/install.sls yum_pcre_packages: pkg.installed: - names: - gcc - gcc-c++ - autoconf - automake - zlib - zlib-devel - make - openssl - openssl-devel - libpng - libpng-devel - freetype - freetype-devel - libxml2 - libxml2-devel - glibc - glibc-devel - glib2 - glib-devel - bzip2 - bzip2-devel - ncurses - ncurses-devel - curl - cmake
编译安装pcre:
[root@salt-master base]# cat pcre/install.sls include: - packages.installpcre-source-install: file.managed: - source: salt://pcre/files/pcre-8.37.tar.gz - name: /opt/tools/pcre-8.37.tar.gz - user: root - group: root - mode: 755 - makedirs: True - dir_mode: 644 cmd.run: - name: cd /opt/tools/ && tar -zxf pcre-8.37.tar.gz && cd pcre-8.37 && ./configure --prefix=/usr/local/pcre && make && make install - unless: test -d /usr/local/pcre - require: - file: pcre-source-install
创建nginx用户和组:
[root@salt-master base]# cat user/nginx.sls nginx-user-group: group.present: - name: nginx - gid: 601 user.present: - name: nginx - fullname: nginx - shell: /sbin/nologin - uid: 601 - gid: 601
编译安装nginx:
[root@salt-master base]# cat nginx/install.sls include: - pcre.install - user.nginxnginx-source-install: file.managed: - source: salt://nginx/files/nginx-1.6.3.tar.gz - name: /opt/tools/nginx-1.6.3.tar.gz - user: root - group: root - mode: 755 cmd.run: - name: cd /opt/tools/ && tar -zxf nginx-1.6.3.tar.gz && mkdir -p /usr/local/nginx/tmp/{client,proxy,fcgi} && cd nginx-1.6.3 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/tmp/client/ --http-proxy-temp-path=/usr/local/nginx/tmp/proxy/ --http-fastcgi-temp-path=/usr/local/nginx/tmp/fcgi/ --with-poll_module --with-file-aio --with-http_realip_module --with-http_addition_module --with-http_addition_module --with-http_random_index_module --with-http_stub_status_module --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/nginx/scgi_temp --with-pcre=/opt/tools/pcre-8.37 && make && make install && chown -R nginx:nginx /usr/local/nginx/ - unless: test -e /usr/local/nginx/sbin/nginx - require: - file: nginx-source-install - cmd: pcre-source-install添加定时任务:
[root@salt-master base]# cat cron/nginx.sls /opt/tools/scripts/: file.directory: - user: root - group: root - mode: 644 - makedirs: Truenginx-crond-job: file.managed: - name: /opt/tools/scripts/nginx_cut_log.sh - source: salt://cron/files/nginx_cut_log.sh - user: root - group: root - mode: 755/bin/bash /opt/tools/scripts/nginx_cut_log.sh >/dev/null 2>&1: cron.present: - identifier: SUPERCRON - user: root - minute: 0 - hour: 0
启动nginx并设置开机启动:
[root@salt-master base]# cat nginx/service.sls include: - nginx.install - cron.nginxnginx-init: file.managed: - name: /etc/init.d/nginx - source: salt://nginx/files/nginx - user: root - group: root - mode: 755 cmd.run: - name: chkconfig --add nginx - unless: chkconfig --list|grep nginx - require: - file: nginx-init/usr/local/nginx/conf/nginx.conf: file.managed: - source: salt://nginx/files/nginx.conf - user: nginx - group: nginx - mode: 644nginx-service: file.directory: - name: /usr/local/nginx/conf.d - require: - cmd: nginx-source-install service.running: - name: nginx - enable: True - reload: True - require: - cmd: nginx-init - watch: - file: /usr/local/nginx/conf/nginx.conf
部署命令:[root@salt-master base]# salt 'salt-minion02.contoso.com' state.sls nginx.service
部署结果:
[root@salt-minion02 logs]# ll /usr/local/pcre/total 16drwxr-xr-x 2 root root 4096 Jun 8 10:29 bindrwxr-xr-x 2 root root 4096 Jun 8 10:29 includedrwxr-xr-x 3 root root 4096 Jun 8 10:29 libdrwxr-xr-x 4 root root 4096 Jun 8 10:29 share[root@salt-minion02 logs]# id nginxuid=601(nginx) gid=601(nginx) groups=601(nginx)[root@salt-minion02 logs]# ll /usr/local/nginx/total 32drwxr-xr-x 2 nginx nginx 4096 Jun 8 10:30 confdrwxr-xr-x 2 root root 4096 Jun 8 10:30 conf.ddrwxr-xr-x 2 nginx nginx 4096 Jun 8 10:30 htmldrwxr-xr-x 2 nginx nginx 4096 Jun 8 10:30 logsdrwxr-xr-x 2 nginx nginx 4096 Jun 8 10:30 sbindrwx------ 2 nginx root 4096 Jun 8 10:30 scgi_tempdrwxr-xr-x 5 nginx nginx 4096 Jun 8 10:29 tmpdrwx------ 2 nginx root 4096 Jun 8 10:30 uwsgi_temp[root@salt-minion02 logs]# /usr/local/nginx/sbin/nginx -Vnginx version: nginx/1.6.3built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) TLS SNI support enabledconfigure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/tmp/client/ --http-proxy-temp-path=/usr/local/nginx/tmp/proxy/ --http-fastcgi-temp-path=/usr/local/nginx/tmp/fcgi/ --with-poll_module --with-file-aio --with-http_realip_module --with-http_addition_module --with-http_addition_module --with-http_random_index_module --with-http_stub_status_module --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/nginx/scgi_temp --with-pcre=/opt/tools/pcre-8.37[root@salt-minion02 logs]# /etc/init.d/nginx statusnginx (pid 11422 11421 11420 11419 11416) is running...[root@salt-minion02 logs]# chkconfig --list|grep nginxnginx 0:off1:off2:on3:on4:on5:on6:off[root@salt-minion02 logs]# crontab -l0 * * * * /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1# Lines below here are managed by Salt, do not edit# SALT_CRON_IDENTIFIER:SUPERCRON0 0 * * * /bin/bash /opt/tools/scripts/nginx_cut_log.sh >/dev/null 2>&1[root@salt-minion02 logs]# ll /opt/tools/scripts/nginx_cut_log.sh -rwxr-xr-x 1 root root 1100 Jun 8 10:30 /opt/tools/scripts/nginx_cut_log.sh
拷贝
必要
任务
源码
结构
脚本
还是
准备
编译
配置
进阶
命令
噱头
文件
日志
环境
用户
目录
目标
系统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网是第几次科技革命的成果
互联网科技巨头监管
互联网科技保险
互联网金融 科技
宜安科技 互联网金融
互联网科技logo设计
互联网科技公司招聘
云创客互联网科技公司
互联网科技教育视频
河南猎农互联网科技有限公司
乌苏新华互联网科技做什么的
东莞新华互联网科技学校
小米互联网科技园入驻
扫呗互联网科技有限公司
吉林省码上互联网科技电话
互联网时代科技型公司的机会
张家口科技产业互联网平台
保山互联网科技靠谱吗
科技互联网专业工作会议发言稿
优雇互联网科技有限公司
科技互联网
互联网与科技
互联网科技活动banner
金融科技还是互联网
佳云科技和互联网广告
互联网对科技的发展
中和天地互联网科技有限公司
抖集互联网科技技术咨询
互联网科技新闻
银川新华互联网科技学校是国营吗