中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Linux上如何安裝Chef工作站

發布時間:2022-01-24 11:56:38 來源:億速云 閱讀:170 作者:柒染 欄目:開發技術

這篇文章跟大家分析一下“在Linux上如何安裝Chef工作站”。內容詳細易懂,對“在Linux上如何安裝Chef工作站”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“在Linux上如何安裝Chef工作站”的知識吧。

Chef 是一個開源的自動化服務器配置管理工具,就相當于這樣的一個腳本管理工具,但功能要強大得多,可定制性強 chef將腳本命令代碼化。

下載 ChefDK

ChefDK是Chef Development Kit的縮寫,它幾乎用于所有的平臺,包括基于Debian發行版、Ubuntu、RedHat、CentOS、Mac OS X和Windows。當前ChefDK的穩定版本是0.11.2,對于基于RHEL的系統,它可用于版本 6 和 7(如: CentOS 6 和 CentOS 7),RPM版本只有64位版本。

使用以下命令下載ChefDK 在CentOS 7上

 cd ~
 wget https://packages.chef.io/stable/el/7/chefdk-0.11.2-1.el7.x86_64.rpm

在CentOS 6上

 cd ~
 wget https://packages.chef.io/stable/el/6/chefdk-0.11.2-1.el6.x86_64.rpm

安裝 ChefDK

使用RPM安裝剛剛下載的ChefDK

 # rpm -ivh chefdk-0.11.2-1.el7.x86_64.rpm
 Preparing...                          ################################# [100%]
 Updating / installing...
    1:chefdk-0.11.2-1.el7              ################################# [100%]
 Thank you for installing Chef Development Kit!

ChefDK默認安裝到/opt/chefdk目錄下,如下所示

 # ls -l /opt/chefdk/
 drwxr-xr-x. 2 root root  4096 Mar  3 13:50 bin
 drwxr-xr-x. 7 root root    62 Mar  3 13:50 embedded
 -rw-r--r--. 1 root root 13249 Feb 22 14:26 version-manifest.json
 -rw-r--r--. 1 root root  8233 Feb 22 14:26 version-manifest.txt

驗證ChefDK的安裝

執行chef verify,驗證所有來自ChefDK的不同組件,確保他們都工作正常,沒有任何問題

 # chef verify
 Running verification for component 'berkshelf'
 Running verification for component 'test-kitchen'
 Running verification for component 'tk-policyfile-provisioner'
 Running verification for component 'chef-client'
 Running verification for component 'chef-dk'
 Running verification for component 'chef-provisioning'
 Running verification for component 'chefspec'
 Running verification for component 'generated-cookbooks-pass-chefspec'
 Running verification for component 'rubocop'
 Running verification for component 'fauxhai'
 Running verification for component 'knife-spork'
 Running verification for component 'kitchen-vagrant'
 Running verification for component 'package installation'
 Running verification for component 'openssl'
 Running verification for component 'inspec'
 .......
 ---------------------------------------------
 Verification of component 'test-kitchen' succeeded.
 Verification of component 'chef-dk' succeeded.
 Verification of component 'chefspec' succeeded.
 Verification of component 'rubocop' succeeded.
 Verification of component 'knife-spork' succeeded.
 Verification of component 'openssl' succeeded.
 Verification of component 'berkshelf' succeeded.
 Verification of component 'chef-client' succeeded.
 Verification of component 'fauxhai' succeeded.
 Verification of component 'inspec' succeeded.
 Verification of component 'tk-policyfile-provisioner' succeeded.
 Verification of component 'kitchen-vagrant' succeeded.
 Verification of component 'chef-provisioning' succeeded.
 Verification of component 'package installation' succeeded.
 Verification of component 'generated-cookbooks-pass-chefspec' succeeded.

