saltstack部署nginx进阶
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,上一篇其实对通过saltstack部署nginx做了演示,但是可能与我目前的环境还是有点出入,然后sls的结构也不太清晰,所以就又做了改变和优化,叫做进阶可能有点噱头了,不过还是记录如下:nginx安
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
数据库sc的意思
ftp上传数据库出现错误
服务器 滑轨
软件开发属于生产性服务业吗
富平软件开发项目管理
软件开发半年总结报告
平顶山软件开发税务筹划该怎么做
目前最大的中文期刊文献数据库
安卓开发网络本地数据库
银行服务器如何存储大数字
淮南手机软件开发哪家好
香港 服务器 dns
选择菜鸟打印服务器失败
计算机网络技术参考模型
网络安全立法主要目的
javaee大数据库
百度文库的服务器
网络技术高速发展
国家网络安全法2章
查询数据库前十行
服务器硬件日志怎么取消
2017超市条形码数据库
从事对日软件开发的日语
泰格收银软件连接不上数据库
互联网科技神人
网络安全走向管理
通州电力监控软件开发
服务器到b7
数据库怎么算及格率
软件开发培训学校导航