• puppet安装配置及使用


     puppet安装前准备

    一、服务器信息

    master端:10.10.10.201 master.fansik.com

    slave端:10.10.10.156 slave.fansik.com

    三台机器关闭selinux,清空iptables规则。

    二、修改三台机器的配置文件文件

    修改三台服务器的主机名(永久修改,重启后生效)

    # vim /etc/sysconfig/network

    master端:master.fansik.com

    slave端:slave.fansik.com

    # vim /etc/hosts

    添加如下内容:

    10.10.10.201 master.fansik.com

    10.10.10.156 slave.fansik.com

    三、安装ntpdate,并建立自动同步时间的任务计划

    # yum -y install ntpdate

    # crontab -e

    */10 * * * * ntpdate time.windows.com > /dev/null 2>&1

    puppet安装及配置使用

    一、puppet服务端安装

    master端:10.10.10.201 master.fansik.com

    安装puppet源

    # rpm -ivh 'http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm'

    安装服务端程序

    # yum -y install puppet-server

    启动服务

    # /etc/init.d/puppetmaster start

    设置开机自启动

    # chkconfig puppetmaster on

    查看puppet的端口

    # ss -tlunp | grep puppet

    可以看到puppet的默认端口号是8140

    二、puppet客户端安装

    slave端:10.10.10.156 slave.fansik.com

    安装puppet源

    # rpm -ivh 'http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm'

    安装客户端程序

    # yum -y install puppet

    修改配置文件在最后加入

    # vim /etc/puppet/puppet.conf

    在最后加入

    listen = true

    server = master.fansik.com

    runinterval = 30   #主动更新,每隔30s

    启动服务

    # /etc/init.d/puppet start

    设置开机自启动

    # chkconfig puppet on

    三、配置认证

    服务端查看客户端证书列表

    # puppet cert list --all #如果签发的证书,行前会有+号

    客户端上生成ssl证书

    # puppet agent --test --server master.fansik.com

    服务端签发指定客户端证书

    # puppet cert sign slave.fansik.com

    服务端可以删除指定客户端证书

    puppet cert clean slave.fansik.com

    删除所有证书

    puppet cert clean --all

    四、配置自动签发证书

    服务端删除客户端证书

    # puppet cert clean --all

    编辑服务端配置文件在[main]标签中添加autosign = true打开自动签名功能

    # vim /etc/puppet/puppet.conf

    autosign = true

    编辑# vim /etc/puppet/autosign.conf加入如下内容:

    *.fansik.com

    客户端删除ssl相关文件

    # rm -rf /var/lib/puppet/ssl/*

    重启服务端puppetmaster服务

    重启客户端puppet服务

    查看是否签名成功

    # puppet cert list --all

    如果客户端不重启puppet服务,也可以通过命令来自动签发

    # puppet agent --test --server master.fansik.com

    五、测试证书

    服务端编辑配置文件

    # vim /etc/puppet/manifests/site.pp添加如下内容

    node default {

                        file{"/tmp/123.txt":

                         content=>"test,test";

                                 }

    }

    说明:如果不配置该文件,则客户端不会同步任何数据

    客户端上稍等一会(每隔30s会自动执行服务端上的任务),或者直接命令行:

    # puppet agent --test --server master.fansik.com

    这样在客户端的/tmp/下会有个123.txt文件,内容为test,test

    六、puppet配置模块

    1、定义模块管理

    模块是puppet的配置单元,模块里面会包含类和资源。同步文件、远程执行命令、cron等叫做资源,都是通过模块来实现的。

    服务端创建目录mkdir /etc/puppet/modules/testm这个目录名字也可作为模块名字,然后继续创建模块对应的子目录mkdir /etc/puppet/modules/testm/{files,manifests,templates}files里面存文件,可以留空,manifests里面是配置文件,templates里面是模块文件可以为空

    # vim /etc/puppet/manifests/site.pp

    $puppetserver='master.fansik.com'

    node 'slave.fansik.com' {

        include testm

    }

    配置完成后,在客户端执行命令:

    # puppet agent --test --server=master.fansik.com

    如果客户端上启动了puppet服务,不用执行这命令,它也会自动同步的。

    创建配置文件vim /etc/puppet/modules/testm/manifests/init.pp

    内容为:

    class testm{

        file{"/tmp/1.txt":

        owner => "root",

        group => "root",

        mode => 0400,

        source => "puppet://$puppetserver/modules/testm/123.txt"

        }  

    }

    说明:类名字也叫作testm,类下面定义了一个资源file,文件名字叫做/tmp/1.txt,owner,group,mode定义文件属主、属组以及权限,source定义这个文件从哪里获取。$puppetserver一会也要定义一下,这里只的是puppetserver服务器上的/etc/puppet/modules/testm/files/123.txt

    七、puppet文件或目录资源

    1、在/etc/puppet/modules下面创建模块的名字,比如叫apahce

    2、去/etc/puppet/manifests目录下的site.pp文件中引用创建的模块

    $puppetserver='master.fansik.com'

    node 'slave.fansik.com' {

        include apache

    }

    3、去编辑/etc/puppet/modules/apache/manifests目录下的init.pp文件设置同步选项

    class apache {

        file {"/usr/local/apache2":

        owner => "root",

        group => "root",

        source => "puppet://$puppetserver/modules/apache/apache2",

        recurse => true,

        purge => true,

        }

    }

    八、puppet远程执行命令

    exec {"fansik":

            unless => "test -f /tmp/fansik.txt",

            path => ["/bin","/sbin","/usr/bin","/usr/sbin"],

            command => "touch /tmp/fansik.txt",

        }

    说明:fansik是资源的名字,unless后面的命令作为一个条件,当条件成立时,不会执行下面的命令,如果想要条件成立时,执行下面的命令,用onlyif。要注意的是,我们一定要给执行这条命令加个条件,使用unless就可以,必须满足这个条件才能执行命令,否则这个命令会一直执行下去,不太妥当。

    九、puppet配置cron

    cron {"fansik":

            command => "/sbin/ntpdate time.windows.com",

            user => "root",

            minute => "*/10",

            monthday => "10-15",

            ensure => "absent",

        }

    说明:分时日月周分别对应puppet里面的minute,hour,monthday,month,weekday,ensure设置为absent为删除该任务,如果不设置改行则为建立

  • 相关阅读:
    二分练习题4 查找最接近的元素 题解
    二分练习题5 二分法求函数的零点 题解
    二分练习题3 查找小于x的最大元素 题解
    二分练习题2 查找大于等于x的最小元素 题解
    二分练习题1 查找元素 题解
    code forces 1176 D. Recover it!
    code forces 1173 B. Nauuo and Chess
    code forces 1173 C. Nauuo and Cards
    吴恩达深度学习课程笔记-15
    吴恩达深度学习课程笔记-14
  • 原文地址:https://www.cnblogs.com/fansik/p/5509376.html
Copyright © 2020-2023  润新知