【Puppet】安装配置Puppet

简介: 【Puppet】安装配置Puppet

二、Puppet介绍

Puppet是IT自动化的行业标准。 以一种简单而强大的方式管理和自动化更多的基础架构和复杂的工作流。


三、Puppet安装

安装准备

master和node端

# 修改主机名
hostnamectl set-hostname master
#配置域名解析
 vim /etc/hosts
192.168.200.11  master
192.168.200.12  node
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭SELinux安全模式
setenforce 0
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
#配置时间同步
yum install -y ntpdate
ntpdate ntp1.aliyun.com
#配置CentOS镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
#更新YUM源
yum clean all
yum makecache
#升级系统
yum update


安装master端

安装、配置并使用Puppet | Puppet运维实战

https://puppet.com/

# 安装阿里云仓库
rpm -ivh https://mirrors.aliyun.com/puppet/yum/puppetlabs-release-el-7.noarch.rpm
# 安装Puppet-server、puppet和facter
yum install -y puppet puppet-server facter
# 备份配置文件
cp /etc/puppet/puppet.conf{,.bak} 
# 配置puppet.conf
[root@master puppet]# vim puppet.conf
[root@master puppet]# cat puppet.conf
[main]
    # The Puppet log directory.
    # The default value is '$vardir/log'.
    logdir = /var/log/puppet
    # Where Puppet PID files are kept.
    # The default value is '$vardir/run'.
    rundir = /var/run/puppet
    # Where SSL certificates are kept.
    # The default value is '$confdir/ssl'.
    ssldir = $vardir/ssl
[agent]
    # The file in which puppetd stores a list of the classes
    # associated with the retrieved configuratiion.  Can be loaded in
    # the separate ``puppet`` executable using the ``--loadclasses``
    # option.
    # The default value is '$confdir/classes.txt'.
    classfile = $vardir/classes.txt
    # Where puppetd caches the local configuration.  An
    # extension indicating the cache format is added automatically.
    # The default value is '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = master
    certname = node
[master]
    certname = master
[root@master puppet]# 
# 启动puppetmaster服务
systemctl start puppetmaster
systemctl enable puppetmaster
systemctl status puppetmaster
# 查看本地证书情况
# puppetmaster第一次启动会自动生成证书自动注册自己
[root@master puppet]# tree /var/lib/puppet/ssl/
/var/lib/puppet/ssl/
├── ca
│   ├── ca_crl.pem
│   ├── ca_crt.pem
│   ├── ca_key.pem
│   ├── ca_pub.pem
│   ├── inventory.txt
│   ├── private
│   │   └── ca.pass
│   ├── requests
│   ├── serial
│   └── signed
│       └── master.pem
├── certificate_requests
├── certs
│   ├── ca.pem
│   └── master.pem
├── crl.pem
├── private
├── private_keys
│   └── master.pem
└── public_keys
    └── master.pem
9 directories, 13 files
[root@master puppet]# 
# 查看监听状态
# puppetmaster服务开启后,默认监听TCP 8140端口
[root@master puppet]# netstat -nlatp | grep 8140
tcp        0      0 0.0.0.0:8140            0.0.0.0:*               LISTEN      1396/ruby 
[root@master puppet]# lsof -i:8140
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
puppet  1396 puppet    8u  IPv4  24447      0t0  TCP *:8140 (LISTEN)


安装node端

# 安装准备步骤相同
# 安装阿里云仓库
rpm -ivh https://mirrors.aliyun.com/puppet/yum/puppetlabs-release-el-7.noarch.rpm
# 安装puppet和facter
yum install puppet facter
# 配置puppet.conf
[root@node ~]# cp /etc/puppet/puppet.conf{,.bak}  #备份配置文件
[root@node ~]# cat /etc/puppet/puppet.conf    
[main]
    # The Puppet log directory.
    # The default value is '$vardir/log'.
    logdir = /var/log/puppet    #默认日志存放路径
    # Where Puppet PID files are kept.
    # The default value is '$vardir/run'.
    rundir = /var/run/puppet    #pid存放路径
    # Where SSL certificates are kept.
    # The default value is '$confdir/ssl'.
    ssldir = $vardir/ssl      #证书存放目录,默认$vardir为/var/lib/puppet
[agent]
    # The file in which puppetd stores a list of the classes
    # associated with the retrieved configuratiion.  Can be loaded in
    # the separate ``puppet`` executable using the ``--loadclasses``
    # option.
    # The default value is '$confdir/classes.txt'.
    classfile = $vardir/classes.txt
    # Where puppetd caches the local configuration.  An
    # extension indicating the cache format is added automatically.
    # The default value is '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = master   #指向puppetmaster端
    certname = node   #设置自己的certname名
# 开启puppet服务
systemctl start puppet
systemctl enable puppet


Node端向Master端发起认证

# 通过调试模式启动节点向Puppetmaster端发起认证
[root@node ~]# puppet agent --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for node
Info: Applying configuration version '1645352953'
Notice: Finished catalog run in 0.01 seconds
# 服务器端确定认证
[root@master ~]# puppet cert --list --all #查看认证情况
  "node"   (SHA256) 6F:FC:CF:DB:1F:F1:B4:91:C7:8B:48:DE:64:A1:8D:D9:24:27:4B:B9:A9:72:5C:0E:6D:3F:A3:0B:B7:37:87:AE #未认证
