GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu20.04にChefAutomationServerをインストールする方法

Chefは自動化のための強力なプラットフォームであり、ネットワーク全体でインフラストラクチャを管理、展開、または構成する方法を簡素化します。 Chefは、インフラストラクチャをコードに変換することで動作します。その後、開発者は複数のサーバーまたはノードにリソースを展開または管理できますが、開発者が他の環境にコードを展開する前に、まずワークステーションでコードを作成してテストします。全体として、Chefはワークステーションからインフラストラクチャを管理するための最高のツールの1つです。

コンプライアンス、ノードの可視性、ワークフローのために、ChefAutomateはエンタープライズ機能の完全なスイートを利用できるようにします。このソフトウェアは、Habitat、InSpec、Chefなどのオープンソース製品と統合されています。

このチュートリアルでは、ChefサーバーとクライアントをUbuntu20.04にインストールする方法を説明します。

前提条件

  • 2つ Atlantic.Netクラウドプラットフォーム上の新しいUbuntu20.04VPS。

1人のクライアント

1台のサーバー

  • サーバーで構成されているrootパスワード

ステップ1–Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。少なくとも4GBのRAMを搭載したオペレーティングシステムとしてUbuntu20.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

Ubuntu 20.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

apt-get update -y

ステップ2–ホスト名の設定

開始する前に、Chefサーバーで完全修飾ホスト名とホスト名解決を設定する必要があります。

まず、次のコマンドでホスト名を設定します。

hostnamectl set-hostname chef.example.com

次に、/ etc / hostsファイルを開き、サーバーのIPアドレスをホスト名にバインドします。

nano /etc/hosts

次の行を追加します:

chef-server-ip chef.example.com

終了したら、ファイルを保存して閉じます。

ステップ3–Chefサーバーをインストールする

まず、Chefサーバーで次のコマンドを実行して、必要な依存関係をインストールします。

apt-get install curl wget gnupg2 -y

次に、次のコマンドを使用してChefパッケージをダウンロードします。

wget https://packages.chef.io/files/stable/chef-server/13.1.13/ubuntu/18.04/chef-server-core_13.1.13-1_amd64.deb

パッケージがダウンロードされたら、次のコマンドを実行してインストールします。

dpkg -i chef-server-core_13.1.13-1_amd64.deb

パッケージをインストールしたら、Chefサーバーを再構成する必要があります。次のコマンドで再構成できます:

chef-server-ctl reconfigure

以下に示すように、ライセンス期間に同意するよう求められます。

+---------------------------------------------+
Chef License Acceptance

Before you can continue, 3 product licenses
must be accepted. View the license at
https://www.chef.io/end-user-license-agreement/

Licenses that need accepting:
* Chef Infra Server
* Chef Infra Client
* Chef InSpec

Do you accept the 3 product licenses (yes/no)?

> yes

yesと入力してライセンスに同意し、Enterキーを押して続行します。インストールが完了すると、次の出力が表示されます。

Running handlers:
Running handlers complete
Chef Infra Client finished, 482/1032 resources updated in 04 minutes 34 seconds
Chef Server Reconfigured!

:インストールには5分以上かかります

ステップ4–管理者アカウントと組織を作成する

まず、すべてのキーを保存するディレクトリを作成します。

mkdir ~/.chef_key

次に、次のコマンドを実行して管理者アカウントを作成します。

chef-server-ctl user-create atlanticuser Atlantic User [email protected] 'mypassword' --filename ~/.chef_key/atlantic.pem

上記のコマンドは、名前がatlanticuser、フルネームが「Atlantic User」、パスワードが「mypassword」の管理者アカウントを作成し、〜/ .chef_key/atlantic.pemにキーファイルを生成します。

次に、次のコマンドを使用して組織を作成します。

chef-server-ctl org-create atlantic "atlantic cloud" --association_user atlanticuser --filename ~/.chef_key/atlantic-org.pem

上記のコマンドは、atlanticという名前、「atlantic cloud」というフルネームの組織を作成し、ユーザー「atlanticuser」を関連付け、〜/ .chef_key/atlantic-org.pemにキーファイルを生成します。

