Puppet学习之puppet的安装和配置

一、Puppet简介

Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理。Puppet适用于服务器管的整个过程 ,比如初始安装、配置更新以及系统下线。

二、Puppet的安装

Puppet的安装方式支持源码安装、yum安装以及ruby的gem安装。官网推荐使用yum来安装puppet,方面以后的升级、管理、维护。Centos可以采用yum来安装,但是Centos的默认源中没有puppet包,因此需要先安装epel包。Epel是企业版Linux附加软件包(Extra Packages for Enterprise Linux)的缩写,是一个由特别兴趣小组创建、维护并管理的,针对红帽企业版Linux(RHEL)及其衍生发行版(比如CentOS、Scientific Linux)的一个高质量附加软件包项目。

  1. Master的安装

yum -y install ruby ruby-libs ruby-shadow

wget ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm

rpm -Uvh epel-release-5-3.noarch.rpm

yum -y install puppet puppet-server facter

  1. Agent的安装

yum install ruby ruby-libs ruby-shadow

wget ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm

rpm -Uvh epel-release-5-3.noarch.rpm

yum -y install puppet facter

 

至此如果安装过程不报错的话,puppet已经安装成功了。

三、Puppet的简单配置

  1. Master的配置

先来看看puppet主目录下都有什么文件已经每个文件是做什么用的:

ls -1 /etc/puppet/

auth.conf       #定义puppet master的acl文件

fileserver.conf   #定义puppet master文件服务器的配置文件

manifests        #puppet脚本主文件目录,site.pp文件必须存在

modules            #puppet模块目录

puppet.conf     #puppet主配置文件

ssl                     #存放ssl证书的目录

刚开始的话, puppet.conf不需要配置就可以满足。

需要更改hosts文件,注意hosts要和主机名对应。

vim  /etc/hosts添加如下内容:

10.1.4.218 puppet.zhang.com puppet

10.1.4.213 node1.zhang.com node1

10.1.4.214 node2.zhang.com node2

大家要根据实际情况加,我这里是一个master,两个agent。

  1. Agent的配置

Agent的配置主要是更改agent上的/etc/puppet/puppet.conf文件的[agent]部分。

在agent上vim /etc/puppet/puppet.conf 添加如下配置

server = puppet.zhang.com        #master服务器的地址

runinterval = 3600                       #每隔多久的时间进行自动更新,时间单位为秒

listen = true                         #客户端作为一个服务进行监听,允许其它的机器触发puppet运行允许远程触发puppet的节点配置

 

四、puppet的启动和停止

  1. Master的启动和停止

Master的启动

/etc/rc.d/init.d/puppetmaster start

也可以以采用 service puppetmaster start启动

第一次启动建议采用puppet master –verbose –no-daemonize方式启动,有助于测试和调试错误,如果采用后面这种方式,你可以看到启动的整个过程,启动过程会做一些初始化的工作,为master创建本地证书认证中心,证书和key。并打开socket等待client的连接。你可以在/etc/puppet/ssl目录看到相关的文件和目录。

Master的停止

/etc/rc.d/init.d/puppetmaster stop

也可以以采用 service puppetmaster stop停止

更改多选项可以使用/etc/rc.d/init.d/puppetmaster –h查看

  1. Agent的启动和停止

Agent的启动

/etc/rc.d/init.d/puppet start

也可以采用service puppet start来启动

调试的时候可以采用

puppet agent –server=puppet.zhang.com –no-daemonize –verbose

的方式来启动,这样启动我们可以看到agent是如何和master建立连接的。

Agent的停止

/etc/rc.d/init.d/puppet stop

也可以采用service puppet stop来停止。

 

五、FAQ

  1. 连接master的时候出现如下报错:

dnsdomainname: Unknown host

解决办法:检查机器主机名的设置,以及是否添加进hosts。

  1. 连接master的时候出现如下报错:

err: Could not request certificate: getaddrinfo: Name or service not known

解决办法:服务器端没有配置hosts域名绑定,在hosts中添加。

  1. 连接master的时候出现如下报错:

warning: peer certificate won’t be verified in this SSL session

解决办法:服务端还没有返回签发证书,使用puppet cert –list查看

  1. 连接master的时候出现如下报错:

err: Could not retrieve catalog from remote server: certificate verify failed

解决办法:客户端和服务器端时间不同步,SSL连接需要依赖主机上的时间是否正确。执行更新时间的命令:/sbin/ntpdate asia.pool.ntp.org

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87564

(0)
上一篇 2017-09-25 10:50
下一篇 2017-09-25 14:58

相关推荐

  • 计算机的组成部分

    运算器:负责数据的运算和逻辑运算。 存储器:实现记忆功能的部件用来存放计算程序及参与运算的各种数据。 控制器:负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问。 输入设备:实现计算程序和原始数据的输入。 输出设备:实现计算结果输出。

    Linux干货 2017-08-19
  • N28-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
    2、取出最后登录到当前系统的用户的相关信息。
    3、取出当前系统上被用户当作其默认shell的最多的那个shell。
    4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
    7、显示/var目录下一级子目录或文件的总个数。
    8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
    9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)、创建组distro,其GID为2016;
    (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
    (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
    (4)、给用户mageia添加密码,密码为mageedu;
    (5)、删除mandriva,但保留其家目录;
    (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    (7)、修改slackware的默认shell为/bin/tcsh;
    (8)、为用户slackware新增附加组admins;

    Linux干货 2017-12-19
  • 网卡别名及多网卡配置

    网卡别名 对于要在不同网段环境中使用的设备有很大的帮助。     要使用网卡别名首先要关闭NetworkManager这个服务,防止在后续操作中引起不必要的冲突。 [root@laodeng6 ~]# chkconfig NetworkManager off [root@laod…

    Linux干货 2016-09-06
  • Linux设备驱动Hello World程序介绍

    by Valerie Henson07/05/2007 (译者注:本文的例子是只能在linux的2.6内核下使用的,2.6以上的内核,译者没有做过实验,2.4是要修改make文件才能运行。) 本文的出处:这里 自古以来,学习一门新编程语言的第一步就是写一个打印“hello world”的程序(可以看《hello world 集中营》这个帖子供罗列了300个“…

    Linux干货 2015-04-01
  • 第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 目录管理类命令: cd:变更目录   命令格式:cd [DIRECTORY] pwd:显示当前目录的绝对路径 ls:显示文件或目录内容     命令格式:ls [OPTION]… [FILE]… &…

    Linux干货 2017-01-08
  • 记一次CentOS7内核kernel的删除重装

    人生在于折腾,学习Linux更要多多折腾。在一次折腾中吸取教训,更易于记忆。 今天我们来折腾Linux的内核:删除系统内核后,通过光盘进行kernel的重安装。 友情提示:请在虚拟机环境进行,折腾前务必做好系统快照。慎重! 环境 本次系统环境是如下图: 删除 我们先到/boot目录下,强制删除kernel文件: 重启PC,此时系统报错找不到内核文件,无法登录…

    Linux干货 2016-08-24