foreman架构的引入4-安装Foreman1.6.3架构(foreman与puppetmaster分离)

零基础学习Puppet自动化配置管理系列文档

注意:本实验是在离线情况下安装的,所以需要在本地创建自己的yum仓库,创建方法可参考《如何根据版本制作属于自己的puppet yum源》,如何你实在是比较懒或者搞不定rpm包之间的依赖关系,那就去我的github上下载吧:https://github.com/kisspuppet/foreman-repo

更多安装细节请参考官网:http://theforeman.org/manuals/1.6/index.html

之前讲的all-in-one方式建议只用于测试使用,如果要用于生产环境,建议将foreman和puppetmaster分离安装,更有利于后期的维护和扩展。还有就是之前你已经部署过puppetmaster了,如何单独部署foreman和puppetmaster通信也是值得考虑的问题。

1、软件包的选型如下:

  • puppet-server 3.6.2
  • puppet 3.6.2
  • facter 2.0.2
  • mcollective 2.2.4
  • rabbitmq-server 3.2.4
  • foreman 1.6.3
  • foreman-proxy 1.6.3

2、系统环境准备

3、安装puppetmaster

3.1、安装puppetmaster,并生成CA和证书

[[email protected] ~]# yum install puppet puppet-server facter
[[email protected] puppet]# vim /etc/puppet/puppet.conf
[agent]
server = puppetmaster162.kisspuppet.com
pluginsync = false
...
[master]
certname = puppetmaster162.kisspuppet.com
environmentpath  = /etc/puppet/environments
basemodulepath   = /etc/puppet/modules:/usr/share/puppet/modules  
environment_timeout = 10

[[email protected] ~]# /etc/init.d/puppetmaster start
Starting puppetmaster:                                     [  OK  ]
[[email protected] ~]# puppet cert --list --all
+ "puppetmaster162.kisspuppet.com" (SHA256) 2E:B3:73:4F:CD:EE:0C:64:2C:DF:24:E6:D3:62:F3:1C:AC:A3:28:60:67:1D:0C:8C:C5:CA:68:5B:4B:2F:49:B9 (alt names: "DNS:puppet", "DNS:puppet.kisspuppet.com", "DNS:puppetmaster162.kisspuppet.com")

3.2、测试puppetmaster是否能够正常使用

[[email protected] ~]# puppet agent -t
Info: Caching catalog for puppetmaster162.kisspuppet.com
Info: Applying configuration version ‘1417749612‘
Notice: Finished catalog run in 0.04 seconds

注:以上安装方式,puppetmaster工作在Webrick上,性能非常差,需要更换为性能好的web服务器上,如果更换,请参考http://kisspuppet.com/2014/10/18/puppet_learning_ext3/ http://kisspuppet.com/2014/10/20/puppet_learning_ext4/

4、安装Foreman

4.1、安装puppet客户端并完成认证

#安装
[[email protected] ~]# yum install puppet facter
[[email protected] ~]# vim /etc/puppet/puppet.conf 
[main]
...
privatekeydir = $ssldir/private_keys { group = service }  
hostprivkey = $privatekeydir/$certname.pem { mode = 640 }

[agent]
server = puppetmaster162.kisspuppet.com
pluginsync = false

#申请认证
[[email protected] ~]# puppet  agent -t
Info: Creating a new SSL key for foreman163.kisspuppet.com
Info: Caching certificate for ca
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for     
Info: Certificate Request fingerprint (SHA256): 35:5D:E5:74:71:E0:FD:D2:67:34:17:92:3D:60:F2:A1:34:26:BA:E5:2D:1F:3A:0E:07:6F:85:38:A8:39:8B:65
Info: Caching certificate for ca
Exiting; no certificate found and waitforcert is disabled

#授权证书
[[email protected] ~]# puppet cert --sign foreman163.kisspuppet.com
Notice: Signed certificate request for foreman163.kisspuppet.com
Notice: Removing file Puppet::SSL::CertificateRequest foreman163.kisspuppet.com at ‘/var/lib/puppet/ssl/ca/requests/foreman163.kisspuppet.com.pem‘

#测试
[[email protected] ~]# puppet  agent -t
Info: Caching catalog for foreman163.kisspuppet.com
Info: Applying configuration version ‘1417749612‘
Notice: Finished catalog run in 0.05 seconds

4.2、通过foreman-installer安装foreman

foreman默认安装选择的数据库为postgresql,这里选用mysql进行安装。

注意:openssl版本要升级到1.0.1e版本

#先安装包
[[email protected] ~]# yum install foreman-installer foreman  mod_passenger mod_ssl ruby193-rubygem-passenger-native mysql mysql-server foreman-mysql2   openssl
...
Updated:
  openssl.x86_64 0:1.0.1e-15.el6                                                   
Replaced:
  ruby193-v8.x86_64 1:3.14.5.10-2.el6                                              
Complete!

