From a649aa8b7eecbe27c0942c41c0a4f59cae85e3e0 Mon Sep 17 00:00:00 2001
From: Smana <smainklh@gmail.com>
Date: Sat, 13 Feb 2016 11:17:20 +0100
Subject: [PATCH] use ansible_service_mgr to detect init system

---
 roles/etcd/handlers/main.yml                  |  2 +-
 roles/etcd/tasks/configure.yml                |  4 ++--
 roles/kubernetes/master/tasks/main.yml        |  4 ++--
 roles/kubernetes/master/tasks/start.yml       |  2 +-
 .../master/templates/kube-apiserver.j2        |  4 ++--
 roles/kubernetes/node/handlers/main.yml       |  2 +-
 roles/kubernetes/node/tasks/install.yml       |  6 +++---
 roles/kubernetes/node/templates/kubelet.j2    |  4 ++--
 roles/kubernetes/preinstall/tasks/main.yml    | 20 +------------------
 roles/network_plugin/calico/handlers/main.yml |  2 +-
 roles/network_plugin/calico/tasks/main.yml    | 10 +++++-----
 roles/network_plugin/calico/templates/docker  |  2 +-
 .../network_plugin/flannel/handlers/main.yml  |  2 +-
 roles/network_plugin/flannel/tasks/main.yml   |  2 +-
 roles/network_plugin/flannel/templates/docker |  2 +-
 roles/network_plugin/weave/handlers/main.yml  |  2 +-
 roles/network_plugin/weave/tasks/main.yml     |  8 ++++----
 17 files changed, 30 insertions(+), 48 deletions(-)

diff --git a/roles/etcd/handlers/main.yml b/roles/etcd/handlers/main.yml
index 22661c087..a2044fb08 100644
--- a/roles/etcd/handlers/main.yml
+++ b/roles/etcd/handlers/main.yml
@@ -7,7 +7,7 @@
 
 - name: reload systemd
   command: systemctl daemon-reload
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
 
 - name: reload etcd
   service:
diff --git a/roles/etcd/tasks/configure.yml b/roles/etcd/tasks/configure.yml
index 1d3f7887b..925180de0 100644
--- a/roles/etcd/tasks/configure.yml
+++ b/roles/etcd/tasks/configure.yml
@@ -4,7 +4,7 @@
     src: etcd.service.j2
     dest: /lib/systemd/system/etcd.service
     backup: yes
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
   notify: restart etcd
 
 - name: Configure |  Write etcd  initd script
@@ -13,7 +13,7 @@
     dest: /etc/init.d/etcd
     owner: root
     mode: 0755
-  when: init_system == "sysvinit" and ansible_os_family == "Debian"
+  when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian"
   notify: restart etcd
 
 - name: Configure |  Create etcd config file
diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml
index 70dd02325..b974d13a2 100644
--- a/roles/kubernetes/master/tasks/main.yml
+++ b/roles/kubernetes/master/tasks/main.yml
@@ -18,7 +18,7 @@
     src: "kube-apiserver.service.j2"
     dest: "/etc/systemd/system/kube-apiserver.service"
     backup: yes
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
   notify: restart kube-apiserver
 
 - name: install | Write kube-apiserver initd script
@@ -28,7 +28,7 @@
     owner: root
     mode: 0755
     backup: yes
-  when: init_system == "sysvinit" and ansible_os_family == "Debian"
+  when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian"
 
 - name: Write kube-apiserver config file
   template:
diff --git a/roles/kubernetes/master/tasks/start.yml b/roles/kubernetes/master/tasks/start.yml
index 7fa4f2764..c8b2e7927 100644
--- a/roles/kubernetes/master/tasks/start.yml
+++ b/roles/kubernetes/master/tasks/start.yml
@@ -4,7 +4,7 @@
 
 - name: reload systemd
   command: systemctl daemon-reload
-  when: init_system == "systemd" and restart_apimaster is defined and restart_apimaster == True
+  when: ansible_service_mgr == "systemd" and restart_apimaster is defined and restart_apimaster == True
 
 - name: reload kube-apiserver
   service:
