saltstack部署nginx

简介:

1、前期规划准备

nginx安装准备:

  1)安装必要依赖

  2)准备pcre安装包

  2)源码安装pcre

  3)准备nginx安装包

  4)源码安装nginx

nginx配置:

  1)拷贝nginx.conf配置文件

  2)拷贝启停脚本

  3)添加系统服务并设置开机启动

2、部署过程

1)准备安装包

1
2
3
4
5
6
7
[root@salt-master base] # cd /srv/salt/base
[root@salt-master base] # mkdir -p pcre/files
[root@salt-master base] # mkdir -p nginx/files
[root@salt-master base] # cd /srv/salt/base/pcre/files
[root@salt-master base] # wget https://ftp.pcre.org/pub/pcre/pcre-8.37.tar.gz
[root@salt-master base] # cd /srv/salt/base/nginx/files
[root@salt-master base] # wget http://nginx.org/download/nginx-1.6.3.tar.gz

2)编写sls文件

1
2
3
4
5
[root@salt-master base] # cd nginx/
[root@salt-master nginx] # vi install.sls 
[root@salt-master nginx] # vi service.sls
[root@salt-master nginx] # cd ../pcre/
[root@salt-master pcre] # vi install.sls

3)测试sls

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
[root@salt-master base] # salt 'salt-minion01.contoso.com' state.sls nginx.service test=True
salt-minion01.contoso.com:
----------
           ID: pcre- source - install
     Function: pkg.installed
         Name: zlib-devel
       Result: None
      Comment: The following packages are  set  to be installed /updated : zlib-devel
      Started: 14:41:07.540210
     Duration: 18297.782 ms
      Changes:   
----------
           ID: pcre- source - install
     Function: pkg.installed
         Name: glibc-devel
       Result: True
      Comment: Package glibc-devel is already installed.
      Started: 14:41:25.838187
     Duration: 0.536 ms
      Changes:   
----------
           ID: pcre- source - install
     Function: pkg.installed
         Name: gcc
       Result: True
      Comment: Package gcc is already installed.
      Started: 14:41:25.838783
     Duration: 0.294 ms
      Changes:   
----------
           ID: pcre- source - install
     Function: pkg.installed
         Name: cmake
       Result: True
      Comment: Package cmake is already installed.
      Started: 14:41:25.839133
     Duration: 0.241 ms
      Changes:   
----------
           ID: pcre- source - install
     Function: pkg.installed
         Name: glibc
       Result: True
      Comment: Package glibc is already installed.
      Started: 14:41:25.839432
     Duration: 0.241 ms
      Changes:   
----------
           ID: pcre- source - install
     Function: pkg.installed
         Name: zlib
       Result: True
      Comment: Package zlib is already installed.
      Started: 14:41:25.839727
     Duration: 0.305 ms
      Changes:   
----------
           ID: pcre- source - install
     Function: pkg.installed
         Name: autoconf
       Result: None
      Comment: The following packages are  set  to be installed /updated : autoconf
      Started: 14:41:25.840087
     Duration: 0.281 ms
      Changes:   
----------
           ID: pcre- source - install
     Function: pkg.installed
         Name: gcc-c++
       Result: True
      Comment: Package gcc-c++ is already installed.
      Started: 14:41:25.840422
     Duration: 0.239 ms
      Changes:   
----------
           ID: pcre- source - install
     Function: pkg.installed
         Name:  make
       Result: True
      Comment: Package  make  is already installed.
      Started: 14:41:25.840709
     Duration: 0.282 ms
      Changes:   
----------
           ID: pcre- source - install
     Function:  file .managed
         Name:  /opt/tools/pcre-8 .37. tar .gz
       Result: None
      Comment: The  file  /opt/tools/pcre-8 .37. tar .gz is  set  to be changed
      Started: 14:41:25.888753
     Duration: 17.582 ms
      Changes:   
               ----------
               newfile:
                   /opt/tools/pcre-8 .37. tar .gz