これで、次のコマンドを使用して、生成されたキーを確認できます。

ls ~/.chef_key/

次の出力が表示されます。

atlantic.pem hitjethva.pem

ステップ5–ChefWeb管理コンソールをインストールする

次に、サーバーにChefmanageをインストールする必要があります。 Chef manageは、WebベースのインターフェースからChefサーバーを管理するために使用できるアドオンです。

次のコマンドを使用して、Chefmanageをインストールできます。

chef-server-ctl install chef-manage

次に、次のコマンドを使用してChefサーバーとChef管理を再構成します。

chef-server-ctl reconfigure
chef-manage-ctl reconfigure

以下に示すように、使用許諾契約に同意するよう求められます。

Press any key to continue.
Type 'yes' to accept the software license agreement or anything else to cancel.
yes

はいと入力します Enterキーを押して、インストールを完了します。

ステップ6–Chefクライアントをインストールする

次に、Chefクライアントマシンにログインして、Chefクライアントパッケージをインストールする必要があります。

次のコマンドを実行して、Chefワークステーションパッケージをダウンロードします。

wget https://packages.chef.io/files/stable/chef-workstation/20.6.62/debian/10/chef-workstation_20.6.62-1_amd64.deb

パッケージがダウンロードされたら、次のコマンドを使用してインストールします。

dpkg -i chef-workstation_20.6.62-1_amd64.deb

Chefクライアントをインストールした後、システムにChefリポジトリを作成する必要があります。 chef-repoディレクトリには、Chefクックブックやその他の関連ファイルが保存されます。

次のコマンドで作成できます:

chef generate repo chef-repo

以下に示すように、ライセンスに同意するように求められます。

+---------------------------------------------+
Chef License Acceptance

Before you can continue, 3 product licenses
must be accepted. View the license at
https://www.chef.io/end-user-license-agreement/

Licenses that need accepting:
* Chef Workstation
* Chef Infra Client
* Chef InSpec

Do you accept the 3 product licenses (yes/no)?

> yes

はいと入力します Enterキーを押して、ライセンスに同意します。次の出力が得られるはずです:

Persisting 3 product licenses...
✔ 3 product licenses persisted.

+---------------------------------------------+
Generating Chef Infra repo chef-repo
- Ensuring correct Chef Infra repo file content

Your new Chef Infra repo is ready! Type `cd chef-repo` to enter it.

次のコマンドを使用して、Chefリポジトリ内で生成されたすべてのファイルとディレクトリを一覧表示できます。

ls chef-repo

次の出力が得られるはずです:

chefignore cookbooks data_bags LICENSE policyfiles README.md

次に、ChefサーバーでのRSAキーペア認証に使用されるすべてのKnife構成ファイルと.pemファイルを格納するための.chefディレクトリを作成する必要があります。

次のコマンドで作成できます:

mkdir ~/chef-repo/.chef

次に、次のコマンドを使用してSSHキーペアを生成します。

ssh-keygen -b 4096

