CentOS6.9安装Foreman1.10+Puppet

CentOS6.9安装Foreman1.10+Puppet

  • 安装puppet yum源:

  • yum -y install http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm

  • 安装EPEL与Foreman yum源:

  • yum -y install epel-release http://yum.theforeman.org/releases/1.10/el6/x86_64/foreman-release.rpm

  • 安装foreman-installer

  • yum –y install foreman-installer

    CentOS6.9安装Foreman1.10+Puppet_第1张图片

    提示确实rubygem-mine-types包,原因是el6的EPEL yum源中把这个包给去掉了,el7的EPEL yum源中有,但是用不了(垃圾)。到https://apps.fedoraproject.org/packages/ 里找

    CentOS6.9安装Foreman1.10+Puppet_第2张图片

    CentOS6.9安装Foreman1.10+Puppet_第3张图片

    CentOS6.9安装Foreman1.10+Puppet_第4张图片

    下载fedora24的能用。

    CentOS6.9安装Foreman1.10+Puppet_第5张图片

    下载后安装

    以后EPEL yum源上没有的包都从这个网站下载fedora24的(还有几个没有的包,万恶的EPEL源)

  • 修改hostname,默认的localhost.localdomain不行

    vi /etc/sysconfig/network

  • 使用foreman-installer安装foreman

  • foreman-installer --verbose --foreman-admin-username=admin --foreman-admin-password="12345678" --enable-foreman --enable-foreman-cli --enable-foreman-plugin-bootdisk --enable-foreman-plugin-setup --enable-foreman-proxy --enable-puppet --foreman-db-adapter=mysql2 --foreman-db-type=mysql --foreman-environment=production --foreman-version=present --foreman-proxy-tftp=false --foreman-configure-epel-repo=true  --foreman-proxy-register-in-foreman=true

    安装时间较长,半小时或更长。

    安装完成后有如下报错

    CentOS6.9安装Foreman1.10+Puppet_第6张图片

    解决方法:

    gem install sinatra

    CentOS6.9安装Foreman1.10+Puppet_第7张图片

    这个错误没找到原因,但不影响使用。

  • 登录foreman

  • CentOS6.9安装Foreman1.10+Puppet_第8张图片

    CentOS6.9安装Foreman1.10+Puppet_第9张图片

  • 添加foreman-proxy

    CentOS6.9安装Foreman1.10+Puppet_第10张图片

  • CentOS6.9安装Foreman1.10+Puppet_第11张图片

    CentOS6.9安装Foreman1.10+Puppet_第12张图片

  • 使用Puppet run推送,配置方法(有bug官网已经放弃puppet run)

    在puppet客户端中设置vi /etc/puppet/puppet.conf

    在[agent]下配置listen = true

  • CentOS6.9安装Foreman1.10+Puppet_第13张图片

     

    重启puppet客户端 service puppet restart

    用netstat –lntp查看系统是否在监听8139端口

    CentOS6.9安装Foreman1.10+Puppet_第14张图片

    如果没有监听8139端口查看puppet.conf配置文件中是否有port = 8140标注或删除掉,重启puppet服务后再用netstat –lntp查看。

    修改vi /etc/sysconfig/puppet中

    CentOS6.9安装Foreman1.10+Puppet_第15张图片

    PUPPET_SERVER=你对应的puppetmaster主机名,并删除标注。

    在/etc/puppet目录中创建或修改namespaceauth.conf文件,在文件中添加内容

    [puppetrunner]

    allow *

    修改/etc/puppet/auth.conf

    在最下方

    path /

    auth any

    的上方(注意位置)

    添加

    #puppetrun

    path /run

    method save

    allow *

    CentOS6.9安装Foreman1.10+Puppet_第16张图片

    重启puppet服务

    service puppet restart

     

    在puppetmaster的foreman右上角的管理->设置->puppet中修改puppetrun为true

    CentOS6.9安装Foreman1.10+Puppet_第17张图片

     

    修改puppetmaster服务器端

    vi /etc/foreman-proxy/settings.d/puppet.yml

    :puppet_provider: puppetrun

    取消标注

    CentOS6.9安装Foreman1.10+Puppet_第18张图片

    重启foreman-proxy

    service foreman-proxy restart

     

    使用foreman主机中的“运行puppet”对puppet客户端进行推送。(这里有BUG只能推送两次,第三次就报错,需要重启客户端puppet服务后才能使用,两次后问题依旧)

    CentOS6.9安装Foreman1.10+Puppet_第19张图片

    日志在/var/log/messages中。

     

  • Foreman结合mcollective+rabbitMQ完成puppet push(推动作,强烈推荐,比puppetrun好用)。

    在安装前,先安装好puppet与epel yum源

    安装rubbitMQ

    yum install rabbitmq-server erlang

    service rabbitmq-server start

  • 如出现启动不了报错,需要查看日志

    cat /var/log/rabbitmq/startup_log

    出现这个错误需要修改/etc/hosts

    把hostname的第一个“.”前的名称(不是全域名)加到hosts中的127.0.0.1下

    CentOS6.9安装Foreman1.10+Puppet_第20张图片

    再启动rabbitMQ-server

    service rabbitmq-server start

    CentOS6.9安装Foreman1.10+Puppet_第21张图片

    启动后,用netstat –lntp查看tcp5672端口处于监听状态

    创建软链接

    ln -s /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin/rabbitmq-plugins  /usr/sbin/rabbitmq-plugins

    ln -s /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin/rabbitmq-env  /usr/sbin/rabbitmq-env

     
    开启rabbitmq rabbitmq_stomp与rabbitmq_management插件
    rabbitmq-plugins enable rabbitmq_stomp rabbitmq_management
     

    创建rabbitmq.config配置文件,修改监听stomp端口为61613,注意格式

    vi
    /etc/rabbitmq/rabbitmq.config

    [

            {rabbitmq_stomp,[ {tcp_listeners, [61613]} ]}

    ].

    重启 rabbitmq-server

    service rabbitmq-server restart

    启动后,用netstat –lntp查看tcp61613端口处于监听状态

    CentOS6.9安装Foreman1.10+Puppet_第22张图片

    配置rabbitmq-server:

    删除guest用户

    rabbitmqctl delete_user guest

    本地下载rabbitmqadmin

    wget -P /usr/local/bin  http://localhost:15672/cli/rabbitmqadmin

    给rabbitmqadmin赋予可执行权限

    chmod 755 /usr/local/bin/rabbitmqadmin

    创建虚拟主机

    rabbitmqctl
    add_vhost /mcollective
    或者

    rabbitmqadmin declare vhost name=/mcollective

    创建rabbitmq用户并授权

    rabbitmqadmin declare user name=mcollective password=12345678 tags=

    rabbitmqadmin declare user name=admin password=12345678 tags=administrator

    rabbitmqadmin declare permission vhost=/mcollective user=mcollective configure=‘.*’ write=‘.*’ read=‘.*’(注意,复制粘贴命令时引号重新打,你懂的,要不然到后面的授权过不去)

    rabbitmqadmin declare permission vhost=/mcollective user=admin configure=‘.*’ write=‘.*’ read=‘.*’ (注意,复制粘贴命令时引号重新打,你懂的,要不然到后面的授权过不去)

    查看权限命令

    rabbitmqctl list_permissions -p "/mcollective"

    CentOS6.9安装Foreman1.10+Puppet_第23张图片

     

    rabbitmqadmin declare exchange --user=admin --password=12345678 --vhost=/mcollective name=mcollective_broadcast type=topic

    rabbitmqadmin declare exchange --user=admin --password=12345678 --vhost=/mcollective name=mcollective_directed type=direct

    查看exchanges命令

    rabbitmqctl list_exchanges -p "/mcollective"

    CentOS6.9安装Foreman1.10+Puppet_第24张图片

    配置rabbitmq-server开机自动启动

    chkconfig --level 2345 rabbitmq-server on

    安装mcollective

    安装mcollective客户端作为控制端(注意,在puppetmaster主机上安装的是client客户端,puppet agent主机上安装的是server服务器端,与别的主机正好相反,有点别扭)。

    yum install mcollective-common  mcollective-client

    修改mcollective客户端配置文件

    vi / etc/mcollective/client.cfg
    main_collective = mcollective
    collectives = mcollective
    libdir = /usr/libexec/mcollective
    logger_type = console
    loglevel = warn
    # Plugins
    securityprovider = psk
    plugin.psk = 12345678
    # Rabbitmq Plugins
    direct_addressing = 1
    connector = rabbitmq
    plugin.rabbitmq.vhost = /mcollective
    plugin.rabbitmq.pool.size = 1
    plugin.rabbitmq.pool.1.host = 10.0.0.4  #本机的ip地址
    plugin.rabbitmq.pool.1.port = 61613
    plugin.rabbitmq.pool.1.user = mcollectiv  #与前面rabbitmq设置的帐号对应
    plugin.rabbitmq.pool.1.password = 12345678  #与前面rabbitmq设置的密码对应
    # Facts
    factsource = yaml
    plugin.yaml = /etc/mcollective/facts.yaml

    安装mcollectiv server端(在所有的puppet agent主机上安装mcollectiv server端)。
    yum install mcollective  mcollective-common

    修改mcollective服务器端配置文件

    vi /etc/mcollective/server.cfg
    main_collective = mcollective
    collectives = mcollective
    libdir = /usr/libexec/mcollective
    logfile = /var/log/mcollective.log
    loglevel = info
    daemonize = 1
    # Plugins
    securityprovider = psk
    plugin.psk = 12345678
    direct_addressing = 1
    connector = rabbitmq
    plugin.rabbitmq.vhost = /mcollective
    plugin.rabbitmq.pool.size = 1
    plugin.rabbitmq.pool.1.host = 10.0.0.4  #puppetmaster端的ip地址
    plugin.rabbitmq.pool.1.port = 61613
    plugin.rabbitmq.pool.1.user = mcollective  #与前面rabbitmq设置的帐号对应
    plugin.rabbitmq.pool.1.password = 12345678  #与前面rabbitmq设置的密码对应
    # Facts
    factsource = yaml
    plugin.yaml = /etc/mcollective/facts.yaml
     
    启动mcollective服务
    service mcollective start
     
    在所有的puppet agent主机上配置mcollective开机自动启动

    chkconfig --level 2345 mcollective on

    连通性测试

    在puppetmaster主机上使用mco ping命令测试

    CentOS6.9安装Foreman1.10+Puppet_第25张图片

    获取节点信息测试

    mco inventory 节点域名

    CentOS6.9安装Foreman1.10+Puppet_第26张图片

    在puppetmaster主机上安装mcollective
    puppet
    插件

    yum install mcollective-puppet-client mcollective-puppet-common 
     

    在所有puppet agent主机上安装mcollective
    puppet
    插件

    yum
    install mcollective-puppet-agent mcollective-puppet-common

    /etc/init.d/mcollective
    reload-agents

     

    在puppetmaster主机上查看mcollectiv puppet插件是否生效

    mco

    CentOS6.9安装Foreman1.10+Puppet_第27张图片

    使用mco查看puppet状态

    CentOS6.9安装Foreman1.10+Puppet_第28张图片

    开启foreman中的puppet run

    在puppetmaster的foreman右上角的管理->设置->puppet中修改puppetrun为true

    CentOS6.9安装Foreman1.10+Puppet_第29张图片

     

    在puppetmaster主机中配置foreman-proxy中的puppet_provider为mcollective,并去掉puppet_provider前面的标注

    vi /etc/foreman-proxy/settings.d/puppet.yml

    CentOS6.9安装Foreman1.10+Puppet_第30张图片

    在puppetmaster主机中配置sudoer,添加mco命令

    chmod 660 /etc/sudoers.d/foreman-proxy

    vi /etc/sudoers.d/foreman-proxy

    foreman-proxy ALL = NOPASSWD : /usr/bin/puppet cert *, /usr/bin/mco puppet runonce *

    CentOS6.9安装Foreman1.10+Puppet_第31张图片

    chmod 440 /etc/sudoers.d/foreman-proxy

    重启foreman-proxy服务

    service foreman-proxy restart

    在foreman主机管理中使用“运行puppet”进行puppet推送

    CentOS6.9安装Foreman1.10+Puppet_第32张图片

     

    你可能感兴趣的:(CentOS6.9安装Foreman1.10+Puppet)