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,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
Kubernetes 应用服务中间件 nginx
百度搜索:蓝易云【使用Kubernetes部署Nginx应用教程】
现在,你已经成功在Kubernetes集群上部署了Nginx应用。通过访问Service的外部IP地址,你可以访问Nginx服务。
41 4
|
3月前
|
安全 应用服务中间件 nginx
百度搜索:蓝易云【使用Debian、Docker和Nginx部署Web应用教程】
这些是在Debian上使用Docker和Nginx部署Web应用的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
45 0
|
17天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
78 0
|
3月前
|
应用服务中间件 Linux 网络安全
windows+linux环境下nginx部署环境
windows+linux环境下nginx部署环境
|
2天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
17天前
|
应用服务中间件 nginx Windows
windows下Nginx+RTMP部署
windows下Nginx+RTMP部署
15 0
|
1月前
|
应用服务中间件 Linux nginx
web后端-linux-nginx-1.18操作命令和部署
web后端-linux-nginx-1.18操作命令和部署
|
3月前
|
应用服务中间件 Linux 网络安全
【Nginx】Nginx Linux 部署
【1月更文挑战第25天】【Nginx】Nginx Linux 部署
|
3月前
|
TensorFlow 算法框架/工具 数据安全/隐私保护
如何在云服务器使用docker快速部署jupyter web服务器(Nginx+docker+jupyter+tensorflow)
如何在云服务器使用docker快速部署jupyter web服务器(Nginx+docker+jupyter+tensorflow)
77 0
|
3月前
|
Linux 应用服务中间件 nginx
linux下 web 版 vscode本地部署 云端加个nginx同
linux下 web 版 vscode本地部署 云端加个nginx同
20 0