下面是chef verify失敗的案例。注意:Ruby在Chef中是必須的,它被嵌入在了ChefDK中。

 # chef verify  ..  /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout.rb:289:in `invalid!’: Expected process to exit with [0], but received ‘1’ (Mixlib::ShellOut::ShellCommandFailed)  —- Begin output of /usr/bin/ohai -v —-  STDOUT:  STDERR: /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:319:in `to_specs’: Could not find ‘chef-config’ (= 12.8.0) – did find: [chef-config-12.7.2] (Gem::LoadError)

以上錯誤信息顯示:“Could not find ‘chef-config’ (= 12.8.0) – did find: [chef-config-12.7.2] (Gem::LoadError)”,在安裝的ChefDK中chef-config的版本是12.7.2的舊版本,在手動安裝chef-confg 12.8.0版本后再執行chef verify,顯示驗證成功。

驗證ChefDK版本

執行 chef -version命令,顯示ChefDK的版本號以及所有附帶組件

 # chef --version
 Chef Development Kit Version: 0.11.2
 chef-client version: 12.7.2
 berks version: 4.2.0
 kitchen version: 1.5.0

設置Chef 環境變量

設置Chef相關的環境變量,如:GEM_ROOT GEM_HOME GEM_PATH。

 export GEM_ROOT="/opt/chefdk/embedded/lib/ruby/gems/2.1.0"
 export GEM_HOME="/root/.chefdk/gem/ruby/2.1.0"
 export GEM_PATH="/root/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0"

此外,如果你的系統上已經安裝了ruby,你需要更新與ruby相關的PATH變量,如下所示

 export PATH=”/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin”

顯示所有Chef設置的環境變量。

 chef shell-init bash

想要快速設置這些環境變量,可以將其添加到bash_profile文件中,如下所示。

 echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile

訪問Chef的Firewalld規則

為了訪問Chef服務器上的Chef Manage GUI,添加以下firewalld規則,開放Chef服務器上的相應端口。

 firewall-cmd --direct  --add-rule ipv4 \
 filter INPUT_direct 0 -i eth0 -p tcp \
  --dport 443 -j ACCEPT
 
 firewall-cmd --direct  --add-rule ipv4 \
 filter INPUT_direct 0 -i eth0 -p tcp \
  --dport 80 -j ACCEPT
 
 firewall-cmd --direct  --add-rule ipv4 \
 filter INPUT_direct 0 -i eth0 -p tcp \
  --dport 9683 -j ACCEPT
 
 firewall-cmd --reload

從Chef Manage GUI下載Starter Kit

登錄到Chef Manage GUI,單擊“Administration”選項,從列表中選擇“organization”。此例中,“organization”為“example”,選中organization之后,點擊左側菜單中的“Starter Kit”。 在Linux上如何安裝Chef工作站

按下“Download(下載)”按鈕之后,會跳出一個警告信息,按下“Proceed”,它會將chef-starter.zip文件下載到本地機器。

解壓縮 Starter Kit

將chef-starter.zip文件傳輸到Chef工作站并解壓到root的home目錄下

 # cd ~
 # unzip chef-starter.zip
 Archive:  chef-starter.zip
    creating: chef-repo/cookbooks/
    creating: chef-repo/cookbooks/starter/
    creating: chef-repo/cookbooks/starter/templates/
    creating: chef-repo/cookbooks/starter/templates/default/
   inflating: chef-repo/cookbooks/starter/templates/default/sample.erb  
    creating: chef-repo/cookbooks/starter/files/
    creating: chef-repo/cookbooks/starter/files/default/
   inflating: chef-repo/cookbooks/starter/files/default/sample.txt  
    creating: chef-repo/cookbooks/starter/recipes/
   inflating: chef-repo/cookbooks/starter/recipes/default.rb  
    creating: chef-repo/cookbooks/starter/attributes/
   inflating: chef-repo/cookbooks/starter/attributes/default.rb  
   inflating: chef-repo/cookbooks/starter/metadata.rb  
   inflating: chef-repo/cookbooks/chefignore  
   inflating: chef-repo/README.md    
   inflating: chef-repo/.gitignore    
    creating: chef-repo/.chef/
    creating: chef-repo/roles/
   inflating: chef-repo/.chef/knife.rb  
   inflating: chef-repo/roles/starter.rb  
   inflating: chef-repo/.chef/ramesh.pem  
   inflating: chef-repo/.chef/example-validator.pem