#然后通过foreman-installer调用puppet进行配置
[[email protected] ~]# foreman-installer --foreman-db-adapter mysql2 --foreman-db-type mysql --no-enable-puppet --no-enable-foreman-proxy --foreman-configure-epel-repo=false
Installing             Done                                               [100%] []
  Success!
  * Foreman is running at https://foreman163.kisspuppet.com
      Initial credentials are admin / 2kWcqJsW6cLDwo7m
  The full log is at /var/log/foreman-installer/foreman-installer.log

注:以上安装完成之后,默认登录密码为随机密码,这跟之前版本有所不同。

安装完成之后,通过火狐或者谷歌浏览器访问看是否安装成功https://192.168.20.11

记得修改默认密码,否则待会忘了又登录不了了。 

5、安装Foreman-proxy

注:这里的foreman-proxy主要是代理puppet以及puppetca,所以要安装在puppetmaster上。

5.1、安装foreman-proxy

[root[email protected] ~]# yum install foreman-installer foreman-proxy tftp-server syslinux

[[email protected] yum.repos.d]# foreman-installer --no-enable-foreman --no-enable-foreman-cli --no-enable-foreman-plugin-bootdisk --no-enable-foreman-plugin-setup --no-enable-puppet --enable-foreman-proxy  --foreman-proxy-puppetrun=true  --foreman-proxy-puppetrun-provider=mcollective  --foreman-proxy-puppetca=true   --foreman-proxy-dhcp=false  --foreman-proxy-tftp=false  --foreman-proxy-dns=false --foreman-proxy-register-in-foreman=false  --foreman-configure-epel-repo=false --foreman-configure-scl-repo=false
Installing             Done                                               [100%] []
  Success!
  * Foreman Proxy is running at https://puppetmaster162.kisspuppet.com:8443
  The full log is at /var/log/foreman-installer/foreman-installer.log

#检测8443端口
[[email protected] ~]# netstat -nlatp | grep 8443
tcp        0      0 0.0.0.0:8443                0.0.0.0:*                   LISTEN      4635/ruby

5.2、设置ENC

#从foreman-installer中获取node.rb(貌似不能用,可以通过all-in-one方式安装后获取)
[[email protected] ~]# cp /usr/share/foreman-installer/modules/foreman/files/foreman-report_v2.rb  /etc/puppet/node.rb

[[email protected] ~]# chown puppet. /etc/puppet/node.rb  #设置属组和属主都为puppet
[[email protected] ~]# chmod 550 /etc/puppet/node.rb  #设置执行权限

5.3、设置report

#从foreman-installer中获取foreman.rb
[[email protected] ~]# cp /usr/share/foreman-installer/modules/foreman/files/foreman-report_v2.rb  /usr/lib/ruby/site_ruby/1.8/puppet/reports/foreman.rb

5.4、设置连接foreman的信息

#这里跟foreman1.5版本(包括1.5版本)不一样,请注意
[[email protected] puppet]# vim /etc/puppet/foreman.yaml 
---
:url: "https://foreman163.kisspuppet.com"
:ssl_ca: "/var/lib/puppet/ssl/certs/ca.pem"
:ssl_cert: "/var/lib/puppet/ssl/certs/puppetmaster162.kisspuppet.com.pem"
:ssl_key: "/var/lib/puppet/ssl/private_keys/puppetmaster162.kisspuppet.com.pem"
:user: ""
:password: ""
:puppetdir: "/var/lib/puppet"
:puppetuser: "puppet"
:facts: true
:timeout: 10
:threads: null
[[email protected] ~]# /etc/init.d/foreman-proxy restart
Stopping foreman-proxy:                                    [  OK  ]
Starting foreman-proxy:                                    [  OK  ]

6、注册puppet和puppetca

6.1、在puppetmaster上添加ENC配置和foreman报告

[[email protected] ~]# vim /etc/puppet/puppet.conf 
[master]
    ...
    reports        = foreman
    external_nodes = /etc/puppet/node.rb
    node_terminus  = exec
#重启生效
[[email protected] ~]# /etc/init.d/puppetmaster restart
Stopping puppetmaster:                                     [  OK  ]
Starting puppetmaster:                                     [  OK  ]

6.2、登录foreman注册foreman-proxy

6.3、节点测试

[[email protected] ~]# puppet  agent -t
Info: Caching catalog for foreman163.kisspuppet.com
Info: Applying configuration version ‘1417762929‘
Notice: Finished catalog run in 0.13 seconds
[[email protected] ~]# puppet  agent -t 
Info: Caching catalog for puppetmaster162.kisspuppet.com
Info: Applying configuration version ‘1417762858‘
Notice: Finished catalog run in 0.14 seconds

注:如果测试报错,请将foreman中的puppet插件的enc_environment选项设置为false,具体如何使用后续讲解

关于如何设置和使用foreman,请关注后续文章....

@KissPuppet

2014年10月28号 上海

返回主目录

交流方式:

微信公众号:puppet2014,可微信搜索加入,也可以扫描以下二维码进行加入

QQ交流群:296934942

时间: 2024-10-24 00:51:19

foreman架构的引入4-安装Foreman1.6.3架构(foreman与puppetmaster分离)的相关文章

foreman架构的引入1-foreman作为自动化运维工具为什么会如此强大

