全部主机:
部署环境:
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
192.168.1.13 svn.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/
clien2:
安装并配置 SVN 服务
yum install -y subversion
mkdir -p /var/svn/html
svnadmin create /var/svn/html/
ls /var/svn/html/
修改 svn 配置文件
vim /var/svn/html/conf/svnserve.conf
添加以下内容:
anon-access = read
auth-access = write
password-db = /var/svn/html/conf/passwd
authz-db = /var/svn/html/conf/authz
[root@svn ~]# vim /var/svn/html/conf/passwd
[users]
alpha = alphapasswd
sysadmin = sysadminpasswd
[root@svn ~]# vim /var/svn/html/conf/authz
[/]
sysadmin = r
alpha = rw
[web]
sysadmin = r
alpha = rw
启动版本库
svnserve -d -r /var/svn/html
创建测试目录并测试
cd /var/svn/html/
mkdir web
svn import web file:///var/svn/html/web -m "init svn"
下载安装 concat 和 rsync 模块
yum install -y git
cd /etc/puppet/modules/
git clone https://github.com/onyxpoint/pupmod-concat && mv pupmod-concat concat
git clone https://github.com/onyxpoint/pupmod-rsync && mv pupmod-rsync rsync
ll
master:
配置 Puppet Master
Puppet Master 开始创建管理 Agent 节点目录及文件,方便以后管理
mkdir -p /etc/puppet/manifests/nodes
vim /etc/puppet/manifests/nodes/release.puppet.com.pp
#添加以下内容:
class rsync::client inherits rsync {
}
node 'client02.puppet.com' {
include 'rsync::server'
rsync::server::global { 'global':
address => '192.168.1.12'
}
rsync::server::section { 'web':
comment => 'This is formal file path',
path => '/var/www/html/web',
hosts_allow => '192.168.1.11'
}
rsync::server::section { 'web_test':
comment => 'This is test file path',
path => '/var/www/html/web_test',
hosts_allow => '192.168.1.12'
}
}
创建 site.pp 配置文件
vim /etc/puppet/manifests/site.pp
#添加以下内容:
import "nodes/release.puppet.com.pp"
svp:
自动配置发布服务器
puppet agent --server=master.puppet.com --test -v
查看发布服务器的/etc 目录,发现已经自动生成 rsyncd.conf 文件,但是 rsync
服务是未启动的。自动生成的/etc/rsyncd.conf 文件内容如下
cat /etc/rsyncd.conf
启动 rsync 服务,查看 873 端口是否开启。如果开启了防火墙,记得打开 873 端口
rsync --daemon
netstat -an | grep 873
如果希望下次发布服务器能自动启动 rsync 服务,那么需要修改 Puppet Master
的 rsync 模块文件,将/etc/puppet/modules/rsync/manifests/server.pp 文件中的如下
行注释掉
stop => "/bin/kill `cat \\`grep \"pid file\" /etc/rsyncd.conf | cut -f4 -d' '\\``",
新增如下所示
stop => "/bin/kill `ps -ef | grep rsync | grep -v grep | awk '{print $2}'`",
从 SVN 服务器检出项目,检出的时候需要输入 SVN 服务器密码,然后输入
svn 用户和密码
svn co svn://svn.puppet.com/web
cd web
标签:svn,rsync,etc,puppet,var,Puppet,com From: https://blog.51cto.com/Rain/7023503