资讯专栏INFORMATION COLUMN

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

bovenson / 2788人阅读

摘要:大家通过此种方式安装以后会发现,确实比源码安装方便多了,像自动分配了运行的用户的日志存放会自动保存在下,其工作目录为。

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

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

</>复制代码

  1. [nginx]
  2. name=nginx repo
  3. baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
  4. gpgcheck=0
  5. enabled=1
2. 第二种方式就是通过createrepo自建自己的YUM源

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

</>复制代码

  1. |-- auth.conf
  2. |-- fileserver.conf
  3. |-- manifests
  4. | |-- nodes
  5. | | |-- client.cn7788.com.pp
  6. | | `-- test.cn7788.com.pp
  7. | `-- site.pp
  8. |-- modules
  9. | `-- nginx
  10. | |-- files
  11. | |-- manifests
  12. | | `-- init.pp
  13. | `-- templates
  14. | |-- nginx.conf.erb
  15. | `-- nginx_vhost.conf.erb
  16. `-- puppet.conf

site.pp的文件内容如下:

</>复制代码

  1. import "nodes/*.pp"

client.cn7788.com.pp的文件内容如下所示:

</>复制代码

  1. node "client.cn7788.com" {
  2. include nginx
  3. nginx::vhost {"client.cn7788.com":
  4. sitedomain => "client.cn7788.com" ,
  5. rootdir => "client",
  6. }
  7. }

test.cn7788.com.pp的文件内容如下所示:

</>复制代码

  1. node "test.cn7788.com" {
  2. include nginx
  3. nginx::vhost {"test.cn7788.com":
  4. sitedomain => "test.cn7788.com" ,
  5. rootdir => "test",
  6. }
  7. }

/etc/puppet/modules/nginx/manifests/init.pp文件内容如下所示:

</>复制代码

  1. class nginx{
  2. package{"nginx":
  3. ensure =>present,
  4. }
  5. service{"nginx":
  6. ensure =>running,
  7. require =>Package["nginx"],
  8. }
  9. file{"nginx.conf":
  10. ensure => present,
  11. mode => 644,owner => root,group => root,
  12. path => "/etc/nginx/nginx.conf",
  13. content=> template("nginx/nginx.conf.erb"),
  14. require=> Package["nginx"],
  15. }
  16. }
  17. define nginx::vhost($sitedomain,$rootdir) {
  18. file{ "/etc/nginx/conf.d/${sitedomain}.conf":
  19. content => template("nginx/nginx_vhost.conf.erb"),
  20. require => Package["nginx"],
  21. }
  22. }

/etc/puppet/modules/nginx/templates/nginx.conf.erb文件内容如下所示:

</>复制代码

  1. user nginx;
  2. worker_processes 8;
  3. error_log /var/log/nginx/error.log warn;
  4. pid /var/run/nginx.pid;
  5. events {
  6. use epoll;
  7. worker_connections 51200;
  8. }
  9. http {
  10. include /etc/nginx/mime.types;
  11. default_type application/octet-stream;
  12. log_format main "$remote_addr - $remote_user [$time_local] "$request" "
  13. "$status $body_bytes_sent "$http_referer" "
  14. ""$http_user_agent" "$http_x_forwarded_for"";
  15. access_log /var/log/nginx/access.log main;
  16. sendfile on;
  17. #tcp_nopush on;
  18. keepalive_timeout 65;
  19. #gzip on;
  20. include /etc/nginx/conf.d/*.conf;
  21. }

/etc/puppet/modules/nginx/templates/nginx_vhost.conf.erb文件内容如下所示:

</>复制代码

  1. server {
  2. listen 80;
  3. server_name <%= sitedomain %>;
  4. access_log /var/log/nginx/<%= sitedomain %>.access.log;
  5. location / {
  6. root /var/www/<%= rootdir %>;
  7. index index.php index.html index.htm;
  8. }
  9. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39109.html

相关文章

  • Docker 中构建基于 Puppet 的应用

    摘要:通过创建一个的来构建一个应用程序是非常容易的。我们将使用这个镜像来作为我们新的应用程序镜像的基础镜像。现在我们需要为我们的应用程序镜像创建另外一个。你可以重复这个步骤安装任何基于的应用或者是基础设施。 通过创建一个 Docker 的 Dockerfile 来构建一个应用程序是非常容易的。但是如果你已经有了大量的 Puppet 模块(或者是 Chef cookbooks),你想把这些模块...

    NoraXie 评论0 收藏0
  • 运用代码管理基础架构之镜像利器(一)

    摘要:第二十期启迪云高级交付经理董乐首先我们基础架构的组成主要是计算存储和网络。不会取代像或这样的配置管理。事实上,在创建镜像时,可以使用或等工具在镜像上安装软件。第二十期 启迪云高级交付经理  董乐 首先我们基础架构的组成主要是计算、存储和网络。在我们以往的模式中主要使用的是虚拟化技术。 无论哪种虚拟化技术在实际生产环境中主要都是通过模板来提高交付效率,模板主要由操作系统和应用组成。...

    URLOS 评论0 收藏0
  • 如何选择云计算基础设施自动化的最佳工具?

    摘要:企业将业务迁移到云平台的最大好处之一是可以降低工作和运营成本,其中一个最重要的因素是云计算基础设施的自动化和配置。幸运的是,有许多云计算基础设施自动化工具可用于帮助加快流程。企业需要深入了解将工作负载迁移到公共云的正确步骤,并因此降低成本。云迁移不会自行发生,在迁移项目成功之前并不能完成工作和任务。企业将业务迁移到云平台的最大好处之一是可以降低工作和运营成本,其中一个最重要的因素是云计算基础...

    KitorinZero 评论0 收藏0
  • PHP学习计划

    摘要:相关框架路由网络组件解析组件数据库对象生成器错误处理组件配置命令行工具简单容器注释解析组件文件处理基于数据存储日子处理基于模板引擎基于中间件单元测试中间件数据类型操作网络编程知识基础知识环境配置,内置服务器知识版本管理与代码注释命名空间日期 PHP 相关 FastD PHP Web框架 PHP路由 Swoole网络组件 PHPHttp解析组件 PHP数据库 PHP对象生成器 PHP错...

    shery 评论0 收藏0
  • PHP学习计划

    摘要:相关框架路由网络组件解析组件数据库对象生成器错误处理组件配置命令行工具简单容器注释解析组件文件处理基于数据存储日子处理基于模板引擎基于中间件单元测试中间件数据类型操作网络编程知识基础知识环境配置,内置服务器知识版本管理与代码注释命名空间日期 PHP 相关 FastD PHP Web框架 PHP路由 Swoole网络组件 PHPHttp解析组件 PHP数据库 PHP对象生成器 PHP错...

    missonce 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<