オートメーション・サーバーの設定
オートメーション・サーバーは、Ansible® をホストするために使用されます。次のアーキテクチャでは、Ansible について説明します:
- 1 つの Ansible 制御ノード- Ansible 制御ノードは、Ansible がインストールされている場所です、そして、Ansible Linux® ホストに Secure Shell (SSH) 経由でアクセスでき、Windows リモート管理 (WinRM) で設定されている Ansible Windows® ホストにアクセスできます。 Ansible では、以下のアイテムが必要です。
- sudo権限を持つ非rootユーザー。
- このユーザーに関連付けられたSSHキー・ペア。
- Ansibleで管理するAnsibleホストの情報を含むインベントリファイルです。
- Ansible ホストで実行するタスクの詳細を記述したプレイブックです。
- オプションで、Ansible Vaultを使用して、パスワードなどの機密パラメータを保持する暗号化ファイルを作成できます。
- 1 つ以上の Ansible ホスト- Ansible ホストは、Ansible コントロール ノードが自動化するように構成されている仮想マシン (VM) です。
- Linux の場合、Ansible 制御ノードの SSH 公開鍵がシステム・ユーザーの認証鍵に追加されている必要があります。 ユーザーはrootか、sudo権限を持つ一般ユーザーである。
- Windows の場合、Ansible ホストで、WinRM で構成されているホストが動作している必要があります。
仮想サーバーインスタンス(VSI)は、配備と外部接続を容易にするためにここで選択される。 しかし、VMが望ましいのであれば、これらのタスクの多くはまだ適用可能である。
前のステップで注文したオートメーションサーバーに、ラップトップからパブリックIPアドレスで接続できる。 次に、以下の作業に従わなければならない:
- OSパッケージをアップデートする。
- DNSを変更する。
- ネットワークタイムプロトコル(NTP)を設定する。
- ユーザーアカウント を2つ作成します。1つはあなたが使用するアカウントで、もう1つはAnsibleが使用する_ansible_というアカウントです。
- VSI 上で、アンスィブル ユーザーアカウントの SSH 鍵ペアを作成する で Ansible Linux のホストに接続する。
- ラップトップでSSHキー・ペアを作成し、公開キーをAnsibleサーバーにコピーして、パスワードなしでサーバーにアクセスできるようにします。
- SSHを強化する。
- Ansible をインストールします。
OSパッケージのアップデート
apt update
コマンドは、設定されているすべてのソースからパッケージ情報をダウンロードします。 システムは、アップグレード可能なパッケージと、そのソフトウェアをどこで入手できるかを知っています。 apt upgrade
コマンドはこの情報を使って、インストールされているすべてのパッケージを最新バージョンにアップグレードします。
- ラップトップから、IBM Cloud®コンソール
ssh root@<public_ip_address>
のIPアドレスとルート認証情報を使ってオートメーションサーバーに接続します - コマンドラインで
apt update && apt upgrade -y
コマンドを使い、OSパッケージのアップデートとアップグレードを行います。
DNS の変更
プロビジョニング後、VSIはIBM CloudDNSリゾルバを使用するように構成されます:10.0.80.11 and 10.0.80.12
であり、VMware Cloud Foundation for Classic - Automated インスタンスではありません - Active Directory™ DNS (AD/DNS) サーバー。 以下のコマンドを使い、<addns_1>
と <addns_2>
をAD/DNSサーバーのIPアドレスに変更することで、この設定を変更することができます。 <root_domain>
をあなたのVCF for Classic - Automatedインスタンスドメインに置き換えてください。 以下に例を示します。 test.ibmloud.local
sudo sed -i 's/10.0.80.11/<addns_1>/g' /etc/netplan/50-cloud-init.yaml
sudo sed -i 's/10.0.80.12/<addns_2>/g' /etc/netplan/50-cloud-init.yaml
sudo sed -i 's/search: \[\]/search: \[<root_domain>\]/g' /etc/netplan/50-cloud-init.yaml
sudo netplan apply
検証には以下のコマンドを使用する。
systemd-resolve --status | grep 'DNS Servers' -A2
resolvectl status
NTPの設定
以下のコマンドはNTPをインストールし、servertime.service.softlayer.com
をNTPタイムソースとして設定し、ubuntu.pool.ntp.org
サーバーを削除し、NTPサービスを再起動します。
apt install ntp -y
sudo sed -i 's/pool 0.ubuntu.pool.ntp.org iburst/#pool 0.ubuntu.pool.ntp.org iburst/g' /etc/ntp.conf
sudo sed -i 's/pool 1.ubuntu.pool.ntp.org iburst/#pool 1.ubuntu.pool.ntp.org iburst/g' /etc/ntp.conf
sudo sed -i 's/pool 2.ubuntu.pool.ntp.org iburst/#pool 2.ubuntu.pool.ntp.org iburst/g' /etc/ntp.conf
sudo sed -i 's/pool 3.ubuntu.pool.ntp.org iburst/#pool 3.ubuntu.pool.ntp.org iburst/g' /etc/ntp.conf
sudo sed -i 's/pool ntp.ubuntu.com/#pool ntp.ubuntu.com/g' /etc/ntp.conf
sudo sed -i '/^# Specify one or more NTP servers./a # IBM Cloud NTP\nserver servertime.service.softlayer.com prefer iburst' /etc/ntp.conf
sudo service ntp restart
コマンド ntpq -p
はNTPを検証するために使われる。 remote is 10.0.77.54
という行が出力されているが、これは servertime.service.softlayer.com
のIPアドレスである
ユーザーの作成
サーバー上に2人のユーザーが作成される。 最初のユーザーは、サーバーへの接続に使用できるアカウントで、その後のステップでrootとしてのSSHは削除される。 2番目のユーザは、Ansibleが使用するアカウントです。
- IBM CloudコンソールのIPアドレスとルート認証情報を使って、ラップトップからLinuxサーバー
ssh root@<public_ip_address>
に接続します - コマンドラインで以下のコマンドを入力し、プロンプトが表示されたらパスワードを入力する。
adduser <your_username>
usermod -aG sudo <your_username>
adduser ansible
usermod -aG sudo ansible
Ansibleユーザーのキー・ペアの作成
- コマンドラインで、
su - ansible
でansibleユーザーに切り替える。 - キー・ペアを作成するには、
ssh-keygen -b 4096
と入力し、プロンプトに従ってください。 パスフレーズは、自動化におけるSSH鍵の使用を複雑にする。
ユーザー用キー・ペアの作成
Mac または Linux ラップトップを使って SSH 鍵ペアを作成し、SSH 設定ファイルを作成または更新しているとします。
- オートメーションサーバーのSSHセッションからログアウトする。
- ラップトップにキー・ペアがない場合は、
ssh-keygen -b 4096
コマンドで作成してください。 ここではパスフレーズを推奨する。 - 公開鍵をオートメーション・サーバーに転送する:
ssh-copy-id <your_username@<bastion_host_public_ip_address>
. - テキストエディタを使って、
vi ~/.ssh/config
のようにローカルユーザーのSSH設定ファイルを作成または更新します。<short_name>
は、SSHコマンドで使いたい名前です(ssh <short_name>
など)。
Host *
Port 22
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
ServerAliveInterval 60
ServerAliveCountMax 30
Host <short_name>
HostName <automation_server_public_ip_address>
User <your_user_name>
IdentityFile <private_key_e.g._~/.ssh/key01>
Esc
と wq
を押してファイルを保存する。 それから、ssh <short_name>
コマンドを使ってオートメーションサーバーにアクセスできます。
SSHの強化
- オートメーションサーバーに接続する:
ssh <short_name>
. このときSSHは、設定ファイル、ユーザー名、IPアドレス、秘密鍵を使ってオートメーションサーバーに接続する。 - プロンプトが表示されたら、パスフレーズを入力します。
- パスワード認証を無効にするには、以下のコマンドを使用する:
sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
. - rootログインを無効にするには、以下のコマンドを使用する:
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/g' /etc/ssh/sshd_config
. - コマンド
sudo systemctl restart ssh
でSSHを再起動する。