----------
           ID: pcre- source - install
     Function: 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
       Result: None
      Comment: Command  "cd /opt/tools/ && tar -zxf pcre-8.37.tar.gz && cd pcre-8.37 && ./configure --prefix=/usr/local/pcre && make && make install"  would have been executed
      Started: 14:41:25.910768
     Duration: 10.909 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: pkg.installed
         Name: zlib-devel
       Result: None
      Comment: The following packages are  set  to be installed /updated : zlib-devel
      Started: 14:41:25.922254
     Duration: 2.483 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: pkg.installed
         Name: gcc
       Result: True
      Comment: Package gcc is already installed.
      Started: 14:41:25.925010
     Duration: 0.926 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: pkg.installed
         Name:  make
       Result: True
      Comment: Package  make  is already installed.
      Started: 14:41:25.926183
     Duration: 0.975 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: pkg.installed
         Name: zlib
       Result: True
      Comment: Package zlib is already installed.
      Started: 14:41:25.927407
     Duration: 1.276 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: pkg.installed
         Name: openssl
       Result: True
      Comment: Package openssl is already installed.
      Started: 14:41:25.929287
     Duration: 1.331 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: pkg.installed
         Name: openssl-devel
       Result: None
      Comment: The following packages are  set  to be installed /updated : openssl-devel
      Started: 14:41:25.930830
     Duration: 1.027 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: pkg.installed
         Name: automake
       Result: None
      Comment: The following packages are  set  to be installed /updated : automake
      Started: 14:41:25.931943
     Duration: 0.392 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: pkg.installed
         Name: autoconf
       Result: None
      Comment: The following packages are  set  to be installed /updated : autoconf
      Started: 14:41:25.932402
     Duration: 0.385 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: pkg.installed
         Name: gcc-c++
       Result: True
      Comment: Package gcc-c++ is already installed.
      Started: 14:41:25.932851
     Duration: 0.33 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: group.present
         Name: nginx
       Result: None
      Comment: The following group attributes are  set  to be changed:
               gid: 601
      Started: 14:41:25.934673
     Duration: 0.425 ms
      Changes:   
----------
           ID: nginx- source - install
     Function: user.present
         Name: nginx
       Result: None
      Comment: The following user attributes are  set  to be changed:
               homeDoesNotExist:  /home/nginx
               gid: 601
               fullname: nginx
               uid: 601
      Started: 14:41:25.943129
     Duration: 10.523 ms
      Changes:   
----------
           ID: nginx- source - install
     Function:  file .managed
         Name:  /opt/tools/nginx-1 .6.3. tar .gz
       Result: None
      Comment: The  file  /opt/tools/nginx-1 .6.3. tar .gz is  set  to be changed
      Started: 14:41:25.953761
     Duration: 3.461 ms
      Changes:   
               ----------
               newfile:
                   /opt/tools/nginx-1 .6.3. tar .gz
----------
           ID: nginx- source - install
     Function: 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/
       Result: None
      Comment: Command  "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/"  would have been executed
      Started: 14:41:25.958142
     Duration: 4.665 ms
      Changes:   
----------
           ID: nginx-init
     Function:  file .managed
         Name:  /etc/init .d /nginx
       Result: None
      Comment: The  file  /etc/init .d /nginx  is  set  to be changed
      Started: 14:41:25.963238
     Duration: 3.005 ms
      Changes:   
               ----------
               newfile:
                   /etc/init .d /nginx
----------
           ID: nginx-init
     Function: cmd.run
         Name: chkconfig --add nginx
       Result: None
      Comment: Command  "chkconfig --add nginx"  would have been executed
      Started: 14:41:25.966786
     Duration: 293.959 ms
      Changes:   
----------
           ID:  /usr/local/nginx/conf/nginx .conf
     Function:  file .managed
       Result: None
      Comment: The  file  /usr/local/nginx/conf/nginx .conf is  set  to be changed
      Started: 14:41:26.261344
     Duration: 2.984 ms
      Changes:   
               ----------
               newfile:
                   /usr/local/nginx/conf/nginx .conf
----------
           ID: nginx-service
     Function:  file .directory
         Name:  /usr/local/nginx/conf .d
       Result: None
      Comment: The following files will be changed:
               /usr/local/nginx/conf .d: directory - new
      Started: 14:41:26.264670
     Duration: 0.371 ms
      Changes:   