diff --git a/roles/kubernetes/master/templates/kube-apiserver.j2 b/roles/kubernetes/master/templates/kube-apiserver.j2
index 2f900fdc8..b45fa46f2 100644
--- a/roles/kubernetes/master/templates/kube-apiserver.j2
+++ b/roles/kubernetes/master/templates/kube-apiserver.j2
@@ -3,7 +3,7 @@
 #
 # The following values are used to configure the kube-apiserver
 
-{% if init_system == "sysvinit" %}
+{% if ansible_service_mgr in ["sysvinit","upstart"] %}
 # Logging directory
 KUBE_LOGGING="--log-dir={{ kube_log_dir }} --logtostderr=true"
 {% else %}
@@ -38,7 +38,7 @@ KUBE_TLS_CONFIG="--tls_cert_file={{ kube_cert_dir }}/apiserver.pem --tls_private
 # Add you own!
 KUBE_API_ARGS="--token_auth_file={{ kube_token_dir }}/known_tokens.csv --basic-auth-file={{ kube_users_dir }}/known_users.csv --service_account_key_file={{ kube_cert_dir }}/apiserver-key.pem"
 
-{% if init_system == "sysvinit" %}
+{% if ansible_service_mgr in ["sysvinit","upstart"] %}
 DAEMON_ARGS="$KUBE_LOGGING $KUBE_LOG_LEVEL $KUBE_ALLOW_PRIV $KUBE_API_PORT $KUBE_SERVICE_ADDRESSES \
 $KUBE_ETCD_SERVERS $KUBE_ADMISSION_CONTROL $KUBE_RUNTIME_CONFIG $KUBE_TLS_CONFIG $KUBE_API_ARGS"
 {% endif %}
diff --git a/roles/kubernetes/node/handlers/main.yml b/roles/kubernetes/node/handlers/main.yml
index 7b2c3df71..ad9707757 100644
--- a/roles/kubernetes/node/handlers/main.yml
+++ b/roles/kubernetes/node/handlers/main.yml
@@ -1,7 +1,7 @@
 ---
 - name: reload systemd
   command: systemctl daemon-reload
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
 
 - name: restart kubelet
   command: /bin/true
diff --git a/roles/kubernetes/node/tasks/install.yml b/roles/kubernetes/node/tasks/install.yml
index 32c64fae4..e501dc61d 100644
--- a/roles/kubernetes/node/tasks/install.yml
+++ b/roles/kubernetes/node/tasks/install.yml
@@ -1,17 +1,17 @@
 ---
 - name: install | Write kubelet systemd init file
   template: src=kubelet.service.j2 dest=/etc/systemd/system/kubelet.service backup=yes
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
   notify: restart kubelet
 
 - name: install | Write kubelet initd script
   template: src=deb-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=0755 backup=yes
-  when: init_system == "sysvinit" and ansible_os_family == "Debian"
+  when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian"
   notify: restart kubelet
 
 - name: install | Write kubelet initd script
   template: src=rh-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=0755 backup=yes
-  when: init_system == "sysvinit" and ansible_os_family == "RedHat"
+  when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "RedHat"
   notify: restart kubelet
 
 - name: install | Install kubelet binary
diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2
index 73e7fe604..0f9197586 100644
--- a/roles/kubernetes/node/templates/kubelet.j2
+++ b/roles/kubernetes/node/templates/kubelet.j2
@@ -1,4 +1,4 @@
-{% if init_system == "sysvinit" %}
+{% if ansible_service_mgr in ["sysvinit","upstart"] %}
 # Logging directory
 KUBE_LOGGING="--log-dir={{ kube_log_dir }} --logtostderr=true"
 {% else %}
@@ -30,7 +30,7 @@ DOCKER_SOCKET="--docker-endpoint=unix:/var/run/weave/weave.sock"
 {% endif %}
 # Should this cluster be allowed to run privileged docker containers
 KUBE_ALLOW_PRIV="--allow_privileged=true"
