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

相关文章
|
运维
【Puppet】安装配置Puppet
【Puppet】安装配置Puppet
108 0
|
网络安全
puppet 精通puppet配置管理工具
[agent] runinterval=3600 node "" { } node "a","b","c" { } node /*/ { } node default { } node "a" inherits base { } $a = "aa" ...
880 0
|
测试技术 网络协议 网络安全
|
网络协议 安全 网络安全
|
NoSQL Unix 应用服务中间件
|
网络安全 数据中心 Linux
|
Ruby Linux 网络安全