----------
           ID: nginx-service
     Function: service.running
         Name: nginx
       Result: None
      Comment: Service is  set  to be started
      Started: 14:41:26.286912
     Duration: 53.579 ms
      Changes:   
Summary
-------------
Succeeded: 29 (unchanged=17, changed=4)
Failed:     0
-------------
Total states run:     29

4)正式部署

1
[root@salt-master base] # salt 'salt-minion01.contoso.com' state.sls nginx.service

5)sls代码

目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@salt-master salt] # tree /srv/salt/base/
/srv/salt/base/
├── nginx
│   ├── files
│   │   ├── nginx
│   │   ├── nginx-1.6.3. tar .gz
│   │   └── nginx.conf
│   ├──  install .sls
│   └── service.sls
└── pcre
     ├── files
     │   └── pcre-8.37. tar .gz
     └──  install .sls
4 directories, 7 files

pcre install.sls代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@salt-master base] # cat pcre/install.sls 
pcre- source - install :
   pkg.installed:
     - names:
       - gcc
       - gcc-c++
       - autoconf
       - zlib
       - zlib-devel
       - glibc
       - glibc-devel
       make
       - cmake
   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 install.sls代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@salt-master base] # cat nginx/install.sls 
include:
   - pcre. install
nginx- source - install :
   pkg.installed:
     - names:
       - gcc
       - gcc-c++
       - autoconf
       - automake
       - zlib
       - zlib-devel
       make
       - openssl
       - openssl-devel
   group.present:
     - name: nginx
     - gid: 601
   user.present:
     - name: nginx
     - fullname: nginx
     - shell:  /sbin/nologin
     - uid: 601
     - gid: 601
   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

nginx service.sls代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@salt-master base] # cat nginx/service.sls 
include:
   - nginx. install
nginx-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: 644
nginx-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

3、部署结果验收

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@salt-minion01 ~] # service nginx status
nginx (pid 11406 11405 11404 11403 11400) is running...
[root@salt-minion01 ~] # ps -ef|grep nginx
root      11494      1  0 14:22 ?        00:00:00 nginx: master process  /usr/local/nginx/sbin/nginx  -c  /usr/local/nginx/conf/nginx .conf
nginx     11496  11494  0 14:22 ?        00:00:00 nginx: worker process                                          
nginx     11497  11494  0 14:22 ?        00:00:00 nginx: worker process                                          
nginx     11498  11494  0 14:22 ?        00:00:00 nginx: worker process                                          
nginx     11499  11494  0 14:22 ?        00:00:00 nginx: worker process                                          
root      11503   1049  0 14:22 pts /0     00:00:00  grep  nginx
[root@salt-minion01 ~] # chkconfig --list|grep nginx
nginx          0:off1:off2:on3:on4:on5:on6:off
[root@salt-minion01 ~] # service nginx check
Checking config  file : nginx: the configuration  file  /usr/local/nginx/conf/nginx .conf syntax is ok
nginx: configuration  file  /usr/local/nginx/conf/nginx .conf  test  is successful
[root@salt-minion01 ~] # service nginx reload
Reloading nginx: [  OK  ]
[root@salt-minion01 ~] # service nginx restart
Stopping nginx: [  OK  ]
Starting nginx: [  OK  ]


本文转自 jerry1111111 51CTO博客,原文链接:http://blog.51cto.com/jerry12356/1933090,如需转载请自行联系原作者
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1061 4
|
2月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
150 5
|
10月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
395 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
7月前
|
应用服务中间件 Linux 网络安全
技术指南:如何把docsify项目部署到基于CentOS系统的Nginx中。
总结 与其他部署方法相比,将docsify项目部署到基于CentOS系统的Nginx中比较简单。以上步骤应当帮助你在不花费太多时间的情况下,将你的项目顺利部署到Nginx中。迈出第一步,开始部署你的docsify项目吧!
326 14
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
806 1
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
930 0
|
消息中间件 监控 网络协议
SaltStack安装Apache/Mysql/PHP部署Wordpress
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。 SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信。 master监听4505和4506端口,4505对应的是ZMQ的PUB system,用来发送消息,4506对应的是REP system是来接受
271 0