読者です 読者をやめる 読者になる 読者になる

ksaitoの日記

日々試したことの覚え書き

ansibleで自動起動をセットアップするときの判断

ansibleで自動起動をセットアップするときに、ディストリビュージョンの種類やバージョンを判断基準にするのにどうも違和感がありました。

いろいろ調べた結果、ansibleのansible_service_mgrで判断するのが正解です。

試す

下記のソースを使って検証します。

$ cat sample.yml
- hosts: localhost
  tasks:
    - debug: msg="{{ansible_service_mgr}}"

$ 

ubuntu 14.04で実行するとupstartでサービス起動していることがわかります。

$ ansible-playbook -i "localhost," sample.yml

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [localhost]

TASK [debug] *******************************************************************
ok: [localhost] => {
    "msg": "upstart"
}

PLAY RECAP *********************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0

$

Ubuntu 15.04で実行するとsystemsなのがわかります。

$ ansible-playbook -i "localhost," sample.yml 

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [localhost]

TASK [debug] *******************************************************************
ok: [localhost] => {
    "msg": "systemd"
}

PLAY RECAP *********************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0   

$ 

もう、ディストリビューションで判断する必要はありません。