-{% if init_system == "sysvinit" %}
+{% if ansible_service_mgr in ["sysvinit","upstart"] %}
 DAEMON_ARGS="$KUBE_LOGGING $KUBE_LOG_LEVEL $KUBE_ALLOW_PRIV $KUBELET_API_SERVER $KUBELET_ADDRESS \
 $KUBELET_HOSTNAME $KUBELET_REGISTER_NODE $KUBELET_ARGS $DOCKER_SOCKET $KUBELET_ARGS $KUBELET_NETWORK_PLUGIN"
 {% endif %}
diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml
index 7ceda9b1f..88aef9d6f 100644
--- a/roles/kubernetes/preinstall/tasks/main.yml
+++ b/roles/kubernetes/preinstall/tasks/main.yml
@@ -15,24 +15,6 @@
       paths:
       - ../vars
 
-- name: "Identify init system"
-  shell: >
-    $(pgrep systemd > /dev/null && systemctl status network.target > /dev/null);
-    if [ $? -eq 0 ] ; then
-      echo systemd;
-    else
-      echo sysvinit;
-    fi
-  always_run: True
-  register: init_system_output
-  changed_when: False
-  tags: always
-
-- set_fact:
-    init_system: "{{ init_system_output.stdout }}"
-  always_run: True
-  tags: always
-
 - name: Create kubernetes config directory
   file:
     path: "{{ kube_config_dir }}"
@@ -56,7 +38,7 @@
     path: "{{ kube_log_dir }}"
     state: directory
     owner: kube
-  when: init_system == "sysvinit"
+  when: ansible_service_mgr in ["sysvinit","upstart"]
 
 - name: Create cni directories
   file:
diff --git a/roles/network_plugin/calico/handlers/main.yml b/roles/network_plugin/calico/handlers/main.yml
index 59163cc07..1e8d56dbe 100644
--- a/roles/network_plugin/calico/handlers/main.yml
+++ b/roles/network_plugin/calico/handlers/main.yml
@@ -7,7 +7,7 @@
 
 - name : reload systemd
   shell: systemctl daemon-reload
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
 
 - name: reload calico-node
   service:
diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml
index d8f51fa1a..d7f9930b6 100644
--- a/roles/network_plugin/calico/tasks/main.yml
+++ b/roles/network_plugin/calico/tasks/main.yml
@@ -14,7 +14,7 @@
     src: systemd-docker.service
     dest: /lib/systemd/system/docker.service
   notify: restart docker
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
 
 - meta: flush_handlers
 
@@ -80,21 +80,21 @@
 
 - name: Calico | Write /etc/network-environment
   template: src=network-environment.j2 dest=/etc/network-environment
-  when: init_system == "sysvinit"
+  when: ansible_service_mgr in ["sysvinit","upstart"]
 
 - name: Calico | Write calico-node systemd init file
   template: src=calico-node.service.j2 dest=/etc/systemd/system/calico-node.service
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
   notify: restart calico-node
 
 - name: Calico | Write calico-node initd script
   template: src=deb-calico.initd.j2 dest=/etc/init.d/calico-node owner=root mode=0755
-  when: init_system == "sysvinit" and ansible_os_family == "Debian"
+  when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian"
   notify: restart calico-node
 
 - name: Calico | Write calico-node initd script
   template: src=rh-calico.initd.j2 dest=/etc/init.d/calico-node owner=root mode=0755
-  when: init_system == "sysvinit" and ansible_os_family == "RedHat"
+  when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "RedHat"
   notify: restart calico-node
 
 - meta: flush_handlers
diff --git a/roles/network_plugin/calico/templates/docker b/roles/network_plugin/calico/templates/docker
index 2f547a6c3..332b7503f 100644
--- a/roles/network_plugin/calico/templates/docker
+++ b/roles/network_plugin/calico/templates/docker
@@ -1,5 +1,5 @@
 # Deployed by Ansible
