私は自分のラップトップからナイフを使用しようとしていますAWSでホストされている新しく設定されたChefサーバーに接続します。以下にリストされているものが私にとって正しい方向であることは知っていますが、これを正確に行う方法がわかりません。
If you are not able to connect to the server using the hostname ip-xx-x-x-xx.ec2.internal
you will have to update the certificate on the server to use the correct hostname.
回答:
回答№1は1私はこれと同じ問題を抱えていました。問題は、EC2インスタンスがプライベートIPをホスト名ファイルに配置することです。これにより、chefは内部IPに証明書を自己割り当てします。あなたがするとき knife ssl check
おそらく次のようなエラーメッセージが表示されます。
ERROR: The SSL cert is signed by a trusted authority but is not valid for the given hostname
ERROR: You are attempting to connect to: "ec2-x-x-x-x.us-west-2.compute.amazonaws.com"
ERROR: The server"s certificate belongs to "ip-y-y-y-y.us-west-2.compute.internal"
パブリックIPへの接続は正しいですが、証明書に署名するときにパブリックDNSを使用するようにシェフサーバーを構成しないと、このエラーが引き続き発生します。
編集: シェフのドキュメントには、この問題を修正しますが、私が最初にこの質問に答えたときから、彼らはチュートリアルからそれらのステップを削除しました。次の手順は、ec2インスタンス上のChef 12、Ubuntu16で機能しました。
- シェフサーバーにSSH接続します
- 次のコマンドでホスト名ファイルを開きます
sudo vim /etc/hostname
- 内部IPを含む行を削除し、パブリックIPに置き換えて、ファイルを保存します。
- サーバーを再起動します
sudo reboot
- 走る
sudo chef-server-ctl reconfigure
(これは、とりわけ、新しい証明書に署名します) - ワークステーションに戻って使用する
knife ssl fetch
に続くknife ssl check
あなたは行かなくてはなりません。
また、サーバーにchefをインストールする前に、手順1〜4を完了するだけで済みます。
回答№2の場合は0
AWSの外部から内部IP(または内部IPを指すDNS)に接続することはできません。 ルーティング不可能なIPアドレス.
代わりに、インスタンスのパブリックIPがある場合は、それに接続します。
回答№3の場合は0
- ChefServerのパブリックIPを更新します
- サーバーでchef-server-ctlreconfigureを実行します(再起動は必要ありません)
- ワークステーションのknife.rbを新しいIPアドレスで更新します
- Chefワークステーションで「knifesslfetch」を実行します
これで問題が解決し、「ナイフクライアントリスト」の実行が確認されます。