• CentOS下puppet安装


    简介

    Puppet是开源的基于Ruby的系统配置管理工具,puppet是一个C/S结构, 当然,这里的C可以有很多,因此,也可以说是一个星型结构. 所有的puppet客户端同一个服务器端的puppet通讯. 每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息.

    工作流程

    (1)客户端puppetd调用facter,facter探测出主机的一些变量,例如主机名,内存大小,ip地址等。pupppetd 把这些信息通过ssl连接发送到服务器端;

    (2)服务器端的puppetmaster 检测客户端的主机名,然后找到manifest里面对应的node配置, 并对该部分内容进行解析,facter送过来的信息可以作为变量处理,node牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,语法检查,如果语法错误就报错。如果语法没错,就继续解析,解析的结果生成一个中间的“伪代码”,然后把伪代码发给客户端;

    (3)客户端接收到“伪代码”,并且执行,客户端把执行结果发送给服务器;

    (4)服务器端把客户端的执行结果写入日志。

    准备

    Master

    Agent

    系统

    Centos 6.6

    Centos 6.6

    ip(自设)

    192.168.2.40

    192.168.2.42

    主机名(自设)

    master.kisspuppet.com

    agent.kisspuppt.com

    安装

    Puppet 不在 CentOS 的基本源中,需要加入 PuppetLabs 提供的官方源:

    wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-1.noarch.rpm
    
    yum install puppetlabs-release-6-1.noarch.rpm
    
    yum update

    Master端

    yum install -y ruby facter puppet-server
    
     
    
    # 启动
    
    service puppet start
    
    service puppetmaster start
    
     
    
    # 设置开机自启动
    
    chkconfig  puppet on
    
    chkconfig  puppetmaster on

    Agent端

    yum install -y ruby facter puppet
    
     
    
    启动
    
    service puppet start
    
     
    
    设置开机自启动
    
    chkconfig  puppet on
    
     
    
    配置
    
    vim /etc/puppet/puppet.conf
    
    添加下面一行
    
    server=master.kisspuppet.com
    
    重启puppet
    
    service puppet restart

    Agent申请证书

    Master自动签发证书设置    

    设置master自动签发所有的证书,我们只需要在/etc/puppet目录下创建 autosign.conf文件。(不需要修改 /etc/puppet/puppet.conf文件,因为我默认的autosign.conf 文件的位置没有修改)

    [ root @ master   ~ ] #   cat   >   / etc / puppet / autosign . conf   < < EOF  
    
    >   * . redking . com
    
    >   EOF
    
    [ root @ master   ~ ] #   service   puppetmaster   restart  
    
    Stopping   puppetmaster:                                                                           [     OK     ]
    
    Starting   puppetmaster:                                                                           [     OK     ]
    
    [ root @ master   ~ ] #

    这样就会对所有来自fisteam2.com的机器的请求,都自动签名。Agent需要向服务器端发出请求, 让服务器对客户端进行管理. 这其实是一个证书签发的过程. 第一次运行 puppet 客户端的时候会生成一个 SSL 证书并指定发给 Puppet 服务端, 服务器端如果同意管理客户端,就会对这个证书进行签发,可以用这个命令来签发证书,由于我们已经在客户端设置了server地址,因此不需要跟服务端地址

    Agent向Master请求认证

    输入下列命令就可以申请证书了

    [ root @ agent1   ~ ] #   puppet   agent   --test

    由于我配置的自动签发证书,所以直接就签发了,在服务端执行下列命令进行查看是否认证成功。

    [ root @ master   ~ ] #   puppet cert list --all

    测试

    现在可以在服务端写个小例子来测试一下。这个例子作用很简单,用来在客户端的 /tmp 目录下新建一个 helloworld.txt 文件,内容为 hello, world. 在Master端编写代码:

    # vi /etc/puppet/manifests/site.pp
    
    node default {
    
            file {
    
                    "/tmp/helloworld.txt": content => "hello, world";
    
            }
    
    }

    在Agent端上执行 puppet,运行成功后会在 /tmp 看到新生成的 helloworld.txt:

    $ puppet agent --test --server=master.vpsee.com
    
    warning: peer certificate won't be verified in this SSL session
    
    info: Caching certificate for client.vpsee.com
    
    info: Caching certificate_revocation_list for ca
    
    info: Caching catalog for client.vpsee.com
    
    info: Applying configuration version '1330668451'
    
    notice: /Stage[main]//Node[default]/File[/tmp/helloworld.txt]/ensure: defined content as '{md5}e4d7f1b4ed2e42d15898f4b27b019da4'
    
    info: Creating state file /home/vpsee/.puppet/var/state/state.yaml
    
    notice: Finished catalog run in 0.03 seconds

    查看Agent端

    $ cat /tmp/helloworld.txt
    
    hello, world

    这样就说明puppet能够正常运行。

  • 相关阅读:
    iOS开发UI篇—核心动画(转场动画和组动画)
    iOS开发UI篇—核心动画(关键帧动画)
    iOS开发UI篇—核心动画(基础动画)
    iOS开发UI篇—核心动画简介
    iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
    iOS开发UI篇—控制器的View的创建
    iOS开发UI篇—控制器的创建
    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
    java微信小程序参数二维码生成带背景图加字体(无限生成)
    EXCEL数据读取解析多个sheet
  • 原文地址:https://www.cnblogs.com/MacoLee/p/6305471.html
Copyright © 2020-2023  润新知