6.2. kernel_settings ロールを使用した選択したカーネルパラメーターの適用
以下の手順に従って、Ansible Playbook を準備および適用し、複数の管理システムで永続化の影響でカーネルパラメーターをリモートに設定します。
前提条件
-
root権限がある。 -
RHEL サブスクリプションの資格を取得して、
ansible-coreおよびrhel-system-rolesパッケージをコントロールマシンにインストールしている。 - マネージドホストのインベントリーが制御マシンに存在し、Ansible から接続できる。
手順
必要に応じて、図の目的で
inventoryファイルを確認します。# cat /home/jdoe/<ansible_project_name>/inventory [testingservers] pdoe@192.168.122.98 fdoe@192.168.122.226 [db-servers] db1.example.com db2.example.com [webservers] web1.example.com web2.example.com 192.0.2.42ファイルは
[testingservers]グループと他のグループを定義します。これにより、特定のシステムセットに対して Ansible をより効果的に実行できます。設定ファイルを作成して、Ansible 操作のデフォルトと特権昇格を設定します。
新しい YAML ファイルを作成し、これをテキストエディターで開きます。以下に例を示します。
# vi /home/jdoe/<ansible_project_name>/ansible.cfg以下の内容をファイルに挿入します。
[defaults] inventory = ./inventory [privilege_escalation] become = true become_method = sudo become_user = root become_ask_pass = true[defaults]セクションは、マネージドホストのインベントリーファイルへのパスを指定します。[privilege_escalation]セクションでは、指定したマネージドホストのユーザー権限がrootに移行されることを定義します。これは、カーネルパラメーターを正常に設定するために必要です。Ansible Playbook を実行すると、ユーザーパスワードの入力が求められます。マネージドホストへの接続後に、sudoによりrootに自動的に切り替わります。
kernel_settingsロールを使用する Ansible Playbook を作成します。新しい YAML ファイルを作成し、これをテキストエディターで開きます。以下に例を示します。
# vi /home/jdoe/<ansible_project_name>/kernel-roles.ymlこのファイルは Playbook を表し、通常は、
inventoryファイルから選択した特定のマネージドホストに対して実行される、プレイ とも呼ばれるタスクの順序付きリストが含まれます。以下の内容をファイルに挿入します。
--- - hosts: testingservers name: "Configure kernel settings" roles: - rhel-system-roles.kernel_settings vars: kernel_settings_sysctl: - name: fs.file-max value: 400000 - name: kernel.threads-max value: 65536 kernel_settings_sysfs: - name: /sys/class/net/lo/mtu value: 65000 kernel_settings_transparent_hugepages: madvisenameキーは任意です。任意の文字列をラベルとしてプレイに関連付け、プレイの対象を特定します。プレイのhostsキーは、プレイを実行するホストを指定します。このキーの値または値は、マネージドホストの個別名またはinventoryファイルで定義されているホストのグループとして指定できます。varsセクションは、設定する必要がある、選択したカーネルパラメーター名および値が含まれる変数のリストを表します。rolesキーは、varsセクションで説明されているパラメーターおよび値を設定するシステムロールを指定します。注記必要に応じて、Playbook のカーネルパラメーターとその値を変更することができます。
必要に応じて、プレイ内の構文が正しいことを確認します。
# ansible-playbook --syntax-check kernel-roles.yml playbook: kernel-roles.yml以下の例では、Playbook の検証が成功したことを示しています。
Playbook を実行します。
# ansible-playbook kernel-roles.yml ... BECOME password: PLAY [Configure kernel settings] ********************************************************************************** PLAY RECAP ******************************************************************************************************** fdoe@192.168.122.226 : ok=10 changed=4 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0 pdoe@192.168.122.98 : ok=10 changed=4 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0Ansible が Playbook を実行する前に、パスワードの入力を求められます。これにより、マネージドホストのユーザーが
rootに切り替わります。これは、カーネルパラメーターの設定に必要です。recap セクションは、すべてのマネージドホストのプレイが正常に終了したこと (
failed=0)、および 4 つのカーネルパラメーターが適用されたこと (changed=4) を示しています。- マネージドホストを再起動して、影響を受けるカーネルパラメーターをチェックし、変更が適用され、再起動後も維持されていることを確認します。