您好,登錄后才能下訂單哦!
puppet自動化運維工具
Puppet是一款運維自動化工具,在一些大型的互聯網企業,它可以針對多臺服務器進行統一操作,如統一部署軟件,進行統一上線維護等,意思就是說在一臺linux服務器上所部署的操作,會通過puppet同步到其他linux服務器的一款強大工具。
Puppet使用的端口是8139
搭建puppetmaster:
v 規劃服務器主機名
# vim /etc/sysconfig/network
修改內容:
NETWORKING=yes
HOSTNAME=master.test.cn
# vim /etc/hosts
添加解析記錄:
1.1.1.128 master.test.cn
1.1.1.129 client.test.cn
# hostname master.test.cn
# bash
v 服務器時間同步
#vim /etc/ntp.com
添加兩行:
server 127.127.1.0
fudge 127.127.1.0 stratum 8
# yum -y install ntpdate
#service ntpd restart
#chkconfig ntpd on
v 安裝ruby
# yum -y install ruby
#ruby -v
v 安裝puppet和facter
# useradd -s /sbin/nologin puppet
# tar xzvf facter-1.7.1.tar.gz
# cd facter-1.7.1
# ruby install.rb
# tar xzvf puppet-2.7.21.tar.gz
# cd puppet-2.7.21
# ruby install.rb
# cp conf/redhat/fileserver.conf /etc/puppet/
# cp conf/redhat/puppet.conf /etc/puppet/
# cp conf/redhat/server.init /etc/init.d/puppetmaster
# chmod +x /etc/init.d/puppetmaster
# mkdir /etc/puppet/manifests
# mkdir /etc/puppet/modules
v Puppet服務證書與簽名
# iptables -F
# vim /etc/puppet/puppet.conf
在main行添加:
ssldir = $vardir/ssl
modulepath = /etc/puppet/modules:/usr/share/puppet/modules
# /etc/init.d/puppetmaster start
搭建client客戶端:
v 規劃服務器主機名
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=client.test.cn
# vim /etc/hosts
1.1.1.128 master.test.cn
1.1.1.129 client.test.cn
# hostname client.test.cn
# bash
v 同步服務時間
# ntpdate 1.1.1.128
v 安裝ruby安裝工具
# yum -y install ruby
# ruby -v
v 安裝puppet和facter
#useradd -s /sbin/nologin puppet
# tar xzvf facter-1.7.1.tar.gz
# cd facter-1.7.1
# ruby install.rb
# tar xzvf puppet-2.7.2
# cd puppet-2.7.21
# ruby install.rb
# cp conf/redhat/puppet.conf /etc/puppet
# cp conf/redhat/client.init /etc/init.d/puppetclient
# chmod +x /etc/init.d/puppetclient
# iptables -F
# vim /etc/puppet/puppet.conf
在main項添加內容 :
ssldir = $vardir/ssl
server = master.test.cn
v 在client端申請與注冊
# puppet agent --server=master.test.cn --no-daemonize --verbose
在master端提交注冊信息
# puppet cert --list 查看申請列表
# puppet cert sign --all 提交注冊信息,會在下面目錄中創建證書
#ll /var/lib/puppet/ssl/ca/signed 查看client端的注冊信息文件
案例需求:需要將ssh服務的端口統一更改為9922
節點入口存放目錄:/etc/puppet/manifests/nodes
模塊存放目錄:/etc/puppet/modules
Puppet分發部署:
v 創建必要目錄
#mkdir -p /etc/puppet/modules/ssh/{manifests,templates,files}
#mkdir /etc/puppet/modules/ssh/files/ssh
#mkdir /etc/puppet/manifests/nodes
#chown -R puppet /etc/puppet/modules/
#ll /etc/puppet/modules/ssh
注:ssh/manifests目錄是ssh模塊配置文件目錄,ssh/files是ssh模塊的文件發布目錄
v 創建模塊配置文件
# vim /etc/puppet/modules/ssh/manifests/install.pp 確定客戶端是否安裝ssh服務
class ssh::install{
package{ "openssh":
ensure => present,
}
}
# 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"], 調用ssh::install類
notify => Class["ssh::service"], 如果config.pp發生變化通知service.pp
}
}
# vim /etc/puppet/modules/ssh/manifests/service.pp
class ssh::service { 定義類
service {"sshd":
ensure=>running, 確定ssh在運行
hasstatus=>true, 查看ssh服務狀態
hasrestart=>true, 重啟ssh服務
enable=>ture, 服務器是否開機
require=>Class["ssh::config"] 調用ssh::config類
}
}
# vim /etc/puppet/modules/ssh/manifests/init.pp 模塊主配置文件
class ssh{
include ssh::install,ssh::config,ssh::service 調用上面三個類
}
v 復制已修改好的ssh的配置文件到默認目錄
# cp /etc/ssh/sshd_config /etc/puppet/modules/ssh/files/ssh/
#chown puppet /etc/puppet/modules/ssh/files/ssh/sshd_config
v 創建節點配置文件
# vim /etc/puppet/manifests/nodes/ssh.pp
node 'client.test.cn' { 定義客戶端入口
include ssh
}
# vim /etc/puppet/manifests/nodes/site.pp 配置節點位置
import "nodes/ssh.pp"
同步方法:
v 客戶端主動拉取
#puppet agent -t
v 服務器推送同步
2 客戶端
# echo "listen = true" >> /etc/puppet/puppet.conf
# echo "allow *" >> /etc/puppet/auth.conf
#/etc/init.d/puppetclient restart
#vim /etc/ssh/sshd_config
#netstat -lnupt |grep ssh
2 服務端
#puppet kick client.test.cn
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。