From 62a8ef6d0b2d891a527ff96c1bb4f4b7ccb492e0 Mon Sep 17 00:00:00 2001 From: George Hunt Date: Fri, 24 Nov 2017 16:57:46 +0000 Subject: [PATCH] create a script that executes at every startup --- roles/2-common/tasks/main.yml | 2 ++ roles/2-common/tasks/startup.yml | 25 +++++++++++++++++++ roles/2-common/templates/iiab-startup.service | 10 ++++++++ roles/2-common/templates/iiab-startup.sh | 7 ++++++ 4 files changed, 44 insertions(+) create mode 100644 roles/2-common/tasks/startup.yml create mode 100644 roles/2-common/templates/iiab-startup.service create mode 100644 roles/2-common/templates/iiab-startup.sh diff --git a/roles/2-common/tasks/main.yml b/roles/2-common/tasks/main.yml index 638457f5f..44cbdc41c 100644 --- a/roles/2-common/tasks/main.yml +++ b/roles/2-common/tasks/main.yml @@ -44,6 +44,8 @@ - include_tasks: udev.yml +- include_tasks: iiab-startup.yml + - name: Recording STAGE 2 HAS COMPLETED ========================== lineinfile: dest=/etc/iiab/iiab.env regexp='^STAGE=*' diff --git a/roles/2-common/tasks/startup.yml b/roles/2-common/tasks/startup.yml new file mode 100644 index 000000000..076348e63 --- /dev/null +++ b/roles/2-common/tasks/startup.yml @@ -0,0 +1,25 @@ +- name: Does systemd startup service exist + stat: path="{{ systemd_location }}/iiab-startup.service" + register: startup_unit + +- name: Copy startup service to /etc/systemd/system + template: src=iiab-startup.service + dest=/etc/systemd/system/ + when: startup_unit.stat.exists is defined and not startup_unit.stat.exists + +- name: Copy startup script + template: src=iiab-startup.sh + dest=/usr/libexec/ + when: startup_unit.stat.exists is defined and not startup_unit.stat.exists + +- name: Ask systemd to recognize the changes + shell: systemctl daemon-reload + when: startup_unit.stat.exists is defined and not startup_unit.stat.exists + +- name: Restart so systemd recognizes the changes + shell: systemctl restart iiab-startup.service + when: startup_unit.stat.exists is defined and not startup_unit.stat.exists + +- name: Enable the reload service + shell: systemctl enable iiab-startup.service + when: startup_unit.stat.exists is defined and not startup_unit.stat.exists diff --git a/roles/2-common/templates/iiab-startup.service b/roles/2-common/templates/iiab-startup.service new file mode 100644 index 000000000..82db659e5 --- /dev/null +++ b/roles/2-common/templates/iiab-startup.service @@ -0,0 +1,10 @@ +[Unit] +Description=Execute startup script +After=network-online.target + +[Service] +Type=oneshot +ExecStart=/usr/libecec/iiab-startup.sh + +[Install] +WantedBy=multi-user.target diff --git a/roles/2-common/templates/iiab-startup.sh b/roles/2-common/templates/iiab-startup.sh new file mode 100644 index 000000000..09db83827 --- /dev/null +++ b/roles/2-common/templates/iiab-startup.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# put initialization that needs to happen at every startup for IIAB here + +if [ ! -f /etc/iiab/uuid ]; then + uuidgen > /etc/iiab/uuid +fi +