saltstack 배치 nginx 진급
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.sls
8 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.install
pcre-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.nginx
nginx-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: True
nginx-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.nginx
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
배치 명령: [root@salt-master base]# salt 'salt-minion02.contoso.com' state.sls nginx.service
배치 결과:
[root@salt-minion02 logs]# ll /usr/local/pcre/
total 16
drwxr-xr-x 2 root root 4096 Jun 8 10:29 bin
drwxr-xr-x 2 root root 4096 Jun 8 10:29 include
drwxr-xr-x 3 root root 4096 Jun 8 10:29 lib
drwxr-xr-x 4 root root 4096 Jun 8 10:29 share
[root@salt-minion02 logs]# id nginx
uid=601(nginx) gid=601(nginx) groups=601(nginx)
[root@salt-minion02 logs]# ll /usr/local/nginx/
total 32
drwxr-xr-x 2 nginx nginx 4096 Jun 8 10:30 conf
drwxr-xr-x 2 root root 4096 Jun 8 10:30 conf.d
drwxr-xr-x 2 nginx nginx 4096 Jun 8 10:30 html
drwxr-xr-x 2 nginx nginx 4096 Jun 8 10:30 logs
drwxr-xr-x 2 nginx nginx 4096 Jun 8 10:30 sbin
drwx------ 2 nginx root 4096 Jun 8 10:30 scgi_temp
drwxr-xr-x 5 nginx nginx 4096 Jun 8 10:29 tmp
drwx------ 2 nginx root 4096 Jun 8 10:30 uwsgi_temp
[root@salt-minion02 logs]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.6.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
TLS SNI support enabled
configure 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 status
nginx (pid 11422 11421 11420 11419 11416) is running...
[root@salt-minion02 logs]# chkconfig --list|grep nginx
nginx 0:off1:off2:on3:on4:on5:on6:off
[root@salt-minion02 logs]# crontab -l
0 * * * * /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:SUPERCRON
0 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.