Uncategorized

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
$ 

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

タイトルとURLをコピーしました