零基础学习Puppet自动化配置管理系列文档 在引入foreman之前,笔者曾经大幅度测试过puppet的另外一个生态圈前端软件,那就是KermIT(kermit.fr需要墙).说实话基于KermIT这套架构还是相当不错的,尤其是在于mcollective的各种插件结合上做的很完美,可惜社区太不活跃,软件版本更新超慢,坑超多,最终还是放弃了.不过,他的架构还是值得借鉴的,对于那些想自己在puppet前端做UI的朋友可以多参考参考. 本文引入另外一个非常出色的前端管理工具Foreman,什么是fo

foreman架构的引入2-安装前环境准备

零基础学习Puppet自动化配置管理系列文档 Foreman官网提供了每个版本非常完善的安装步骤,无论是源码安装还是rpm包安装都变得非常方便.而且Foreman通过puppet模块对安装步骤进行了封装并提供了大量的安装参数可以传输,相当的方便.不过由于其体系过大,代理很多软件,安装的软件包超多,安装过程也并非那么简单. 以下是需要考虑的问题及解决方法 特别说明:接下来的所有的推荐说明.操作和测试都是基于目前最新版1.5.4进行的,而1.6版本只更新了2个Release,还不太稳定. 关于For

foreman架构的引入7-Foreman结合mcollective完成push动作

零基础学习Puppet自动化配置管理系列文档 注:以下内容是在foreman1.6.3+puppet2.6.2环境下进行操作.更多配置请参考官网http://theforeman.org/manuals/1.6/index.html 在foreman-proxy的1.6.3版本,至少提供了以下五种触发puppet agent命令的工具,默认使用的是puppetrun,不过已经过时,这里介绍如何使用mcollective进行触发,下个章节会介绍如何使用puppetssh触发. #   puppet

foreman架构的引入10-hostgroup如何转换为本地的fact

零基础学习Puppet自动化配置管理系列文档 在Foreman上可以根据业务逻辑设置多个主机组(Host Groups),并且可以将不同的节点加入到不同的主机组,这样在每次操作"puppet run"的时候,只需要在搜索按钮里搜索对应的主机组即可找到里面包含的所有节点,如下图所示 Foreman安装 但是,foreman目前在puppet run上对mcollective的集成度很低,基本就是只能运行一条命令.那么如果要在shell终端上通过mco命令去对这些自定义的Host Grou

搭建JEESZ分布式架构7--Zookeeper注册中心安装

ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务--分布式同步(Distributed Synchronization).命名服务(Naming Service).集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务.ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证Z

架构设计深入学习01--概论与预架构阶段

完成一个比较复杂的项目后,终于有空看看书了,这次决定将架构设计的方法论进行一次系统的学习,借助温昱大师的<一线架构师>一书.我将把这次学习分成三部分,分别是概论&预架构阶段&非功能目标的方法论.概念架构阶段.细化架构阶段.此外,今天看到老妈很喜欢的大幂幂了,真心很美,继续加油学习了,为成为一名合格的程序员而努力. 架构师的4个困惑: 4个实际问题的困惑 将系统划分模块,如何更合理? 细化架构阶段 大系统架构设计,如何起步? 概念架构阶段 总觉得需求很糟糕,影响了架构设计 预架构

深解微服务架构:从过去,到未来|架构(2015-07-15)

随着用户需求个性化.产品生命周期变短,微服务架构是未来软件软件架构朝着灵活性.扩展性.伸缩性以及高可用性发展的必然方向.同时,以Docker为代表的容器虚拟化技术的盛行,将大大降低微服务实施的成本,为微服务落地以及大规模使用提供了坚实的基础和保障. 微服务的诞生   微服务架构(Microservice Architect)是一种架构模式,它提倡将单块架构的应用划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟

工业防火墙架构与技术【第二节:硬件架构①】

1.3.   工控防火墙的体系架构 那么工控防火墙是如何设计来支撑其部署到工业生产环境中的?这就需要我们了解工控防火墙的架构,这包括两个方面:软件和硬件两部分.也就是防火墙运行在什么软件系统上以及防火墙安装的硬件平台. 软件和硬件架构是防火墙的骨骼,它决定了防火墙整体的工作水平和性能.一般而言,我们可以把常见的防火墙分为基于硬件防火墙.基于虚拟化架构的防火墙和基于软件的防火墙三类. l  基于硬件的防火墙在硬件方面一般采用了主流的三种架构:X86.ASIC和NP.ASIC和NP是专门设计的实现防

测试架构师修炼之道:3软件测试架构师的知识能力模型(一)

测试架构师修炼之道:3软件测试架构师的知识能力模型(一) 2016-08-15 测试架构师从事的并不是一项纯测试技术的工作,而是一门需要结合产品.沟通协调.书面表达等综合性的艺术,如图1所示. 图1 软件测试架构师需具备的能力 从测试技术来说,软件测试架构师需具备的测试技术能力: 软件产品质量模型 测试类型 测试方法 探索式测试 自动化测试 目录 1 软件产品质量六属性  1.1 功能性  1.2 可靠性  1.3 可移植性2 测试类型3 测试方法  3.1 产品测试车轮图  3.2 功能测试方