パスワードは入力しないでください。Enterキーを押すだけで、以下に示すようにSSHキーペアが生成されます。

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:OvOCW9vNnVfs8II8TKJnRxv9vwRu5R4JqRxWPVU1rTY [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| .B|
| . +|
| . + |
| . E .|
| S o * + |
| . + B B +|
| .= . O * @ |
| ...*.oo.O.= =|
| ....ooo.oo ++|
+----[SHA256]-----+

次に、次のコマンドを使用して、生成されたキーをChefサーバーマシンにコピーします。

ssh-copy-id [email protected]

次に、すべての.pemファイルをChefサーバーからクライアントマシンにコピーする必要があります。次のコマンドでそれらをコピーできます:

scp [email protected]:~/.chef_key/*.pem ~/chef-repo/.chef/

次の出力が得られるはずです:

atlantic.pem 100% 1674 2.2MB/s 
00:00
hitjethva.pem 100% 1678 2.4MB/s 
00:00

ステップ7–ナイフを構成してクックブックを生成する

次に、Knifeを構成し、クライアントマシンでクックブックを生成する必要があります。

まず、次のコマンドでリポジトリに変更します:

cd ~/chef-repo

次に、次のコマンドを使用して最初のクックブックを生成します。

chef generate cookbook my_cookbook

クックブックが生成されたら、新しいナイフ構成ファイルを作成します。

nano〜/ chef-repo / .chef / config.rb

次の行を追加します:

current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name 'hitjethva'
client_key "hitjethva.pem"
validation_client_name 'atlantic-validator'
validation_key "atlantic-validator.pem"
chef_server_url 'https://chef.example.com/organizations/atlantic'
cache_type 'BasicFile'
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
cookbook_path ["#{current_dir}/../cookbooks"]

ファイルを保存して閉じます。

すべての名前が組織名および管理者ユーザー名と一致していることを確認してください。

次に、/ etc / hostsファイルを編集して、Chefサーバーの完全修飾名を追加します。

nano /etc/hosts

次の行を追加します:

chef-server-ip chef.example.com

終了したら、ファイルを保存して閉じます。

次に、次のコマンドを使用してChefサーバーからSSL証明書をフェッチします。

cd ~/chef-repo
knife ssl fetch

次の出力が得られるはずです:

WARNING: Certificates from chef.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.
Adding certificate for chef_example_com in /root/chef-repo/.chef/trusted_certs/chef_example_com.crt

次のコマンドを使用してSSLを確認することもできます。

knife ssl check

次の出力が得られるはずです:

Connecting to host chef.example.com:443
Successfully verified certificates from `chef.example.com'

ステップ8–クライアントノードをブートストラップする

次に、Chefクライアントをノードにインストールし、ノードを検証する必要があります。これにより、ノードはChefサーバーから読み取り、ワークステーションからchef-clientによって検出された必要な構成更新をプルダウンして適用できます。

Chefクライアントマシンで、次のコマンドを使用してディレクトリを.chefに変更します。

cd ~/chef-repo/.chef

次に、次のコマンドを使用してクライアントをブートストラップします。

knife bootstrap chef.example.com -x root -P rootpassword --node-name clientnode

インストールが完了すると、次の出力が表示されます。

Patents: https://www.chef.io/patents
[chef.example.com] resolving cookbooks for run list: []
[chef.example.com] Synchronizing Cookbooks:
[chef.example.com] Installing Cookbook Gems:
[chef.example.com]
[chef.example.com] Compiling Cookbooks...
[chef.example.com] [2020-10-02T07:56:21+00:00] WARN: Node clientnode has an empty run list.
[chef.example.com] Converging 0 resources
[chef.example.com]
[chef.example.com] Running handlers:
Running handlers complete
Chef Infra Client finished, 0/0 resources updated in 02 seconds

これで、次のコマンドを使用してすべてのノードを一覧表示できます。

knife client list

次の出力が得られるはずです:

atlantic-validator
clientnode

ステップ9–ChefManageコンソールにアクセスする

次に、Webブラウザーを開き、URLhttp://chef.server-ip/loginを使用してChef管理コンソールにアクセスします。 Chefログインページが表示されます:

管理者のユーザー名とパスワードを入力し、署名をクリックします ボタン。次のページにChefダッシュボードが表示されます。

結論

上記のガイドでは、Ubuntu20.04サーバーにChefサーバーとクライアントをインストールする方法を学びました。また、インストールと構成の設定でそのコンポーネントを学びました。詳細については、Chefのドキュメントをご覧ください。 Atlantic.Netの仮想プライベートサーバーでChefを試してみてください!


Linux
  1. Ubuntuサーバーにロケートをインストールする方法

  2. Ubuntu 22.04 に MariaDB をインストールする方法

  3. Hyper-v に Ubuntu Server 15.10 をインストールする方法

  1. Ubuntu18.04にMySQLをインストールする方法

  2. Ubuntu18.04にMinecraftサーバーをインストールする方法

  3. Ubuntu20.04にNginxをインストールする方法

  1. Ubuntu20.04にMariaDBをインストールする方法

  2. Ubuntu14.04にVNCサーバーをインストールする方法

  3. UbuntuServer22.04にOpenLDAPをインストールする方法