puppet的安装

官网使用rpm进行安装https://www.puppet.com/docs/puppet/8/system_requirements#system_requirements

1.在master和agent上都添加hosts解析,可以不使用host而使用ip,比较方便,不用每个agent都添加hosts

cat >> /etc/hosts <<EOF

10.12.20.13 kubernetes-dev-worker-7
10.38.0.44 jenkins-slave1

EOF

2.server及agent的安装

#下载rpm
1.wget https://yum.puppet.com/puppet8-release-el-7.noarch.rpm
#启用Puppet包存储库
2.rpm -U puppet8-release-el-7.noarch.rpm
#安装puppetserver
3.yum install puppetserver
4.同步ntp
ntpdate ntpserver.goldwind.com.cn

 agent安装

复制代码
#下载rpm
1.wget https://yum.puppet.com/puppet8-release-el-7.noarch.rpm
#启用Puppet包存储库
2.rpm -U puppet8-release-el-7.noarch.rpm
#安装agent
3.yum install puppet-agent
#添加环境变量
4.source /etc/profile.d/puppet-agent.sh
5.同步ntp
ntpdate ntpserver.goldwind.com.cn
 
复制代码

server修改配置文件

复制代码
 vim /etc/puppetlabs/puppet/puppet.conf 
[master]
certname = 10.12.20.13
server = 10.12.7.13
[server] 
vardir
= /opt/puppetlabs/server/data/puppetserver
logdir
= /var/log/puppetlabs/puppetserver
rundir
= /var/run/puppetlabs/puppetserver
pidfile
= /var/run/puppetlabs/puppetserver/puppetserver.pid
codedir
= /etc/puppetlabs/code
ssldir
= $confdir/ssl
certdir
= $ssldir/certs
cadir
= /etc/puppetlabs/puppetserver/ca

#启动puppetserver
4.systemctl start puppetserver
#刷新bash或重新开shell界面
5.exec bash
#测试版本
6.puppetserver -v
#开启自启动
7.systemctl start puppetserver
复制代码

agent修改配置文件,其中runinterval = 10为同步时间,单位为秒,默认的同步时间为30min

复制代码
vim /etc/puppetlabs/puppet/puppet.conf
[agent]
server = 10.12.20.13
certname = 10.12.20.14
report = true
runinterval = 10
#启动puppet-agent
systemctl start puppet
#开启puppet-agent自启动
systemctl enable puppet
 
复制代码

在agent执行,第一次执行会卡住

puppet ssl bootstrap

在server执行,会显示Successfully signed certificate request for 10.12.20.14

puppetserver ca sign --certname 10.12.20.14

在agent上再次执行,执行成功Notice: Completed SSL initialization。

puppet ssl bootstrap

在puppet查看agent状态

puppetserver ca list --all

状态看到有三种

Requested Certificates(已请求的证书):该状态表示有代理向 Puppet 服务器提交了证书请求,但服务器尚未对其进行签署。这意味着代理已经发送了证书签名请求,但服务器还没有对其进行批准。

Signed Certificates(已签署的证书):该状态表示代理的证书已经由 Puppet 服务器签署。这意味着服务器已经审查并接受了代理的证书请求,并生成了相应的签名证书。签署的证书将用于代理与 Puppet 服务器之间的身份验证和通信。

Authorization Extensions(授权扩展):该状态表示代理使用了针对 Puppet 服务器的身份验证扩展。这可能是由于服务器启用了额外的身份验证机制,需要代理进行授权才能成功连接和通信。

agent加入成功

如果想要取消agent注册的话,可以执行

#在agent
systemctl stop  puppet
mv /etc/puppetlabs/puppet/ssl{,_bak}
#在server
puppetserver ca clean --certname <agent_certname>

 执行脚本只有写在/etc/puppetlabs/code/environments/production/manifests中才能自动同步,写在别处的不能自动同步

 

 3.PuppetDB的安装

其中PuppetDB与pg数据库为一台服务器,而不在Pupper server服务器上,puppetdb8要求pg数据库14版本以上

启用rpm 地址库

 rpm -Uvh https://yum.puppet.com/puppet8-release-el-7.noarch.rpm

安装puppetdb

yum install puppetdb -y

还需要安装扩展pg_trgm,否则会报错

PuppetDB requires the PostgreSQL `pg_trgm` extension.

Jan 29 15:39:08 kubernetes-dev-worker-8 puppetdb[246292]: Please connect to the PuppetDB database and run this:
Jan 29 15:39:08 kubernetes-dev-worker-8 puppetdb[246292]: CREATE EXTENSION pg_trgm;

安装pg_trgm

复制代码
#查找安装包

yum search contrib

#安装对应版本

yum install postgresql12-contrib.x86_64

#在pg中安装扩展并给puppetdb使用

psql puppetdb -c 'create extension pg_trgm'

#查看扩展
psql
select * from pg_extension;
复制代码

配置 PuppetDB:

编辑 PuppetDB 的连接配置文件(通常位于 /etc/puppetlabs/puppetdb/conf.d/database.ini)

复制代码
vim /etc/puppetlabs/puppetdb/conf.d/database.ini

#设置以下配置项来指定与 PostgreSQL 数据库的连接信息:

[database]
classname = org.postgresql.Driver
subprotocol = postgresql
subname = //puppetdb-server-ip:5432/puppetdb
username = puppetdb
password = your_password_here
复制代码

将 puppetdb-server-ip 替换为实际的 PuppetDB 服务器 IP 地址。subname 参数指定了连接的数据库的地址和名称, PostgreSQL 数据库和 PuppetDB 服务都在同一台服务器上,所以使用本地 IP 地址和默认端口 5432,并且数据库名称是 puppetdbusername 和 password 参数指定了连接数据库所需的用户名和密码。保存并退出配置文件。

启动 PuppetDB 服务并设置开机自启:

sudo systemctl start puppetdb
sudo systemctl enable puppetdb

编辑 Puppet Server 的配置文件(通常位于 /etc/puppetlabs/puppet/puppet.conf)

vim /etc/puppetlabs/puppet/puppet.conf
#在 [main] 部分添加以下内容以指定 PuppetDB 的连接信息:
[main]
server = puppetdb-server-ip

重启puppet server

systemctl restart puppetserver

 日志在/var/log/puppetlabs/

posted @   潇潇暮鱼鱼  阅读(202)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示