Loading [MathJax]/jax/output/CommonHTML/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在Puppet中用ERB模板来自动配置Nginx虚拟主机

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

作者头像
星哥玩云
发布于 2022-07-04 01:19:44
发布于 2022-07-04 01:19:44
9580
举报
文章被收录于专栏:开源部署开源部署

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

[nginx]name=nginx repobaseurl=http://nginx.org/packages/CentOS/basearch/gpgcheck=0enabled=1

第二种方式就是通过createrepo自建自己的YUM源,这种方式更加宁活,我们可以在nginx官网去下载适合自己的rpm包,然后添加进自己的YUM源,在自动化运维要求严格的定制环境中,绝大多数运维同学都会选择这种方法。大家通过此种方式安装nginx以后会发现,确实比源码安装Nginx方便多了,像自动分配了运行nginx的用户nginx:nginx,Nginx的日志存放会自动保存在/var/log/nginx下,其工作目录为/etc/nginx,这一点跟源码编译安装的nginx区别很大,请大家在实验过程也注意甄别。

Puppet其它初级知识点我这里就略过了,我直接贴上文件内容,/etc/puppet的文件结构如下:

|-- auth.conf |-- fileserver.conf |-- manifests |  |-- nodes |  |  |-- client.linuxidc.com.pp |  |  `-- test.linuxidc.com.pp |  `-- site.pp |-- modules |  `-- nginx |      |-- files |      |-- manifests |      |  `-- init.pp |      `-- templates |          |-- nginx.conf.erb |          `-- nginx_vhost.conf.erb `-- puppet.conf

site.pp的文件内容如下:

1 import "nodes/*.pp"

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

node 'client.linuxidc.com' {   include nginx   nginx::vhost {'client.linuxidc.com':   sitedomain => "client.linuxidc.com" ,   rootdir => "client", } }

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

node 'test.linuxidc.com' {   include nginx   nginx::vhost {'test.linuxidc.com':   sitedomain => "test.linuxidc.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; } }

最后我们可以在节点名为client.linuxidc.com和test.linuxidc.com的机器验证效果,命令如下所示:

puppetd --test --server server.linuxidc.com

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Puppet模块创建LAMP堆栈
在Puppet中,模块是服务器配置的构建块。模块安装和配置包,创建目录,并生成用户在模块中包含的任何其他服务器更改。Puppet模块旨在执行特定任务的所有部分,例如下载Apache包,配置所有文件,更改MPM数据以及设置虚拟主机。反过来,模块被分解为扩展名为.pp的类文件,这些文件旨在将模块简化为各种任务,并提高模块的可读性。
用户1196457
2018/09/03
2K0
关于 Nginx创建虚拟主机与地址重写
        server_name  www.linuxidc.com;                                  【设置域名】
星哥玩云
2022/07/13
1.1K0
puppet使用详解「建议收藏」
随着企业服务器规模的不断扩大,再想通过手动去管理服务器已经变得越来越浪费时间,而且人总是容易出错的。所有就需要一款合适的自动化运维工具来管理服务器,自动配置服务器的工作。 puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。 puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置客户端. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息.
全栈程序员站长
2022/09/06
2.8K0
puppet使用详解「建议收藏」
puppet部署与应用
如果只管理几台服务器,命令多点也没什么,但是如果管理着成百上千台服务器,可以想象一下,工作量将是多么的庞大。所以作为一名运维工程师,就需要寻找一款能够降低工作量的工具。那么今天就给大家介绍一批工具,这批工具是“可编程”的,只需要为这批工具写上几行代码,它便会自动完成所有的工作,这批工具就是运维自动化puppet(为什么说是一批工具,因为软件不止一个)。Puppet可以针对多台服务器进行统一的操作,例如:软件分发,统一执行脚本,在服务器上写好脚本分发给客户机,客户机就会自动执行,减少了人力及误操作风险
L宝宝聊IT
2018/06/20
1.3K0
puppet简介、安装配置、语法、命令与实例
puppet主要使用于自动化运维方面,对于拥有众多服务器需要管理的管理员来说,puppet是个不错的选择,使其管理更加轻松,容易。其设计的是c/s建构,可以一个master和多个client。通过master可管理配置客户端的文件、用户、cron任务、软件包、系统服务等。客户端默认半小时向master请求一次以使其与master配置同步,从而使管理员在master上设置配置就可以实现对于众多客户端机器的管理。
菲宇
2019/06/13
3.6K0
puppet简介、安装配置、语法、命令与实例
手动编写的几个简单的puppet管理配置
puppet在自动化配置管理方面有很强大的优势,这里就不做过多介绍了,下面记录下几个简单的puppet管理配置: 一、首先在服务端和客户端安装puppet和facter 1)服务端 安装Puppet Labs # rpm -ivh http://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabs-release-6-12.noarch.rpm 安装Puppet和facter # yum install puppet puppet-server fact
洗尽了浮华
2018/01/22
1.5K0
Puppet常识梳理
Puppet简单介绍 1)puppet是一种Linux/Unix平台下的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。 2)Puppet是开源的基于Ruby的系统配置管理工具,puppet是一个C/S结构。所有的puppet客户端同一个服务器端的puppet通讯,每个puppet客户端每半小时(可以设置)连接一次服务器端,下载最新的配置文
洗尽了浮华
2018/01/22
2K0
Puppet常识梳理
Puppet管理Nginx主机
Puppet管理Nginx主机,将nginx主机加入到puppet中,实现自动安装、配置、和启动服务
星哥玩云
2022/07/03
8890
Puppet自动化运维排错案例
[root@client src]# puppetd --test --server server.linuxidc.com
星哥玩云
2022/07/03
2330
Puppet之class模块案例
先来看下module的路径及最基本的目录结构: [root@master modules]# puppet master --configprint modulepath /etc/puppet/modules:/usr/share/puppet/modules [root@master modules]# pwd /etc/puppet/modules [root@master modules]# tree -l . └── ssh     ├── files    #文件目录     │  └── sshd_config  #要下载的文件     ├── manifests          │  └── init.pp     └── templates      #模版文件 4 directories, 2 files
星哥玩云
2022/06/28
3530
Puppet之class模块案例
【笔记梳理】---puppet学习笔记
一、Puppet基础原理: Puppet是一款使用GPLV2X协议授权的开源管理配置工具,用ruby语言开发,既可以通过客户端—服务器的方式运行,也可以独立运行。puppet可以为系统管理员提供方便,快捷的系统自动化管理。 二、puppet工作流程 1. 客户端 puppet-client 向 puppet-master 发起认证请求,或使用带签名的证书。 2. puppet-master 告诉 puppet-client 是合法的。 3. puppet-client 调用 facter, Facter 探
小小科
2018/05/03
1.3K0
如何在Ubuntu 14.04上设置Masterless Puppet环境
在现代云计算领域,配置管理是至关重要的一步。配置管理工具允许您可靠地将配置部署到服务器。Puppet是这个领域中比较成熟的配置管理工具之一。
何处惹尘埃
2018/10/17
8550
puppet安装
server  xuesong1     10.152.14.85 client  xuesong      10.152.14.106 系统centos5.8 两台配置都配置 /etc/hosts 10.152.14.85    xuesong1 10.152.14.106   xuesong wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh epel-release-5-
程序员同行者
2018/06/22
5990
Puppet基于Master/Agent模式实现LNMP平台部署
前言 随着IT行业的迅猛发展,传统的运维方式靠大量人力比较吃力,运维人员面对日益增长的服务器和运维工作,不得不把很多重复的、繁琐的工作利用自动化处理。前期我们介绍了运维自动化工具ansible的简单应用,本期带来的是运维自动化神器puppet基于Master/Agent模式实现LNMP平台部署。 Puppet 简介 Puppet是基于ruby语言开发的一种Linux、Unix、Windows平台的集中配置管理系统,可以C/S模式或独立运行,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、
小小科
2018/05/04
1.1K0
Puppet基于Master/Agent模式实现LNMP平台部署
puppet
puppet三板斧:资源、类、模板 与saltstack的对比。 介绍、基础、实战、进阶 1、puppet是一个开源的跨平台的集中化的配置管理工具,发布于2005,目前最新版本为6.3。puppet是基于ruby语言的。在2012年的时候,puppet与Openstack整合。 2、目前puppet已拥有300+客户,包括twitter、oracle、Google、RedHat,国内有新浪、阿里巴巴、腾讯、百度、小米、豆瓣等。 3、puppet管理一台主机的整个生命周期,包括初始化安装、升级、维护、服务迁移。在puppet世界中,一台主机的每个生命周期内的每个动作都被抽象成一个资源。我们需要维护一台主机上的每个资源。 4、puppet的组织结构:
用户5760343
2022/05/14
8310
puppet
Puppet的搭建和应用从入门到精通
作为一名系统管理员,维护服务器正常运行是最基本的职责,在管理几台到几十台服务器时,大部分管理员喜欢自己写小工具来维护,但随着服务器的数量曾多,任务量也逐渐增多,这时就需要简洁的、强大的框架来完成系统管理的任务,为了实现这一目的,我们引入了一些工具,这些工具是可编程的,系统管理员只需要为这个工具写上几行代码,它便会自动的完成所有的工作,这批工具就是运维自动化puppet,它可以针对多台服务器进行统一操作,如部署统一的软件、进行统一上线维护等,而且能快速完成上线部署,减少人力及人力误操作风险。
星哥玩云
2022/07/25
1K0
Puppet的搭建和应用从入门到精通
安装和配置Puppet
Puppet是一个配置自动化平台,可简化各种系统管理员任务。Puppet使用客户端/服务器模型,其中托管服务器(称为Puppet代理)与Puppet主服务器通信并下拉配置文件。
evildickman
2018/09/04
4.3K0
安装和配置Puppet
如何用Puppet和Augeas管理Linux配置
虽然Puppet是一个真正独特的有用工具,但在有些情况下你可以使用一点不同的方法来用它。比如,你要修改几个服务器上已有的配置文件,而且它们彼此稍有不同。Puppet实验室的人也意识到了这一点,他们在 Puppet 中集成了一个叫做Augeas的伟大的工具,它是专为这种使用情况而设计的。
星哥玩云
2022/07/03
1.1K0
如何用Puppet和Augeas管理Linux配置
自动化运维工具——puppet详解(一)
puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期: 供应(provisioning)、配置(configuration)、联动(orchestration)及报告(reporting)。   基于puppet ,可实现自动化重复任务、快速部署关键性应用以及在本地或云端完成主动管理变更和快速扩展架构规模等。   遵循GPL 协议(2.7.0-), 基于ruby语言开发。   2.7.0 以后使用(Apache 2.0 license)   对于系统管理员是抽象的,只依赖于ruby与facter。   能管理多达40 多种资源,例如:file、user、group、host、package、service、cron、exec、yum repo等。
顾翔
2020/02/19
4.6K0
自动化运维工具——puppet详解(一)
10分钟带你光速入门运维工具之-Puppet
一、简介 当服务器数量达到一定的规模时,仅依靠人为完成批量部署服务器个资源的配置,运维工作将变得繁琐且容易出错,为了解决这一问题,我们应该怎么办呢?我们可以引入一批工具,这批工具可编写相应的manifests代码,运行它便可以自动完成所有的工作,目前比较流行的运维工具主要有:puppet,ansible, slackstack等,在这我们主要以puppet来展开话题。 在一些大型互联网企业中,运维自动化管理着几百甚至上千台服务器,它可以针对多台服务器进行统一操作,例如部署统一软件、进行统一上线维护等,而且
小小科
2018/05/04
1K0
10分钟带你光速入门运维工具之-Puppet
相关推荐
使用Puppet模块创建LAMP堆栈
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档