首页 > 技术文章 > Foreman--Puppet类导入

derekchen 2014-02-09 21:59 原文

一。Foreman环境:

        foreman建好后,系统默认创建了3个环境:production,development,common,

     1. production:

        在puppet.conf里已经定义其调用的路径,是foreman默认使用的环境,通过foreman-proxy验证后的cliente均默认会进入这个环境    

     2. development:

        在puppet.conf里已经定义其调用的路径,新装的foreman的web界面是看不到,其modules目录下有模块后,通过导入模块才能

        将此环境导入到foreman

     3. common:

         在puppet.conf里没有定义,如果需要用到common这个环境,则可以在puppet.conf里创建其调用的路径,如下:

         vi /etc/puppet/puppet.conf,添加以下:

         [common]
          modulepath = /etc/puppet/environments/common/modules:/etc/puppet/environments/common:/usr/share/puppet/modules
          config_version =

          新装的foreman的web界面是看不到,其modules目录下有模块后,通过导入模块才能将此环境导入到foreman

二。 建模块:

     1. 进入 development 环境的模块目录

         # cd /etc/puppet/environments/development/modules

     2. 创建"修改root密码"模块的三个组成目录:

         # mkdir -p chpasswd/{manifests,templates,files}

         注意: 此处的 chpasswd文件夹的名字必须和后面新建的类的名字一致,否则client会报找不到类的错误提示

     3. 进入写puppet类的目录:

         # cd chpasswd/manifests/

     4. 创建init.pp文件:

        # touch init.pp,并添加以下文件:

          class chpasswd {

                                 user { "root":
                                             password  => '$6$6TXhJimPoQrOe52Y$XxFjwJ6s5LZ1',

                                         }

                                  }

     5. 检查语法

       # puppet parser validate init.pp

     6. 客户端模拟执行:

       # puppet agent --test  --noop

 

三。 把"修改root密码"模块导入到foreman里面

     1. 从“环境”处导入:点击“更多”-》配置-》环境

        

    2. 点击右上角的 “从server1.xxx.com导入”按钮

      

       备注:此处我用了两个环境,development是测试环境,production是生产环境,在这个另个环境里

               我均创建了"chpasswd模块",所以截图上foreman的两个环境里都会检测到puppet新建的类

   3. 选中,点击更新,并到 puppet类里去查看:

      

 

 

 

       

推荐阅读