-{% if init_system == "sysvinit" and kube_network_plugin == "flannel" and ansible_os_family == "Debian" %}
+{% if ansible_service_mgr in ["sysvinit","upstart"] and kube_network_plugin == "flannel" and ansible_os_family == "Debian" %}
 DOCKER_OPTS="--bip={{ flannel_subnet }} --mtu={{ flannel_mtu }}"
 {% elif kube_network_plugin == "flannel" and ansible_os_family == "RedHat" %}
 DOCKER_NETWORK_OPTIONS="--bip={{ flannel_subnet }} --mtu={{ flannel_mtu }}"
diff --git a/roles/network_plugin/flannel/handlers/main.yml b/roles/network_plugin/flannel/handlers/main.yml
index 1683b8c35..427370569 100644
--- a/roles/network_plugin/flannel/handlers/main.yml
+++ b/roles/network_plugin/flannel/handlers/main.yml
@@ -13,7 +13,7 @@
 
 - name : reload systemd
   shell: systemctl daemon-reload
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
 
 - name: reload docker
   service:
diff --git a/roles/network_plugin/flannel/tasks/main.yml b/roles/network_plugin/flannel/tasks/main.yml
index 5cdbf24ac..6cfa302fb 100644
--- a/roles/network_plugin/flannel/tasks/main.yml
+++ b/roles/network_plugin/flannel/tasks/main.yml
@@ -47,6 +47,6 @@
     src: systemd-docker.service
     dest: /lib/systemd/system/docker.service
   notify: restart docker
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
 
 - meta: flush_handlers
diff --git a/roles/network_plugin/flannel/templates/docker b/roles/network_plugin/flannel/templates/docker
index eefd150e1..028fd07b1 100644
--- a/roles/network_plugin/flannel/templates/docker
+++ b/roles/network_plugin/flannel/templates/docker
@@ -1,5 +1,5 @@
 # Deployed by Ansible
-{% if init_system == "sysvinit" and kube_network_plugin == "flannel" and ansible_os_family == "Debian" %}
+{% if ansible_service_mgr in ["sysvinit","upstart"] and kube_network_plugin == "flannel" and ansible_os_family == "Debian" %}
 DOCKER_OPTS="--bip={{ flannel_subnet }} --mtu={{ flannel_mtu }}"
 {% elif kube_network_plugin == "flannel" %}
 OPTIONS="--bip={{ flannel_subnet }} --mtu={{ flannel_mtu }}"
diff --git a/roles/network_plugin/weave/handlers/main.yml b/roles/network_plugin/weave/handlers/main.yml
index 959db16c7..3bb21c346 100644
--- a/roles/network_plugin/weave/handlers/main.yml
+++ b/roles/network_plugin/weave/handlers/main.yml
@@ -7,7 +7,7 @@
 
 - name : reload systemd
   shell: systemctl daemon-reload
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
 
 - name: restart weave
   command: /bin/true
diff --git a/roles/network_plugin/weave/tasks/main.yml b/roles/network_plugin/weave/tasks/main.yml
index 0fbbbc35d..cd415cf42 100644
--- a/roles/network_plugin/weave/tasks/main.yml
+++ b/roles/network_plugin/weave/tasks/main.yml
@@ -14,7 +14,7 @@
     src: systemd-docker.service
     dest: /lib/systemd/system/docker.service
   notify: restart docker
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
 
 - meta: flush_handlers
 
@@ -41,17 +41,17 @@
 
 - name: Weave | Write weave systemd init file
   template: src=weave.service.j2 dest=/etc/systemd/system/weave.service
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
   notify: restart systemd-weave
 
 - name: Weave | Write weaveproxy systemd init file
   template: src=weaveproxy.service.j2 dest=/etc/systemd/system/weaveproxy.service
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
   notify: restart systemd-weaveproxy
 
 - name: Weave | Write weaveexpose systemd init file
   template: src=weaveexpose.service.j2 dest=/etc/systemd/system/weaveexpose.service
-  when: init_system == "systemd"
+  when: ansible_service_mgr == "systemd"
   notify: restart systemd-weaveexpose
 
 - name: Weave | Enable weave
-- 
GitLab