DevOps-chef的多節點環境搭建

轉載自:-wkq5325-ChinaUnix博客

前言:

前段時間一直想試驗一下DevOps的一些配置管理工具,後來因爲某些原因,就重點研究了chef。以自己的機器搭建了一個典型的多節點實驗環境。

架構:
根據官方的chef的架構介紹,主要包括三大部分,

1. chef-server
2. chef workstation
3. chef-node


                       source:http://docs.opscode.com/chef_overview.html

上面的這個圖很清晰的表達了各部分的聯繫,所以推測我們需要安裝的主要是server和workstation部分,而node應該是通過客戶端來讓chef自動化安裝的

實施:
下面我們介紹如何實施一個代表性的環境

環境的前提配置
        安裝的OS環境: Ubuntu 12.04
        虛擬化軟件: VirtualBox
        使用的網絡類型: Host-Only NAT
        假設用戶都自己配置好了, 主機對應的FQDN

過程比較簡單, 就是安裝包,然後運行配置命令。具體如下:chef_11.6.0-1.ubuntu.12.04_amd64.deb

安裝:
     sudo dpkg -i chef-server_11.0.8-1.ubuntu.12.04_amd64.deb
配置:
    sudo chef-server-ctl reconfigure

驗證安裝:
    sudo chef-server-ctl test

其實這個似乎不能全部pass,感覺chef的集成測試集可能有些問題



過程稍微比server安裝複雜,但還算簡單明瞭, 主要是安裝client ,配置client到server訪問。具體如下:

2.1 安裝client:
    sudo dpkg -i  chef_11.6.0-1.ubuntu.12.04_amd64.deb

2.2 安裝配置chef-repo:
    git clone git://github.com/opscode/chef-repo.git

因爲chef-repo是存放cookbooks的地方,knife命令行工具會從chef-repo上傳數據到chef-server,這樣chef-client就從server可以應用相應的cookbooks了,所以我們可以知道,chef-repo需要配置和server的訪問
主要包括,.pem files and knife.rb files

2.3 創建.chef目錄
在 chef-repo目錄下,創建.chef目錄,並且修改.gitignore文件,添加 .chef


2.4 配置:
    knife configure --initial

注意:
輸入相關的信息,主要是server的url,client的key,client註冊server所需要的validator和validator private key(默認的是chef-validator和server端 /etc/chef/validation.pem 文件)
還有admin的private key,所以我們需要從server端copy兩個文件到workstation機器上,(才能在運行knife configure輸入恰當的private key 信息)

admin 和 validator的private key 文件,即: admin.pem validation.pem,

    scp  root@:/etc/chef/admin.pem  ./
    scp  root@:/etc/chef/validation.pem ./


2.5 將knife.rb和pem文件移到 chef-repo的.chef目錄下 

cp **    /.chef


2.6 驗證 client 是否工作

    knife client list

    knife user list

就可以輸出相關的server端的信息了


3. Node 的自動化安裝 (http://docs.opscode.com/install_bootstrap.html

下面的是在workstation上運行的,比較簡單:

3.1 bootstrap
    knife bootstrap -x -P --sudo


3.2 驗證 node
    knife client list

正確的話,就會輸出你的node節點的名字FQDN


注意:因爲workstation 在bootstrap的時候是需要ssh到node的,而且node也是需要到server訪問的(依靠FQDN,就是你配置的server url),
那麼就意味着, node需要安裝ssh server; node是可以解析server的FQDN的,可以在/etc/hosts添加相應的信息



總結:
經過1,2,3步驟,我們就搭建一個典型的chef 環境,包括三個節點,server, workstation和node
後面我們會給出一篇文章來說明如何創建一個cookbook,並且讓node應用這個cookbook。

其他參考資料:


發佈了24 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章