在Puppet中用ERB模板来自动配置Nginx虚拟主机

1. 模板文件是在puppet模块下面templates目录中以”.erb”结尾的文件

puppet模板主要用于文件,例如各种服务的配置文件,相同的服务,不同的配置就可以考虑使用模板文件,例如Nginx和Apache的虚拟主机配置就可以考虑采用ERB模板,nginx的安装在这里建议用系统内部自带的YUM源来安装或其它第三方YUM源来安装,如果是用Nginx的官方源来安装nginx的话,我们可以查看下/etc/yum.repos.d/nginx.repo文件内容,如下所示:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

2. 第二种方式就是通过createrepo自建自己的YUM源

这种方式更加宁活,我们可以在nginx官网去下载适合自己的rpm包,然后添加进自己的YUM源,在自动化运维要求严格的定制环境中,绝大多数运维同学都会选择这种方法。大家通过此种方式安装nginx以后会发现,确实比源码安装Nginx方便多了,像自动分配了运行nginx的用户nginx:nginx,Nginx的日志存放会自动保存在/var/log/nginx下,其工作目录为/etc/nginx。
像Puppet其它初级知识点我这里就略过了,我直接贴上文件内容,/etc/puppet的文件结构如下:

|-- 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/puppet/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/puppet/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  <%= sitedomain %>;
access_log /var/log/nginx/<%= sitedomain %>.access.log;
location / {
root /var/www/<%= rootdir %>;
index    index.php index.html index.htm;
}
}
时间: 2024-11-12 06:12:06

在Puppet中用ERB模板来自动配置Nginx虚拟主机的相关文章

四、配置nginx虚拟主机

1.背景: 虚拟主机:一台web主机配置多个站点,每个站点,希望用不同的域名和站点目录,或者是不同的端口,或者是不同的IP. 假设网站的域名为:25linux.com,网站下面设有 http://www.25linux.com;: http://blog.25linux.com;: http://bbs.25linux.com: 三个站点,这样我们可以在一台nginx主机上配置虚拟主机来实现. 通常虚拟主机分为3种: 基于域名,基于端口,基于IP,以及它们的混合来实现,我这里以基于域名的方式来创

配置nginx虚拟主机别名及别名企业场景应用说明

nginx虚拟主机的别名配置 1    虚拟主机别名介绍及配置 所谓虚拟主机别名,就是为了虚拟主机设置除了主域名以外的一个或多个域名名字,这样能实现用户访问的多个域名对应同一个虚拟主机网站的功能. 以www.etiantian.org域名的虚拟主机为例,为其增加一个别名etiantian.org,使得访问 [[email protected] bbs]# curl -I 51cto.com HTTP/1.1 301 Moved Permanently Date: Sun, 20 Aug 2017

[Nginx]简易配置Nginx虚拟主机

------------------------------------------------------------------------------------------------------- 配置虚拟主机: 1. 绑定域名 vim /etc/hosts #添加格式如:192.168.1.11 www.chenwei.ws 2. 添加虚拟主机  cd到根目录, 运行vhost.sh添加虚拟主机, 输入域名即可 3. 编辑配置文件 vim /usr/local/nginx/conf/

在 CentOS7 上配置 nginx 虚拟主机

创建配置文件保存目录,其中 sites-available 用来实际保存配置文件,sites-enabled 用来保存符号链接 : mkdir /etc/nginx/sites-available mkdir /etc/nginx/sites-enabled 修改nginx配置文件 /etc/nginx/nginx.conf 使其包含符号链接虚拟主机文件,在 http {} 区块结束前加上如下内容: include /etc/nginx/sites-enabled/*.conf; 设置虚拟主机配

Nginx的基本配置:虚拟主机、日志文件、缓存、自动列目录的配置

Nginx配置文件总览 Nginx的配置文件结构 #设置用户 user root; #工作衍生的进程数 (一般=CPU核心数或核心数*2) worker_processes 2; #设置错误文件的存放路径 error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #设置pid的存放路径(pid是控制系统中的重要文件) pid logs/nginx.pid; #设置最大连接

Nginx虚拟主机配置实践(一)

Nginx虚拟主机配置实践(一) 一.虚拟主机的概念 在Web服务里虚拟主机就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立的对外提供服务供用户访问. 二.虚拟主机的类型 基于域名的虚拟主机 基于端口的虚拟主机 基于IP的虚拟主机 说明:实际生产中用的最多的就是基于域名的虚拟主机,其他两种了解即可. 三.基于一个域名虚拟主机的配置 Nginx主配置文件结构 创建一个最简化的Nginx主配置文件 [[email protected] conf

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志 扩展 邱李的tomcat文档 https://www.linuser.com/forum.php?mod=forumdisplay&fid=37 JAR.WAR包区别 http://blog.csdn.net/lishehe/article/details/41607725 tomcat常见配置汇总 http://blog.sina.com.cn/s/blog_4ab26b

Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

配置Tomcat监听80端口 1.配置Tomcat服务的访问端口 Tomcat默认启动的端口是8080,如果你想修改为80,则需要修改server.xml文件. [[email protected] src]# vim /usr/local/tomcat/conf/server.xml 按如下需求更改: 找到Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protoc

配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志

配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1" • /usr/local/tomcat/bin/shutdown.sh • /usr/local/tomcat/bin/startup.sh 配置Tom