IBM Cloud Docs
オートメーション・サーバーの設定

オートメーション・サーバーの設定

オートメーション・サーバーは、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アドレスで接続できる。 次に、以下の作業に従わなければならない:

  1. OSパッケージをアップデートする
  2. DNSを変更する
  3. ネットワークタイムプロトコル(NTP)を設定する
  4. ユーザーアカウント を2つ作成します。1つはあなたが使用するアカウントで、もう1つはAnsibleが使用する_ansible_というアカウントです。
  5. VSI 上で、アンスィブル ユーザーアカウントの SSH 鍵ペアを作成する で Ansible Linux のホストに接続する。
  6. ラップトップでSSHキー・ペアを作成し、公開キーをAnsibleサーバーにコピーして、パスワードなしでサーバーにアクセスできるようにします。
  7. SSHを強化する
  8. Ansible をインストールします。

OSパッケージのアップデート

apt update コマンドは、設定されているすべてのソースからパッケージ情報をダウンロードします。 システムは、アップグレード可能なパッケージと、そのソフトウェアをどこで入手できるかを知っています。 apt upgrade コマンドはこの情報を使って、インストールされているすべてのパッケージを最新バージョンにアップグレードします。

  1. ラップトップから、IBM Cloud®コンソール ssh root@<public_ip_address> のIPアドレスとルート認証情報を使ってオートメーションサーバーに接続します
  2. コマンドラインで 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が使用するアカウントです。

  1. IBM CloudコンソールのIPアドレスとルート認証情報を使って、ラップトップからLinuxサーバー ssh root@<public_ip_address> に接続します
  2. コマンドラインで以下のコマンドを入力し、プロンプトが表示されたらパスワードを入力する。
adduser <your_username>
usermod -aG sudo <your_username>
adduser ansible
usermod -aG sudo ansible

Ansibleユーザーのキー・ペアの作成

  1. コマンドラインで、su - ansible でansibleユーザーに切り替える。
  2. キー・ペアを作成するには、ssh-keygen -b 4096 と入力し、プロンプトに従ってください。 パスフレーズは、自動化におけるSSH鍵の使用を複雑にする。

ユーザー用キー・ペアの作成

Mac または Linux ラップトップを使って SSH 鍵ペアを作成し、SSH 設定ファイルを作成または更新しているとします。

  1. オートメーションサーバーのSSHセッションからログアウトする。
  2. ラップトップにキー・ペアがない場合は、ssh-keygen -b 4096 コマンドで作成してください。 ここではパスフレーズを推奨する。
  3. 公開鍵をオートメーション・サーバーに転送する:ssh-copy-id <your_username@<bastion_host_public_ip_address>.
  4. テキストエディタを使って、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>

Escwq を押してファイルを保存する。 それから、ssh <short_name> コマンドを使ってオートメーションサーバーにアクセスできます。

SSHの強化

  1. オートメーションサーバーに接続する:ssh <short_name>. このときSSHは、設定ファイル、ユーザー名、IPアドレス、秘密鍵を使ってオートメーションサーバーに接続する。
  2. プロンプトが表示されたら、パスフレーズを入力します。
  3. パスワード認証を無効にするには、以下のコマンドを使用する:sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config.
  4. rootログインを無効にするには、以下のコマンドを使用する:sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/g' /etc/ssh/sshd_config.
  5. コマンド sudo systemctl restart ssh でSSHを再起動する。