page_adsence

2015年2月12日木曜日

AnsibleでSELinuxの状態を調べて、既に無効だったらスキップする

前回、SELinuxをOFFにする方法を書いたので、その続きというか発展編。
やり方としてはこんな感じ。

    - name: SELinuxの現状のステータスを確認し、結果を保存する
      shell: getenforce               ← ステータス確認コマンド
      register: is_selinux_off            ← 結果を「is_selinux_off」に保存

    - name: Install libselinux-python
      yum: name=libselinux-python state=installed
      when: is_selinux_off.stdout == 'Enforcing'   ← SELinuxのステータスが「Enforcing」だった場合は処理する

    - name: disable selinux
      selinux: state=disabled
      when: is_selinux_off.stdout == 'Enforcing'   ← 上と同様

    - include: reboot.yml
      when: is_selinux_off.stdout == 'Enforcing'   ← 上と同様

registerにどういった内容が入っているのかを確認するにはこんな感じにするとよい。

    - name: SELinuxの現状のステータスを確認し、結果を保存する
      shell: getenforce
      register: is_selinux_off

    - debug: var=is_selinux_off
      when: is_selinux_off

上記の実行結果の一部がこんな感じ。

TASK: [debug var=is_selinux_off] **********************************************
ok: [xwindow] => {
    "is_selinux_off": {
        "changed": true,
        "cmd": "getenforce",
        "delta": "0:00:00.003592",
        "end": "2015-02-12 18:12:03.063290",
        "invocation": {
            "module_args": "getenforce",
            "module_name": "shell"
        },
        "rc": 0,
        "start": "2015-02-12 18:12:03.059698",
        "stderr": "",
        "stdout": "Enforcing",
        "stdout_lines": [
            "Enforcing"
        ],
        "warnings": []
    }
}