1.Puppet部署应用

简介: 1.Puppet部署应用

Puppet部署应用简介:
puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。

Puppet工作方式:

puppet既可以在单机上使用,也可以以C/S结构使用.

在大规模使用puppet的情况下,通常使用C/S结构;在这种结构中puppet客户端是只运行puppet的服务器,puppet服务器端是只运行puppetmaster的服务器.

实验一:
全部主机:
部署环境:

wget https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabs-release-7-12.noarch.rpm
rpm -ivh puppetlabs-release-7-12.noarch.rpm
cd /etc/yum.repos.d
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

cat << EOF >> /etc/hosts
192.168.1.10 master.puppet.com
192.168.1.11 client01.puppet.com
192.168.1.12 client02.puppet.com
EOF

master:
安装并启动 Puppet 服务端

hostnamectl set-hostname master.puppet.com
bash
yum install -y puppet-server
systemctl start puppetmaster
systemctl enable puppetmaster

clien1和clien2:
安装 Puppet Client

hostnamectl set-hostname client01.puppet.com
hostnamectl set-hostname client02.puppet.com
bash
yum install -y puppet

修改客户端配置文件
在 /etc/puppet/puppet.conf 文 件 中 的 [main] 标 题 下 添 加 “server =
master.puppet.com”配置字段用于设置 Puppet Master 的域名

vim /etc/puppet/puppet.conf
#添加以下内容:
server = master.puppet.com

客户端申请注册
等待一会儿,可以按 Ctrl+C 结束,从服务器端查看到申请信息

puppet agent --server=master.puppet.com --no-daemonize --verbose

master:
Master 端查看申请注册的客户端

puppet cert --list

在 Master 上,将所有申请未注册的客户端进行注册

puppet cert sign --all

注册成功后,可以通过目录去查看已经注册的客户端
ll /var/lib/puppet/ssl/ca/signed/
Master 上创建需要的目录
cd /etc/puppet/
mkdir -p modules/ssh/{manifests,templates,files}
mkdir manifests/nodes
mkdir modules/ssh/files/ssh
chown -R puppet modules/
查看/etc/puppet/modules/ssh 目录下的结构
ll modules/ssh
创建模块配置文件 install.pp
vim /etc/puppet/modules/ssh/manifests/install.pp

添加以下内容:

class ssh::install{
package{ "openssh":
ensure => present,
}
}
创建模块配置文件 config.pp
vim /etc/puppet/modules/ssh/manifests/config.pp

添加以下内容:

class ssh::config{
file { "/etc/ssh/sshd_config":
ensure => present,
owner =>"root",
group =>"root",
mode =>"0600",
source =>"puppet://$puppetserver/modules/ssh/ssh/sshd_config",
require => Class["ssh::install"],
notify => Class["ssh::service"],
}
}
创建模块配置文件 service.pp
vim /etc/puppet/modules/ssh/manifests/service.pp

添加以下内容:

class ssh::service {
service {"sshd":
ensure=>running,
hasstatus=>true,
hasrestart=>true,
enable=>true,
require=>Class["ssh::config"]
}
}
创建模块主配置文件 init.pp
vim /etc/puppet/modules/ssh/manifests/init.pp

添加以下内容:

class ssh{
include ssh::install,ssh::config,ssh::service
}
此时,/etc/puppet/modules/ssh/manifests 目录下有四个文件
ll /etc/puppet/modules/ssh/manifests/
建立服务器端 ssh 统一维护文件
cp /etc/ssh/sshd_config /etc/puppet/modules/ssh/files/ssh/
chown -R puppet /etc/puppet/modules/ssh/files/ssh/
创建测试节点配置文件
vim /etc/puppet/manifests/nodes/ssh.pp

添加以下内容:

node 'client01.puppet.com'{
include ssh
}
node 'client02.puppet.com'{
include ssh
}
将测试节点载入 Puppet,即修改 site.pp
vim /etc/puppet/manifests/site.pp

添加以下内容:

import "nodes/ssh.pp"
修改服务端维护的 sshd_config 配置文件
vim /etc/puppet/modules/ssh/files/ssh/sshd_config

修改Port取消注释并改为9922

Port 9922

AddressFamily any

ListenAddress 0.0.0.0

ListenAddress ::

重新启动 Puppet Master 服务
systemctl restart puppetmaster

相关文章
|
1月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
54 3
|
11月前
|
弹性计算 网络安全 数据安全/隐私保护
通过计算巢部署 Puppet Enterprise 服务
Puppet Enterprise 是一款自动化软件,可帮助您和您的组织在管理 IT 基础设施的同时提高工作效率和敏捷性。 本文向您介绍如何开通计算巢上的 Puppet Enterprise 服务,以及部署流程和使用说明。
316 1
通过计算巢部署 Puppet Enterprise 服务
|
开发工具 数据安全/隐私保护 git
|
运维 网络协议 网络安全
自动化运维工具 puppet安装部署
Puppet部署与应用 前言:到目前为止,我们已经搭建了很多的服务器,每一台服务器都需要执行很多的命令,给我的感觉是实验不难,原理也好理解,就是命令太麻烦。如果只管理几台服务器,命令多点也没什么,但是如果管理着成百上千台服务器,可以想象一下,工作量将是多么的庞大。
1429 0
|
Web App开发 运维 应用服务中间件
|
网络协议 Linux Apache