Ansible制御ノードのセットアップ

Ansible制御ノードをセットアップするには、SUSE Multi-Linux Manager Web UIから次のステップを実行します。

クライアントをAnsible制御ノードとして構成するには、そのシステムにAnsibleパッケージをインストールする必要があります。 通常、Ansibleパッケージはオペレーティングシステムベンダーの公式リポジトリから取得する必要があります。 例えば、SUSE Linux Enterprise 15 SP6 および SP7 では、Ansible は Systems Management Module. を通じて利用可能です。

プロシージャ:SUSE Linux Enterprise 15 SP6またはSP7システムでのAnsible制御ノードのセットアップ
  1. SUSE Multi-Linux Manager Web UIで、Admin  Setup Wizard  Productsに移動し、SUSE Linux Enterprise Server 15 SP6 x86_64(またはそれ以降)が`Systems Management Module`および必要な`Python 3 Module`とともに選択され、同期されていることを確認します。

  2. SUSE Linux Enterprise 15 SP6(またはそれ以降)のクライアントをデプロイします。

  3. SUSE Multi-Linux Manager Web UIで、クライアントのシステム  概要ページに移動します。 Software  Software Channelsを選択し、クライアントを`SUSE Linux Enterprise Server 15 SP6 x86_64`(またはそれ以降のSP)、Systems Management Module、および`Python 3 Module`チャネルにサブスクライブします。

  4. クライアントの詳細  プロパティを選択します。 `Add-On System Types`リストから`Ansible Control Node`を有効にし、プロパティの更新をクリックします。

  5. クライアントの概要ページに移動し、状態  Highstateを選択して、Highstateの適用をクリックします。

  6. イベントタブを選択し、Highstateの状態を確認します。

SUSE Linux Enterprise 15 SP4 または SP5 クライアントに新しい Ansible をインストールする場合は、Python 3 Module を有効にする必要があります。

新しいバージョンのAnsibleは、古いPythonバージョンを使用しているノードの管理をサポートしなくなりました。 管理対象ノードが古いPythonバージョンをデフォルトで使用している場合、接続エラーやプレイブックの実行中にエラーが発生する可能性があります。 これに対処するために、ユーザーは可能であれば管理対象ノードのPythonをアップグレードし、Ansibleインベントリまたは設定で正しいPythonインタープリターを設定する必要があります。

1. Ansibleインベントリファイルの作成

Ansible統合ツールは、プレイブックをインベントリファイルとしてデプロイします。 _テーブル 1_にリストされている各オペレーティングシステムのために、1つのインベントリファイルを作成します。

プロシージャ:Ansibleインベントリファイルの作成
  1. インベントリファイルを作成し、そこにホストを追加してAnsibleによって管理できるようにします。 Ansibleインベントリのデフォルトパスは`/etc/ansible/hosts`です。

    Listing 1. インベントリの例
    client240.mgr.example.org
    client241.mgr.example.org
    client242.mgr.example.org
    client243.mgr.example.org ansible_ssh_private_key_file=/etc/ansible/some_ssh_key
    
    [mygroup1]
    client241.mgr.example.org
    client242.mgr.example.org
    
    [mygroup2]
    client243.mgr.example.org
    
    [all:vars]
    ansible_ssh_public_key_file=/etc/ansible/my_ansible_private_key
  2. SUSE Multi-Linux Manager Web UI内の`Ansible`タブからAnsible  制御ノードに移動し、インベントリファイルを追加します。

  3. Playbook Directories`セクションで、/usr/share/scap-security-guide/ansible`を`Add a Playbook Directories`フィールドに追加し、Saveをクリックします。

  4. `Inventory Files`で、インベントリファイルの場所を`Add an Inventory file`フィールドに追加し、Saveをクリックします。

    Listing 2. 例
    /etc/ansible/sles15
    /etc/ansible/sles12
    /etc/ansible/centos7

    追加のプレイブックの例については、 https://github.com/ansible/ansible-examples.を参照してください。

プロシージャ:Ansibleノードとの通信の確立
  1. インベントリで使用しているSSHキーを作成します。

    ssh-keygen -f /etc/ansible/my_ansible_private_key
  2. 生成されたSSHキーをAnsible管理対象クライアントにコピーします。 例:

    ssh-copy-id -i /etc/ansible/my_ansible_public_key root@client240.mgr.example.org
  3. `/etc/ansible/ansible.cfg`で秘密鍵を次のように宣言します。

    private_key_file = /etc/ansible/my_ansible_private_key

    `my_ansible_private_key`を、秘密鍵を含むファイルの名前に置き換えます。

  4. 制御ノードから次のコマンドを実行して、Ansibleが動作していることをテストします。

    ansible all -m ping
    ansible mygroup1 -m ping
    ansible client240.mgr.example.org -m ping

これで修正を実行できます。 詳細については、コードとしてのコンプライアンスを参照してください。