saltstack部署nginx进阶
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,上一篇其实对通过saltstack部署nginx做了演示,但是可能与我目前的环境还是有点出入,然后sls的结构也不太清晰,所以就又做了改变和优化,叫做进阶可能有点噱头了,不过还是记录如下:nginx安
千家信息网最后更新 2025年02月06日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安全错误
数据库的锁怎样保障安全
计算机网络技术技术学什么
vm连接远程服务器
服务器在境外的游戏安全
方舟服务器推广pvp
南京定制软件开发处理方法
宁职院网络技术工资
绝地求生未来之翼服务器维护者
网络安全法对举报人
自己搭建本地代码管理服务器
德州服务器管理系统价格
怎么开网络技术公司电话
怎样打安装用友软件数据库
服务器就一块硬盘要做raid吗
人脸识别系统链接不上数据库
奉贤区定制软件开发诚信合作
司法案例数据库指导司法实践
sybase数据库安装
登入cf一直显示服务器人数已满
teamtalk服务器
王者荣耀怎么删服务器
利于后期更改的软件开发模型
海阳市网络安全培训会
下列不属于网络安全策略的组成是
金融行业网络安全法律法规有哪些
用友数据库 备份
网络安全主题班会PPT内容
定制软件开发知识产权
iis7服务器管理安卓
浙江农信软件开发加班么
浅谈你对网络安全的看法