+ "master" (SHA256) 87:C4:5B:16:2A:13:E1:D0:B0:58:63:2F:F1:87:98:6D:B6:A4:5D:9B:65:92:D8:72:38:45:FF:2A:18:FD:BA:41 #带+表示已经注册成功
[root@master ~]#
[root@master ~]# puppet cert --sign node  #注册node
Notice: Signed certificate request for node
Notice: Removing file Puppet::SSL::CertificateRequest node at '/var/lib/puppet/ssl/ca/requests/node.pem'
[root@master ~]#
[root@master ~]# puppet cert --list --all   #再次查看认证情况
+ "master" (SHA256) 87:C4:5B:16:2A:13:E1:D0:B0:58:63:2F:F1:87:98:6D:B6:A4:5D:9B:65:92:D8:72:38:45:FF:2A:18:FD:BA:41
+ "node"   (SHA256) 35:B1:01:AA:28:DF:76:AA:B2:67:BE:D4:5C:C1:90:3C:C2:68:44:9A:BA:F3:DD:96:2B:37:6E:9E:85:11:E3:E1
[root@master ~]# tree /var/lib/puppet/ssl/  #另外一种查看认证的方式
/var/lib/puppet/ssl/
├── ca
│   ├── ca_crl.pem
│   ├── ca_crt.pem
│   ├── ca_key.pem
│   ├── ca_pub.pem
│   ├── inventory.txt
│   ├── private
│   │   └── ca.pass
│   ├── requests
│   ├── serial
│   └── signed
│       ├── master.pem
│       └── node.pem
├── certificate_requests
│   └── node.pem
├── certs
│   ├── ca.pem
│   ├── master.pem
│   └── node.pem
├── crl.pem
├── private
├── private_keys
│   ├── master.pem
│   └── node.pem
└── public_keys
    ├── master.pem
    └── node.pem
9 directories, 18 files
相关文章
|
传感器 数据采集 物联网
STM32:高性能微控制器与广泛的应用领域
STM32:高性能微控制器与广泛的应用领域
1272 0
|
10月前
|
机器学习/深度学习 编解码 算法
空间转录组: 反卷积
空间转录组: 反卷积
空间转录组:  反卷积
|
人工智能 JSON Java
列表结构与树结构转换分析与工具类封装(java版)
本文介绍了将线性列表转换为树形结构的实现方法及工具类封装。核心思路是先获取所有根节点,将其余节点作为子节点,通过递归构建每个根节点的子节点。关键在于节点需包含 `id`、`parentId` 和 `children` 三个属性。文中提供了两种封装方式:一是基于基类 `BaseTree` 的通用工具类,二是使用函数式接口实现更灵活的方式。推荐使用后者,因其避免了继承限制,更具扩展性。代码示例中使用了 Jackson 库进行 JSON 格式化输出,便于结果展示。最后总结指出,理解原理是进一步优化和封装的基础。
496 0
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
掌握从模型选型到部署优化的全流程
本文深入探讨了AI大模型的开发与应用,涵盖基础概念、模型架构、关键技术、训练方法、应用策略、评估优化及伦理安全七大核心内容。从人工智能的定义到深度学习、通用人工智能(AGI)的探索,再到Transformer架构、混合专家模型(MoE)等前沿技术,系统解析了构建智能系统的基石与工程效率的引擎。文章还介绍了提示工程、检索增强生成(RAG)、AI智能体等应用策略,强调了模型评估与优化的重要性,并探讨了AI伦理与安全的关键议题。适合希望全面了解AI大模型开发的技术人员与研究者参考。
725 0
|
中间件 编译器 开发工具
如何用易语言进行跨平台的软件开发?
如何用易语言进行跨平台的软件开发?
317 3
|
存储 安全 Unix
NFS身份验证
【10月更文挑战第14天】
1732 61
|
机器学习/深度学习 自然语言处理 计算机视觉
YOLOv8改进 | 2023 | 给YOLOv8换个RT-DETR的检测头(重塑目标检测前沿技术)
YOLOv8改进 | 2023 | 给YOLOv8换个RT-DETR的检测头(重塑目标检测前沿技术)
1268 0
|
存储 人工智能 NoSQL
【AI系统】LLVM IR 详解
本文深入探讨了LLVM IR(中间表示)的概念,解释了其在编译器中的重要性和作用。LLVM IR作为一种抽象程度适中的中间语言,不仅涵盖了源代码的大部分信息,还支持编译器进行灵活的代码优化。文章进一步解析了LLVM IR的三地址码表示及其优点,并通过具体示例展示了LLVM IR的设计原则和内存模型,帮助读者更好地理解编译器内部的工作机制。
756 5
|
存储 JSON 小程序
【小程序云开发】不用后端也能构建完整的微信小程序
本文介绍了如何从零开始学习和掌握微信小程序云开发,包括云函数、云数据库和HTTP触发等重要概念。通过详细的步骤和示例,读者将学会如何创建和部署云函数,以及如何使用云数据库来存储和管理小程序的数据。同时,本文还介绍了如何通过HTTP触发器实现小程序与外部API的数据交互,从而为小程序开发提供更灵活、高效的后端解决方案。无论您是初学者还是有一定经验的开发者,本文都将帮助您轻松掌握微信小程序云开发,并为您的小程序开发项目提供更多可能性。
3259 0
|
开发工具
修改IDEA的配置目录
修改IDEA的配置目录
1158 0