如果你手動創建了chef-repo文件夾,那你就需要手動創建上述的子目錄,復制knife.rb文件、organization-validator.pem文件(如:example-validator.pem)、username.pem文件(如:ramesh.pem)到上面顯示的目錄中。

Chef服務器的SSL證書

在這個階段如果執行knife client list會得到以下錯誤信息

 # cd ~/chef-repo  # knife client list  ERROR: SSL Validation failure connecting to host: centos.example.com – SSL_connect returned=1 errno=0 state=error: certificate verify failed  ERROR: Could not establish a secure connection to the server.  Use `knife ssl check` to troubleshoot your SSL configuration.  If your Chef Server uses a self-signed certificate, you can use  `knife ssl fetch` to make knife trust the server’s certificates.    Original Exception: OpenSSL::SSL::SSLError: SSL Error connecting to https://centos.example.com/organizations/example/clients – SSL_connect returned=1 errno=0 state=error: certificate verify failed

證書驗證失敗,因為我們沒有從Chef服務器下載SSL證書,此時可以執行以下“knife ssl fetch”。

 # cd ~/chef-repo
 # knife ssl fetch
 WARNING: Certificates from centos.example.com will be fetched and placed in your trusted_cert
 directory (/root/chef-repo/.chef/trusted_certs).
 
 Knife has no means to verify these are the correct certificates. You should
 verify the authenticity of these certificates after downloading.

證書將會下載到以下truster_certs目錄中

 # ls -l /root/chef-repo/.chef/trusted_certs
 -rw-r--r--. 1 root root 1379 Mar 20 20:17 centos_example_com.crt
 
 # cat /root/chef-repo/.chef/trusted_certs/centos_example_com.crt
 -----BEGIN CERTIFICATE-----
 MIIDzDCCArSgAwIBAgIBADANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJVUzEQ
 MA4GA1UECgwHWW91Q29ycDETMBEGA1UECwwKT3BlcmF0aW9uczEbMBkGA1UEAwwS
 ZXJhdGlvbnMxGzAZBgNVBAMMEmNlbnRvcy5leGFtcGxlLmNvbTCCASIwDQYJKoZI
 ..
 ..
 WLyr2ORLMcck/OGsubabO/koMNTqhl2JJPECNiDJh06MeZ/2+BOwGZSpXDbw+vFE
 NJAsLfsTzihGWZ58einMFA==
 -----END CERTIFICATE-----

Chef工作站的最終確認

如果Chef工作站工作正常,當你執行“knife client list”時,它會顯示所有連接工作站的客戶端。由于我們剛剛安裝它,因此只能看到剛剛我們創建的組織(organization)

 # cd ~/chef-repo
 
 # knife client list
 example-validator

如果你現有的Chef工作站機器上已經有5個服務器連接到它了,你會看到以下信息

 # knife client list
 example-validator
 node1
 node2
 node3
 node4
 node5

關于在Linux上如何安裝Chef工作站就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下億速云網站!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灯塔市| 博兴县| 北川| 彰化县| 满城县| 荃湾区| 武胜县| 二连浩特市| 隆尧县| 光山县| 沾益县| 五大连池市| 色达县| 富蕴县| 黄龙县| 图木舒克市| 巴林左旗| 永新县| 枣庄市| 封丘县| 焉耆| 岢岚县| 织金县| 铜陵市| 卢湾区| 阳泉市| 德钦县| 博兴县| 陇西县| 上栗县| 曲沃县| 监利县| 康保县| 漯河市| 隆子县| 福鼎市| 微博| 铁岭市| 广宁县| 中卫市| 扎兰屯市|