puppet的多环境实现

简介:

目的:根据环境的不同设置不同的nginx进程数:生产环境配置为auto,测试环境配置2个,开发环境为1个。

前提:确保所有节点的epel源可用,因为安装nginx需要epel源。

步骤: 

1、Master端操作:

 ①创建如下目录结构

tree /puppet/environment/

/puppet/environment/

├── dev

│    ├── manifests

│    └── modules

├── prod

│    ├── manifests

│    └── modules

└── test

      ├── manifests

      └── modules

mkdir -pv /puppet/environment/{prod,test,dev}/{modules,manifests}


 ②在puppet.conf的master段添加environmentpath:指向多环境配置的目录

  puppet config --section=master set environmentpath /puppet/environments

如果不想这样指定,可以在/etc/puppet/下建一个软链接environments指向该路径,就不需要改配置文件了

  ③定义模块,准备相关文件

   cd /puppet/environment/prod/

   mkdir modules/nginx/{manifests,files -pv}

   cp /etc/nginx/nginx.conf modules/nginx/files/

   vim modules/nginx/files/nginx.conf

     配置进程数为worker_processes auto

 

  ④编辑清单文件,定义类:

   vim prod/modules/nginx/manifests/init.pp

     class nginx {

        package{'nginx':

                ensure => latest,

        } ->

        file{'nginx':

                ensure => file,

                source => 'puppet:///modules/nginx/nginx.conf',

                path => '/etc/nginx/nginx.conf',

                owner => 'root',

                group => 'root',

                mode => '0644',

        } ~>

        service{'nginx':

                ensure => running,

                enable => true,

                hasrestart => true,

                hasstatus => true,

                restart => 'usr/sbin/nginx -s reload'

        }

    }


  ⑤编辑站点清单文件:

 vim prod/manifests/site.pp

   node 'server1.tingjie.com'{

        include nginx

   }

  ⑥配置testing环境和development环境的文件

cp -r modules/nginx/ /puppet/environment/test/modules/

cp -r modules/nginx/ /puppet/environment/dev/modules/

cp manifests/site.pp /puppet/environment/test/manifests/

cp manifests/site.pp /puppet/environment/dev/manifests/

vim test/modules/nginx/files/nginx.conf

     worker_processes 2;

vim dev/modules/nginx/files/nginx.conf

     worker_processes 1;


puppet parser validate test/modules/nginx/ 可以检查语法错误


最终的目录结构如下:

tree /puppet/environment/

/puppet/environment/

├── dev

│     ├── manifests

│     │     └── site.pp

│     └── modules

│            └── nginx

│                   ├── files

│                   │     └── nginx.conf

│                   └── manifests

│                          └── init.pp

├── prod

│     ├── manifests

│     │     └── site.pp

│     └── modules

│            └── nginx

│                   ├── files

│                   │     └── nginx.conf

│                   └── manifests

│                          └── init.pp

└── test

       ├── manifests

       │     └── site.pp

       └── modules

              └── nginx

                     ├── files

                     │     └── nginx.conf

                     └── manifests

                            └── init.pp


  ⑦重启服务:systemctl restart puppetmaster.service


2、server1端测试:

   systemctl stop puppetagent.service 

   使用下面的命令可以看过程,当然也可以直接重启服务

   puppet agent -v --noop --environment=prod --no-daemonize

   puppet agent -v --noop --environment=test --no-daemonize

   puppet agent -v --noop --environment=dev --no-daemonize


如果想固定一台机器使用的环境为prod,那么

vim /etc/puppet/puppet.conf

   environment = prod

重启服务即可













本文转自lc0108131451CTO博客,原文链接:http://blog.51cto.com/13150617/2053847 ,如需转载请自行联系原作者





相关文章
|
5月前
|
运维 监控 持续交付
"揭秘Puppet:自动化运维的超级英雄,一键驾驭复杂IT环境,让运维繁琐瞬间灰飞烟灭,引领未来运维新纪元!"
【8月更文挑战第9天】Puppet作为自动化运维的杰出代表,凭借其强大的配置管理和高度可定制性,助力IT运维实现自动化与智能化转型。通过定义资源模型与使用声明式语言描述系统状态,Puppet能自动调整系统至期望状态,实现标准化运维流程。其工作流程包括定义-应用-报告三步,支持从服务器配置到复杂网络、数据库管理等多种场景。示例代码展示了如何自动化部署Apache服务器,体现了Puppet在实际操作中的高效与便捷。随着技术演进与社区壮大,Puppet将持续推动运维领域的创新发展。
87 6
|
3月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
95 3
|
安全 Linux 网络协议
puppet yum模块、配置仓储、mount模块
转载:http://blog.51cto.com/ywzhou/1577335 作用:自动为客户端配置YUM源,为使用yum安装软件包提供便捷。 1、服务端配置yum模块 (1)模块清单 [root@puppet ~]# tree /etc/puppe...
1129 0
|
网络协议 安全 网络安全
|
Perl 存储 数据挖掘