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,并且数据库名称是 puppetdb
。username
和 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/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?