Redhat下puppet集中組態管理_PHP教程

來源:互聯網
上載者:User

Redhat下puppet集中組態管理


一 puppet簡介
puppet 是一個組態管理工具, 典型的, puppet 是一個 C/S 結構, 當然,這裡的 C 可以有很多,因
此,也可以說是一個星型結構. 所有的 puppet 用戶端同一個伺服器端的 puppet 通訊. 每個
puppet 用戶端每半小時(可以設定)串連一次伺服器端, 下載最新的設定檔,並且嚴格按照配
置檔案來設定管理員. 配置完成以後,puppet 用戶端可以反饋給伺服器端一個訊息. 如果出錯,
也會給伺服器端反饋一個訊息.

二安裝環境
server端:172.25.254.2 vm2.example.com puppet master
client端: 172.25.254.3 vm3.example.com puppet agent
client端: 172.25.254.4 vm4.example.com puppet agent
重要:server 與所有 client 之間需要解析,以及時間同步,不然會驗證失敗。

server端:
首先安裝這些包
[root@vm2 puppet]# yum install -y puppet-server-3.8.1-1.el6.noarch.rpm facter-2.4.4-1.el6.x86_64.rpm ruby-augeas-0.4.1-3.el6.x86_64.rpm rubygems-1.3.7-5.el6.noarch.rpm rubygem-json-1.5.5-3.el6.x86_64.rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm puppet-3.8.1-1.el6.noarch.rpm hiera-1.3.4-1.el6.noarch.rpm

開啟服務:[root@vm2 puppet]# /etc/init.d/puppetmaster start
Starting puppetmaster: [ OK ]

查看8140連接埠是否開啟
[root@vm2 puppet]# netstat -anltp|grep ruby
tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN 1118/ruby

用戶端:
安裝這些包:yum install -y puppet-3.8.1-1.el6.noarch.rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm facter-2.4.4-1.el6.x86_64.rpm hiera-1.3.4-1.el6.noarch.rpm ruby-augeas-0.4.1-3.el6.x86_64.rpmrubygems-1.3.7-5.el6.noarch.rpm rubygem-json-1.5.5-3.el6.x86_64.rpm

發起認證:
第一次發起認證會顯示沒有認證,因為服務端還沒有同意


這時可以在服務端查看發起認證請求的使用者


簽署憑證
刪除認證
puppet cert clean vm3.example.com


在用戶端查看有沒有認證成功
如就證明認證成功了


三 服務端實現自動認證
在server端
vim /etc/puppet/puppet.conf
在main底下添加這一行
[main]
autosign = true

/etc/puppet 目錄下建立 autosign.conf 檔案,內容如下:
*.example.com #表示允許所有 example.com 域的主機
/etc/init.d/puppetmaster reload

在用戶端只需要直接申請就可以成功
puppet agent --server vm2.example.com --test


在實際中有時會修改 client 端的主機名稱,這樣就需要重建認證:
1)在 server 端執行:puppet cert --clean vm3.example.com #你要刪除的原 client 端主機名稱
2)在 client 端執行:rm -fr /var/lib/puppet/ssl/*
puppet agent --server=puppet.example.com

puppet 的第一個執行的代碼是在/etc/puppet/manifest/site.pp,因此這個檔案必須存在,而
且其他的代碼也要通過該檔案來調用。
四 服務端資源定義:
cd /etc/puppet/manifests
vim site.pp
file {
"/mnt/puppet-3.8.1-1.el6.noarch.rpm": 用戶端去向
content => "puppet:///files/puppet-3.8.1-1.el6.noarch.rpm", 服務端源
mode => 600, 用戶端得到資源許可權
owner => puppet用戶端得到資源使用者
}

cd ..
mkdir files
將puppet-3.8.1-1.el6.noarch.rpm 包放到此目錄下
vim /etc/puppet/fileserver.conf
在最底下添加如下
[files]
path /etc/puppet/files
allow *

用戶端驗證 這副圖展示了/mnt下的資源的變化
並且也驗證了服務端的配置


軟體包跟服務定義
繼續編輯剛才的site.pp檔案,向裡面添加如下
package { ##軟體包定義
"vsftpd":
ensure => present(安裝present,卸載absent)

}

service {##服務定義
"vsftpd":
ensure => running
}

file {
"/etc/vsftpd/vsftpd.conf":
source => "puppet:///files/vsftpd.conf",
mode => 600,
notify => Service[vsftpd] 相當於reload
}
然後在用戶端測試


使用者建立
繼續編輯site.pp檔案添加如下
user { "xp": uid => 900, ##建立使用者
home => "/home/test",
shell => "/bin/bash",
provider => useradd,
managehome => true,
ensure => present,
password => westos
}


#exec { "echo westos | passwd --stdin xp": ##更改密碼加密方式 這樣加密在/etc/shadow下密碼會是明文
#path => "/usr/bin:/usr/sbin:/bin",
#onlyif => "id xp"
#}
用戶端驗證


crontab 任務
在服務端 老規則,繼續編譯site.pp檔案
cron { echo:
command => "/bin/echo `/bin/date` >> /tmp/echo",
user => root,
hour => ['2-4'],
minute => '*/10'
}

任務會在client 的/var/spool/cron目錄中產生
在用戶端驗證


總之,puppet是一個很好的管理系統,是以後自動化營運的必不可少的工具,大家可以自己動手搭建一個lnmp架構,源碼安裝,
之後我會發布,希望大家共同探討,共同進步。














http://www.bkjia.com/PHPjc/1110195.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1110195.htmlTechArticleRedhat下puppet集中組態管理 一 puppet簡介 puppet 是一個組態管理工具, 典型的, puppet 是一個 C/S 結構, 當然,這裡的 C 可以有很多,因 此,也可以說...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.