puppet学习(一)

内容参考朱双印博主puppet,链接: https://www.zsythink.net/archives/185

1、master/agent模型下工作的puppet的工作流程。

在这里插入图片描述

2、单机模式 agent端工作流程

在这里插入图片描述

3、yum安装puppet ,puppet-server

环境centos7 。 26.136安装puppet v3.6(客户端)。 26.137安装puppet-server v3.8(服务端)
其中yum安装puppet-server有个坑。参考博客中使用了官方的http://yum.puppetlabs.com/ 的 http://yum.puppetlabs.com/puppet-release-el-7.noarch.rpm 。还是提示no package puppet-server available
在这里插入图片描述
最终处理方法参考:https://puppet.com/docs/puppet/3.8/install_el.html 。(好像没啥差别呢。。。都是同个rpm)

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm

4、单机模式运行pp清单,创建用户。

createUser.pp

user{'zsythink':
        name => zsythink,
        ensure => present,
}

执行:

#puppet apply --verbose --noop createUser.pp
puppet apply --verbose  createUser.pp

在这里插入图片描述
查看创建后的内容:
在这里插入图片描述

其中有个奇怪的现象。第一次执行的时候要耗时1分钟之久,执行多几次后能在3秒内完成。
在这里插入图片描述
在这里插入图片描述
第二个 createUser2.pp

user{'zsypuppet':
        ensure => present,
        uid => 700,
        shell => '/bin/csh',
        home => '/home/zsypuppet'
}

puppet apply --verbose createUser2.pp

5、 常用资源及其属性总结

具体属性解释请参考 https://www.zsythink.net/archives/363

puppet describe -l  #“命令,查看puppet中支持的所有资源。
puppet describe user  # 查询user资源的所有属性以及属性用法

#echo "123456" | openssl sha256

5.1 group资源

group资源的作用就是用来管理目标服务器上的组的。类似使用groupadd

#group.pp文件
group{"testgroup":
        ensure => present,
        gid => 2666,
        system => false,
}

 puppet apply --verbose group.pp

5.2 user资源

user资源就是用来管理目标服务器上的用户的,比如创建用户、修改用户、删除用户.

#user.pp 文件
user{'zsythink1':
        ensure => present,
        uid => 777,
        #gid => 777,
        groups => [
                zsy,
                testgroup,
        ],
        managehome => true,
        shell => '/bin/bash',
        password => 'e150a1ec81e8e93e1eae2c3a77e66ec6dbd6a3b460f89c1d08aecf422ee401a0',
        comment => 'wwwwww zsy think',
        expiry => '2222-12-12',
        system => true,
}

puppet apply --verbose user.pp

5.3 cron资源

cron资源的作用就是管理目标服务器上的定时任务的,作用相当于crontab命令

##cron.pp文件
cron{'zsycron':
        #name
        #ensure
        command => '/usr/bin/echo "123456" >> /root/shellDir/zsycron.txt',
        user => root,
        minute => '*/1',
}

puppet apply --verbose cron.pp

在这里插入图片描述

5.4 package资源 (yum安装 / rpm)

#package.pp内容
package{'tree':
        ensure => installed
        #allow_virtual=>true,
        #provider => rpm,
        #source => '/testdir/tree-1.5.3-3.el6.x86_64.rpm',
}


上面将provider属性与source属性都注释了,所以上例中使用的是yum的方式安装的tree软件包,
如果被管理服务器上并没有yum源,你又想要使用rpm包的方式安装tree包,那么provider与source属性都是不可省的。

5.5 service资源 (启动/重启nginx)

service资源的作用就是启动或停止目标服务器上的服务,service资源的常用属性如下。

#serviceNginx.pp内容:
service{'nginx':
        ensure => running,
        enable => true,
        start => '/srv/nginx/sbin/nginx',
        restart => '/srv/nginx/sbin/nginx -t && /srv/nginx/sbin/nginx -s  reload',

}

puppet apply --verbose serviceNginx.pp

在这里插入图片描述

5.6 file资源

file资源的功能比较丰富,它可以用来管理文件的内容、属主属组以及文件的权限,同时可以用它管理目录、链接文件。

#file.pp 内容:
#创建一个文件,被创建的文件为 /testdir/zsyfile,文件内容为content属性对应的值
file{"zsyfile":
	path => '/testdir/zsyfile',
	ensure => file,
	content => "this is a zsyfile content",
}
#复制/etc/fstab文件中的内容到/testdir/zsyfile1文件中,
#文件权限为600 ,属主属组均为 zsythink
file{"/testdir/zsyfile1":
	ensure => present,
	source => '/etc/fstab',
	owner => zsythink,
	group => zsythink,
	mode => 0600,

}

#复制 /testdir/abc目录中所有内容到 /testdir/dir目录下:
file{"/testdir/dir":
	ensure => directory,
	source => "/testdir/abc",
	recurse => true,
}

#注意,file资源不会自动创建父目录。上面三个例子中,需要 /testdir目录事先存在。
#可借助exec资源来完成文件夹的创建
#或者用如下方法,将目录父目录创建出来
file{[
	"/testdir/www",
	"/testdir/www/zsythink",
	"/testdir/www/zsythink/net",
     ]:
     ensure => directory,

}

#删除对应的目录,以及目录中所有内容
file{"/testdir/dd":
	ensure => absent,
	force => true,
}

#创建一个连接文件 /testdir/zsythink ,连接指向 /etc/fstab文件
file{"/testdir/zsylink":
	ensure => link,
	target => "/etc/fstab",
}

puppet apply file.pp

5.6 yumrepo资源

yumrepo资源的作用就是在被管理服务器上设置对应的yum源,常用属性如下

yumrepo{"163yum79":
        baseurl => "http://mirrors.163.com/centos/7.9.2009/os/x86_64/",
        gpgcheck => 0,
        #gpgkey
        enabled => 1,
}

5.7 exec资源

通过exec资源,可以在被管理服务器上执行对应的命令,exec资源的常用属性如下。

#该exec资源表示,当”/etc/fstab”文件存在时,在被管理服务器上执行”创建文件夹的命令”
exec{'mkzsydir':
        path => "/usr/local/sbin:/usr/local/bin:/bin:/usr/sbin:/usr/bin:/root/bin",
        onlyif => 'test -e /etc/fstab',
        command => 'mkdir -p /testdir/zsydir/www/zsythink/net',

}

END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值