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

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

クライアントをAnsible制御ノードとして設定するには、そのシステムにAnsibleパッケージがインストールされている必要があります。 通常、Ansibleパッケージは、 オペレーティングシステムベンダの公式レポジトリから取得する必要があります。 たとえば、SUSE Linux Enterprise 15 SP6およびSP7では、Ansibleは、Systems Management Moduleから入手できます。

Only for older SUSE Linux Enterprise 15 clients, Ansible is available through SLES 15 Client tools but there it will be dropped in the future.

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

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

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

  4. クライアントの詳細  プロパティを選択します。 [ 付属エンタイトルメント ]リストで[Ansible制御ノード]を有効にして、プロパティの更新をクリックします。

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

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

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

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

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

Ansible統合ツールは、playbookをインベントリファイルとして配備します。 _Table 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_private_key_file=/etc/ansible/my_ansible_private_key
  2. SUSE Manager Web UIで、[ Ansible]タブからAnsible  制御ノードに移動して、制御ノードにインベントリファイルを追加します。

  3. playbookディレクトリ]セクションで、[Add a Playbook Directories](playbookディレクトリの追加)フィールドに/usr/share/scap-security-guide/ansibleを追加し、保存をクリックします。

  4. インベントリファイル]の下の[インベントリファイルの追加]フィールドにインベントリファイルの場所を追加し、保存をクリックします。

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

    その他のplaybookの例については、https://github.com/ansible/ansible-examplesを参照してください。

2. Ansibleノードとの通信の確立

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

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

    ssh-copy-id -i /etc/ansible/my_ansible_private_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

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