Puppet 에서 ERB 템 플 릿 으로 Nginx 가상 호스트 를 자동 으로 설정 합 니 다.
4221 단어 puppet자동화 운영nginx 모듈자동화 운영 관련 편
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
두 번 째 방식 은 createrepo 를 통 해 자신 만 의 YUM 소스 를 만 드 는 것 이다. 이런 방식 은 더욱 편안 하 다. 우 리 는 nginx 홈 페이지 에서 자신 에 게 맞 는 rpm 가방 을 다운로드 한 다음 에 자신의 YUM 소스 에 추가 할 수 있다. 자동화 운영 요구 가 엄격 한 맞 춤 형 환경 에서 절대 다수의 운영 학생 들 이 이런 방법 을 선택한다.여러분 은 이러한 방식 으로 nginx 를 설치 한 후에 소스 코드 가 Nginx 를 설치 하 는 것 보다 훨씬 편리 하 다 는 것 을 알 게 될 것 입 니 다. 예 를 들 어 nginx 를 실행 하 는 사용자 nginx: nginx, Nginx 의 로그 저장 은 자동 으로 / var / log / nginx 에 저 장 됩 니 다. 작업 디 렉 터 리 는 / etc / nginx 입 니 다. 이 점 은 소스 코드 컴 파일 로 설 치 된 nginx 와 차이 가 매우 큽 니 다. 실험 과정 에서 도 주의 하여 선별 하 시기 바 랍 니 다.
Puppet 의 다른 초급 지식 과 같이 저 는 생략 했 습 니 다. 저 는 파일 내용 을 직접 붙 였 습 니 다. / etc / uppet 의 파일 구 조 는 다음 과 같 습 니 다.
|-- auth.conf
|-- fileserver.conf
|-- manifests
| |-- nodes
| | |-- client.cn7788.com.pp
| | `-- test.cn7788.com.pp
| `-- site.pp
|-- modules
| `-- nginx
| |-- files
| |-- manifests
| | `-- init.pp
| `-- templates
| |-- nginx.conf.erb
| `-- nginx_vhost.conf.erb
`-- puppet.conf
site. pp 의 파일 내용 은 다음 과 같 습 니 다.
import "nodes/*.pp"
client. cn7788. com. pp 의 파일 내용 은 다음 과 같 습 니 다.
node 'client.cn7788.com' {
include nginx
nginx::vhost {'client.cn7788.com':
sitedomain => "client.cn7788.com" ,
rootdir => "client",
}
}
test. cn7788. com. pp 의 파일 내용 은 다음 과 같다.
node 'test.cn7788.com' {
include nginx
nginx::vhost {'test.cn7788.com':
sitedomain => "test.cn7788.com" ,
rootdir => "test",
}
}
/ etc / uppet / modules / nginx / manifests / init. pp 파일 내용 은 다음 과 같 습 니 다.
class nginx{
package{"nginx":
ensure =>present,
}
service{"nginx":
ensure =>running,
require =>Package["nginx"],
}
file{"nginx.conf":
ensure => present,
mode => 644,owner => root,group => root,
path => "/etc/nginx/nginx.conf",
content=> template("nginx/nginx.conf.erb"),
require=> Package["nginx"],
}
}
define nginx::vhost($sitedomain,$rootdir) {
file{ "/etc/nginx/conf.d/${sitedomain}.conf":
content => template("nginx/nginx_vhost.conf.erb"),
require => Package["nginx"],
}
}
/ etc / uppet / modules / nginx / templates / nginx. conf. erb 파일 내용 은 다음 과 같 습 니 다.
user nginx;
worker_processes 8;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
use epoll;
worker_connections 51200;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
/etc/puppet/modules/nginx/templates/nginx_vhost. conf. erb 파일 내용 은 다음 과 같 습 니 다.
server {
listen 80;
server_name ;
access_log /var/log/nginx/.access.log;
location / {
root /var/www/;
index index.php index.html index.htm;
}
}
마지막 으로 우 리 는 노드 이름 이 client. cn7788. com 과 test. cn7788. com 인 기계 검증 효 과 를 볼 수 있 습 니 다. 명령 은 다음 과 같 습 니 다.
puppetd --test --server server.cn7788.com
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
최신 Puppet 노드 분류이는 에서 찾을 수 있는 업스트림 라이브러리 모듈(일부는 이를 구성 요소 모듈이라고 함) 또는 일반적으로 기술 구현 프로필이라고 하는 자체 작성 Puppet 코드를 통해 달성할 수 있습니다. 이 프로세스를 노드 분류...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.