前書き
インフラストラクチャの要件が拡大するにつれて、各サーバーを手動で管理することがますます困難なタスクになります。 この問題は、ノードに障害が発生した場合や水平スケーリングが必要な場合に必要になる再現性の要件によってさらに悪化します。
構成管理ソリューションは、インフラストラクチャ管理をコードベースに変えることで、これらの問題に対処するように設計されています。 これらのツールを使用すると、多数のマシンで個別のタスクを実行する代わりに、各コンポーネントが接続、構成をプルダウン、および適用できる中央の場所に要件をコミットできます。
previous guideでは、概念レベルで、Chefコンポーネントの一般的な構造と、管理者の目的を達成するためにコンポーネントが相互作用する方法について説明しました。 関連する用語について話し、それぞれの部分の責任について話し合いました。
このガイドでは、実際のソフトウェアをインストールします。 構成手順とノードプロファイリング情報を保存および提供する集中化されたChefサーバーをセットアップします。 また、管理者がコードベースを操作し、インフラストラクチャの特性を変更できるワークステーションをセットアップします。 これをフォローアップして、新しいノードをブートストラップし、Chefエコシステムの管理下に置きます。
前提条件と目標
このガイドでは、Chefのバージョン12を設定します。 構成はバージョン間で大幅に異なる場合があるため、最良の結果を得るには、このガイドと同じメジャーバージョン番号内で操作していることを確認してください。
Chef documentationは、Chefサーバーに少なくとも4つのコアと4GBのRAMが必要であることを示しています。 また、64-bit operating systemが必要です。 このガイドでは、64ビットUbuntu 14.04で4コア/ 8 GB DigitalOceanドロップレットを使用します。
ワークステーションとノードの要件はほとんどありません。 一貫性を保つために、それらにもUbuntu 14.04を使用します。
完了すると、構成データを保存および提供する集中化されたChefサーバーが作成されます。 ワークステーションを使用して、変更を加え、サーバーにアップロードし、新しいノードをブートストラップして管理します。 このノードは、インフラストラクチャ内の単一サーバーを表します。
Chefサーバーを構成する
Chefサーバーをセットアップすることから始めます。 Chefでは、このサーバーに少なくとも4コアと4 GBのRAMを推奨しているため、それに応じて計画することを忘れないでください。
サーバーがホスト名でアクセス可能であることを確認してください
Chefサーバーのインストールを計画しているサーバーにログインしたら、実行する必要がある最初のタスクは、サーバーのホスト名が解決可能な完全修飾ドメイン名(FQDN)またはIPアドレスであることを確認することです。 これを確認するには、次のように入力します。
hostname -f
結果は、サーバーに到達できるアドレスになります。 そうでない場合は、このファイルを編集して、サーバーにアクセスできるドメイン名またはIPアドレスにこれを設定できます。
sudo nano /etc/hosts
ファイルは次のようになります。
127.0.1.1 current_hostname current_hostname_alias
127.0.0.1 localhost
. . .
最上行を変更して、完全修飾ドメイン名またはIPアドレスを反映し、その後にホストに使用するスペースとエイリアスを追加します。 最初の列にサーバーのパブリックIPアドレスが表示されている2行と、127.0.1.1
行の最後に変更した情報を最後にbeneath行追加します。 これは次のようになります。
127.0.1.1 fqdn_or_IP_address host_alias
127.0.0.1 localhost
IP_address fqdn_or_IP_address host_alias
したがって、do notにドメイン名がある場合、パブリックIPアドレスは123.123.123.123
になり、ホスト名「chef」でホストに到達できるようにする場合は、次のようなファイルを作成できます。
127.0.1.1 123.123.123.123 chef
127.0.0.1 localhost
123.123.123.123 123.123.123.123 chef
一方、このサーバーの完全修飾ドメイン名がchef.example.com
でIPアドレスが234.234.234.234
の場合、ファイルは次のようになります。
127.0.1.1 chef.example.com chef
127.0.0.1 localhost
234.234.234.234 chef.example.com chef
完了したら、ファイルを保存して閉じます。 次のように入力して、値が正しく設定されたことを確認できます。
hostname -f
結果は、インフラストラクチャのどこからでもChefサーバーに到達するために使用できる値になります。
Chef 12 Serverソフトウェアをダウンロードしてインストールします
次に、Chef 12サーバーソフトウェアをダウンロードします。 Chefサイトにアクセスして、インストールする必要のあるパッケージを見つけることができます。 具体的には、Ubuntuのインストールでは、this linkをたどることができます。
「Ubuntu Linux 14.04」ヘッダーの下で、ダウンロードリンクを右クリックし、リンクの場所をコピーします。
サーバーに戻り、ホームディレクトリに移動します。 コピーしたリンクを貼り付け、wget
コマンドを使用してパッケージをダウンロードします。 この記事の執筆後にマイナーバージョンが更新されている場合、コピーしたリンクは以下のものと異なる場合があります。
cd ~
wget https://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/chef-server-core_12.0.5-1_amd64.deb
ダウンロードが完了したら、次を入力してパッケージをインストールします。
sudo dpkg -i chef-server-core_*.deb
これにより、ベースChef 12システムがサーバーにインストールされます。 推奨量よりも強力でないハードウェアを備えたサーバーを選択した場合、このステップは失敗する可能性があります。
インストールが完了したら、reconfigure
コマンドを呼び出す必要があります。このコマンドは、サーバーを構成するコンポーネントを特定の環境で連携するように構成します。
sudo chef-server-ctl reconfigure
管理者ユーザーと組織を作成する
次に、管理ユーザーを作成する必要があります。 これは、作成する組織のインフラストラクチャコンポーネントに変更を加えるためのアクセス権を持つユーザー名になります。
これは、chef-server-ctl
コマンドのuser-create
サブコマンドを使用して実行できます。 このコマンドでは、作成プロセス中にいくつかのフィールドを渡す必要があります。 一般的な構文は次のとおりです。
chef-server-ctl user-create USERNAME FIRST_NAME LAST_NAME EMAIL PASSWORD
この情報を含め、新しいユーザーの秘密RSAキーを出力するファイル名を指定するために、追加のフラグである-f
を末尾に追加します。 後でknife
管理コマンドを使用して認証するためにこれが必要になります。
この例では、次の情報を持つユーザーを作成します。
-
Username:管理者
-
First Name:管理者
-
Last Name:管理者
-
Email:[email protected]
-
Password:examplepass
-
Filename:admin.pem
この情報を持つユーザーを作成するために必要なコマンドは次のとおりです(情報、特にパスワードを反映するようにこれを変更する必要があります)。
sudo chef-server-ctl user-create admin admin admin [email protected] examplepass -f admin.pem
これで、現在のディレクトリにadmin.pem
という秘密鍵が作成されます。
これでユーザーができたので、org-create
サブコマンドを使用して組織を作成できます。 組織は、Chef内のインフラストラクチャと構成の単なるグループです。 コマンドの一般的な構文は次のとおりです。
chef-server-ctl org-create SHORTNAME LONGNAME --association_user USERNAME
短い名前は、Chef内から組織を参照するために使用する名前です。 長い名前は、組織の実際の名前です。 --association_user
は、組織を管理するためのアクセス権を持つユーザー名を指定します。 ここでも、-f
フラグを追加して、秘密鍵を配置するファイルの名前を指定できるようにします。 作成されるキーは、新しいクライアントが独自の一意のクライアントキーを取得できるまで、組織の一部として新しいクライアントを検証するために使用されます。
次の品質を持つ組織を作成します。
-
Short Name:digitalocean
-
Long Name:DigitalOcean、Inc。
-
Association User:管理者
-
Filename:digitalocean-validator.pem
上記の品質を持つ組織を作成するには、次のコマンドを使用します。
sudo chef-server-ctl org-create digitalocean "DigitalOcean, Inc." --association_user admin -f digitalocean-validator.pem
これに続いて、ホームディレクトリに2つの.pem
キーファイルがあるはずです。 この場合、それらはadmin.pem
およびdigitalocean-validator.pem
と呼ばれます。 このサーバーに接続し、これらのキーをワークステーションに一時的にダウンロードする必要があります。 しかし今のところ、Chefサーバーのインストールは完了しています。
Chef Workstationを構成する
Chefサーバーが稼働しているので、次のアクションはワークステーションを構成することです。 実際のインフラストラクチャの調整と構成は、Chefサーバーでは行われません。 この作業はワークステーションで行われ、ワークステーションはデータをサーバーにアップロードしてChef環境に影響を与えます。
シェフレポのクローンを作成する
インフラストラクチャのChef設定は、Chefリポジトリと総称される階層ファイル構造で維持されます。 これの一般的な構造は、Chefチームが提供するGitHubリポジトリにあります。 git
を使用して、このリポジトリをワークステーションに複製し、インフラストラクチャのChefリポジトリの基盤として機能させます。
まず、apt
パッケージツールを使用してgit
をインストールする必要があります。 次のように入力して、パッケージインデックスを更新し、ツールをインストールします。
sudo apt-get update
sudo apt-get install git
git
をインストールしたら、Chefリポジトリをマシンに複製できます。 このガイドでは、単にホームディレクトリに複製します。
cd ~
git clone https://github.com/chef/chef-repo.git
これにより、基本的なChefリポジトリ構造がホームディレクトリのchef-repo
というディレクトリにプルダウンされます。
Chef Repoをバージョン管理下に置く
Chefリポジトリ内で作成された構成は、コードを管理するのと同じ方法でバージョン管理システム内で最適に管理されます。 上記のリポジトリのクローンを作成したため、git
リポジトリはすでに初期化されています。
ワークステーションを新しいコミット用にセットアップするには、いくつかのことを行う必要があります。
まず、git
がコミットにタグを付けるために使用する名前と電子メールを設定します。 これは、git
がコミットを受け入れるための要件です。 これをグローバルに設定して、作成するgit
リポジトリが次の値を使用するようにします。
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
次に、~/chef-repo/.chef
ディレクトリに含まれる情報を無視するようにgit
に指示します。 このディレクトリを数分で作成して、いくつかの機密情報を保存します。 今のところ、この場所を.gitignore
ファイルに追加して、git
が他の人に公開してはならないデータを保存しないようにすることができます。
echo ".chef" >> ~/chef-repo/.gitignore
.gitignore
ファイルに変更を加えたので、先に進んでバージョン管理システムへの最初の新しいコミットを行うことができます。 最初に、変更されたすべてのファイルを現在のステージング領域に追加します。
cd ~/chef-repo
git add .
次に、変更をコミットします。 -m
フラグを使用して、行っている変更を説明するインラインコミットメッセージを指定します。
git commit -m "Excluding the ./.chef directory from version control"
シェフリポジトリはバージョン管理下にあります。 インフラストラクチャの構成を作成するときに、上記の2つのコマンドを使用して、git
リポジトリを最新の状態に保つことができます。
Chef Development Kitをダウンロードしてインストールします
次に、Chefワークステーション用に設計されたソフトウェアスイートであるChef Development Kitをインストールする必要があります。 これには、インフラストラクチャの構成を設計するときに役立つ多くのユーティリティが含まれます。 この時点で関心のあるツールは、バンドルされたknife
コマンドです。このコマンドは、ChefサーバーとChefクライアントの両方と通信して制御できます。
Chef 12開発キットは、Chef Webサイトにあります。 ワークステーションとしてUbuntu14.04を使用しているため、ページhereには最新のダウンロードリンクが含まれます。 この記事の執筆時点では、ダウンロードリンクはUbuntu 12.04とUbuntu 13.10のみを参照していますが、Ubuntu 14.04でも問題なくインストールできるはずです。
「Ubuntu Linux」の下のダウンロードボタンを右クリックして、リンクの場所をコピーします:
ワークステーションに戻り、ホームディレクトリに移動します。 コピーしたリンクを貼り付け、wget
コマンドを使用してパッケージをダウンロードします。 コピーしたリンクは、新しい開発キットバージョンがリリースされている場合、以下のものと異なる場合があります。
cd ~
wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.4.0-1_amd64.deb
.deb
パッケージがダウンロードされたら、次のように入力してインストールできます。
sudo dpkg -i chefdk_*.deb
インストール後、新しいchef
コマンドを使用して、すべてのコンポーネントが期待される場所で使用可能であることを確認できます。
chef verify
ワークステーションを主にインフラストラクチャのChefの管理に使用する場合、デフォルトでChefと共にインストールされたRubyのバージョンを使用することをお勧めします。 これを行うには、.bash_profile
を変更して、ChefのRubyが優先されるようにします。
echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile
その後、.bash_profile
ファイルを入手して、現在のセッションの正しい環境変数を設定できます。
source ~/.bash_profile
Rubyのバージョンを個別に管理する場合は、上記の手順をスキップできます。
認証キーをワークステーションにダウンロードする
この時点で、ワークステーションには、Chefサーバーと対話し、インフラストラクチャ構成を構成するために必要なすべてのソフトウェアが用意されています。 ただし、Chefサーバーおよび環境と対話するようにまだ構成されていません。 このセクションでは、Chefサーバーで作成した資格情報をダウンロードします。
scp
ユーティリティを使用して、Chefサーバーで作成したユーザーキーと組織バリデーターキーをダウンロードします。 その前に、これらのファイルを保存する隠しディレクトリを作成します。
mkdir ~/chef-repo/.chef
Chefサーバーへの接続に使用する方法により、キーのダウンロードの正確性が決まります。 設定に合った以下の方法に従ってください。
パスワードを使用してChefサーバーに接続するときにキーをダウンロードする方法
パスワードベースの認証を使用してSSH経由でChefサーバーに接続する場合、scp
コマンドは大幅な変更なしで機能します。
ワークステーションで、Chefサーバーへの接続に使用するユーザー名とドメイン名またはIPアドレスを指定します。 すぐにコロン(:)とダウンロードするファイルへのパスを続けてください。 スペースを追加した後、ダウンロードを配置するlocalコンピューター上のディレクトリ(この場合は~/chef-repo/.chef
)を指定します。
root
ユーザーアカウントを使用してChefサーバーにログインすると、コマンドは次のようになります。 ドメイン名またはIPアドレスと、ダウンロードしようとしているキーファイルの名前の両方を、環境に合わせて変更することを忘れないでください。
scp root@server_domain_or_IP:/root/admin.pem ~/chef-repo/.chef
scp root@server_domain_or_IP:/root/digitalocean-validator.pem ~/chef-repo/.chef
非rootユーザーを使用してChefサーバーに接続する場合、コマンドは次のようになります。
scp username@server_domain_or_IP:/home/username/admin.pem ~/chef-repo/.chef
scp username@server_domain_or_IP:/home/username/digitalocean-validator.pem ~/chef-repo/.chef
SSHキーを使用してChefサーバーに接続するときにキーをダウンロードする方法
代わりに、SSHキーを使用してChefサーバーに接続する場合(推奨)、いくつかの追加手順を実行する必要があります。
まず、ワークステーションとのSSHセッションを終了します。 新しいパラメーターで一時的に再接続する必要があります。
exit
ローカルコンピューターに戻ったら、Chefサーバーへの接続に使用するSSHキーをSSHエージェントに追加する必要があります。 標準のSSHスイートであるOpenSSHには、次のように入力して開始できるSSHエージェントが含まれています。
eval $(ssh-agent)
次のような出力が表示されるはずです(数値は異なる可能性があります)。
Agent pid 13881
エージェントが起動したら、SSHキーを追加できます。
ssh-add
Identity added: /home/demo/.ssh/id_rsa (rsa w/o comment)
これにより、SSHキーがメモリに保存されます。 これで、ssh
で-A
オプションを使用して接続するときに、ワークステーションに保存されているキーをforwardできます。 これにより、ローカルコンピューターから接続しているかのように、ワークステーションから任意のコンピューターに接続できます。
ssh -A username@workstation_domain_or_IP
これで、転送されたSSH認証情報を使用してパスワードを必要とせずにChefサーバーに接続できます。 Chefサーバー上のキーがrootユーザーを介して利用できる場合、必要なコマンドはこれに似たものになります。 必要に応じて、Chefサーバーのドメイン名またはIPアドレスとキー名を忘れずに変更してください。
scp root@server_domain_or_IP:/root/admin.pem ~/chef-repo/.chef
scp root@server_domain_or_IP:/root/digitalocean-validator.pem ~/chef-repo/.chef
代わりにChefサーバー用に設定されたSSHキーが通常のユーザーアカウントの認証に使用される場合、コマンドは次のようになります。
scp username@server_domain_or_IP:/home/username/admin.pem ~/chef-repo/.chef
scp username@server_domain_or_IP:/home/username/digitalocean-validator.pem ~/chef-repo/.chef
Chef環境を管理するためのナイフの構成
ワークステーションでChef資格情報を使用できるようになったので、Chefインフラストラクチャに接続して制御するために必要な情報を使用してknife
コマンドを構成できます。 これは、キーと一緒に~/chef-repo/.chef
ディレクトリに配置するknife.rb
ファイルを介して行われます。
テキストエディタでそのディレクトリにあるknife.rb
というファイルを開きます。
nano ~/chef-repo/.chef/knife.rb
このファイルに、次の情報を貼り付けます。
current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name "name_for_workstation"
client_key "#{current_dir}/name_of_user_key"
validation_client_name "organization_validator_name"
validation_key "#{current_dir}/organization_validator_key"
chef_server_url "https://server_domain_or_IP/organizations/organization_name"
syntax_check_cache_path "#{ENV['HOME']}/.chef/syntaxcache"
cookbook_path ["#{current_dir}/../cookbooks"]
次の項目は、インフラストラクチャに合わせて調整する必要があります。
-
node_name
:これは、knife
がChefサーバーへの接続に使用する名前を指定します。 これはユーザー名と一致する必要があります。 -
client_key
:これは、Chefサーバーからコピーしたユーザーキーの名前とパスである必要があります。 キーがknife.rb
ファイルと同じディレクトリにある場合は、#{current_dir}
スニペットを使用してパスを入力できます。 -
validation_client_name
:これは、knife
が新しいノードをブートストラップするために使用する検証クライアントの名前です。 これは、組織の短い名前の後に-validator
が続く形式になります。 -
validation_key
:client_key
と同様に、これにはChefサーバーからコピーした検証キーへの名前とパスが含まれます。 ここでも、検証キーがknife.rb
ファイルと同じディレクトリにある場合は、#{current_dir}
Rubyスニペットを使用して現在のディレクトリを指定できます。 -
chef_server_url
:これはChefサーバーにアクセスできるURLです。https://
で始まり、その後にChefサーバーのドメイン名またはIPアドレスが続きます。 その後、/organizations/your_organization_name
を追加して、組織へのパスを指定する必要があります。
ガイドの場合、knife.rb
ファイルは次のようになります。 従う場合は、サーバーのドメイン名またはIPアドレスを調整する必要があります。
current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name "admin"
client_key "#{current_dir}/admin.pem"
validation_client_name "digitalocean-validator"
validation_key "#{current_dir}/digitalocean-validator.pem"
chef_server_url "https://server_domain_or_IP/organizations/digitalocean"
syntax_check_cache_path "#{ENV['HOME']}/.chef/syntaxcache"
cookbook_path ["#{current_dir}/../cookbooks"]
終了したら、knife.rb
ファイルを保存して閉じます。
次に、単純なknife
コマンドを試して、構成ファイルをテストします。 構成ファイルを正しく読み取るには、~/chef-repo
ディレクトリにいる必要があります。
cd ~/chef-repo
knife client list
この最初の試行は、次のようなエラーで失敗するはずです。
ERROR: SSL Validation failure connecting to host: server_domain_or_IP - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: 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_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
これは、ワークステーションにChefサーバーのSSL証明書がないために発生します。 これを取得するには、次のように入力します。
knife ssl fetch
これにより、Chefサーバーの証明書ファイルが~/chef-repo/.chef
ディレクトリのリストに追加されます。
WARNING: Certificates from server_domain_or_IP will be fetched and placed in your trusted_cert
directory (/home/demo/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 server_domain_or_IP in /home/demo/chef-repo/.chef/trusted_certs/server_domain_or_IP.crt
SSL証明書が取得されると、前のコマンドが機能するようになります。
knife client list
digitalocean-validator
上記のコマンドが正しく返された場合、ワークステーションはChef環境を制御するように設定されています。
ナイフで新しいノードをブートストラップする
Chefサーバーとワークステーションを構成したら、Chefを使用してインフラストラクチャ内の新しいサーバーを構成できます。
これは、「ブートストラップ」と呼ばれるプロセスを通じて発生します。このプロセスでは、Chefクライアントの実行可能ファイルが新しいコンピューターにインストールされ、組織検証キーも一緒に渡されます。 次に、新しいノードは、検証キーを使用してChefサーバーに接続し、代わりに、独自の一意のクライアントキーとそれに割り当てられた構成を受け取ります。 このプロセスにより、新しいサーバーが初期状態になり、将来の管理のために設定されます。
新しいサーバーに接続するには、新しいノードに関するいくつかの情報が必要です。
-
到達可能なドメイン名またはIPアドレス
-
管理アクションを完了するために使用されるユーザー名。 これは、
root
、またはsudo
特権で構成されたユーザーのいずれかです。 -
上記のユーザーとしてログインする方法。 これは、パスワード、またはSSHキーを使用する機能のいずれかです。
-
管理タスクを実行する方法。
root
ユーザーの場合、これは不要です。sudo
特権に依存しているユーザーの場合、通常はパスワードが必要です。
コマンドの一般的な構文は次のとおりです。
knife bootstrap node_domain_or_IP [options]
最終的に使用する可能性のある一般的なオプションは次のとおりです。
-
-x
:SSHを介して認証するユーザー名を指定するために使用されます。 これは通常必要です。 -
-N
:Chef内に表示されるノードの新しい名前。 これを省略すると、通常、Chefノード名にホスト名が使用されます。 -
-P
:リモートサーバー上のユーザー名のパスワードを指定するために使用されます。 これは、either SSHセッションでパスワード認証が必要な場合に必要です。orユーザー名でsudo
コマンドのパスワードが必要な場合。 -
--sudo
:リモートサーバーのユーザー名が管理アクションを実行するためにsudo
を使用する必要がある場合は、このフラグが必要です。 デフォルトでは、sudo
パスワードの入力を求められます。 -
--use-sudo-password
:-P
フラグを使用してユーザーのパスワードを既に指定している場合、このフラグin additionを--sudo
フラグに使用すると、-P
パスワードが使用されますプロンプトなしで。 -
-A
:このオプションは、パスワード認証を使用するのではなく、SSHキーをリモートホストに転送してログインします。
-A
オプションを使用する場合は、ローカルコンピューターでSSHエージェントを起動し、新しいノードへの接続に使用できるSSHキーを追加し、-A
に接続してその情報をワークステーションに転送する必要があります。 )sフラグを最初に。 これを行う方法の詳細については、Chefサーバーからのキーのダウンロードに関するワークステーション構成セクションを参照してください。
上記の情報を使用すると、さまざまな状況に適したブートストラップコマンドを作成できます。
たとえば、sudo
権限で構成され、SSHとsudo
検証用のパスワードが必要なユーザー名demo
を使用して、「testing」という名前のノードをブートストラップするには、次のように入力できます。
knife bootstrap node_domain_or_IP -N testing -x demo -P password --sudo --use-sudo-password
ワークステーションで使用可能なキーを使用したSSHキー認証を使用して、root
ユーザーを使用してブートストラップし、ノードのホスト名をChefノード名として引き続き使用する場合は、次のように入力できます。
knife bootstrap node_domain_or_IP -x root -A
SSHキーを使用してsudo
ユーザーを認証する場合でも、-P
フラグ、--sudo
フラグ、および--use-sudo-password
を使用してパスワードを指定する必要があります。プロンプトを回避するためのフラグ:
knife bootstrap node_domain_or_IP -x demo -A -P password --sudo --use-sudo-password -N name
上記のシナリオにいるが、sudo
パスワードの入力を求められてもかまわない場合は、代わりに次のように入力できます。
knife bootstrap node_domain_or_IP -x demo -A --sudo -N name
新しいノードがブートストラップされると、新しいクライアントが必要になります。
knife client list
digitalocean-validator
name
同じ名前の新しいノードも必要です。
knife node list
name
上記の手順を使用して、任意の数の新しいサーバーに新しいChefクライアントを簡単にセットアップできます。
新しいDigitalOceanドロップレットを既存のChefインフラストラクチャに、それぞれをブートストラップせずに自動的に追加する方法について知りたい場合は、check out this tutorial。
結論
このガイドに従った後、完全に機能するChefサーバーをインフラストラクチャ用に構成する必要があります。 また、Chefがインフラストラクチャに適用する構成を管理および維持するために使用できるワークステーションをセットアップしました。 knife
コマンドを使用して、Chefによって構成されるサーバーをブートストラップする方法を示しました。
next guideでは、いくつかのChef構造を使用してノードの構成を設計する方法を示します。 宣言的な構成でインフラストラクチャを制御する方法として、Chefレシピとクックブックの基礎について説明します。