From ad8de6f200d084e5ee4020ec8fdf9e47e3b43c95 Mon Sep 17 00:00:00 2001 From: Nicolas KAROLAK <nicolas@karolak.fr> Date: Fri, 10 Apr 2020 08:30:32 +0000 Subject: [PATCH] add offline deployment mode | fixes #31856 --- .gitignore | 1 + .../host_vars/localhost.dist.yml | 5 ++++ inventories/offline-mediaserver/hosts | 24 +++++++++++++++++++ .../host_vars/localhost.dist.yml | 5 ++++ inventories/offline-mediaworker/hosts | 6 +++++ roles/conf/tasks/main.yml | 9 ++++--- roles/repos/tasks/main.yml | 16 +++++++++---- 7 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 inventories/offline-mediaserver/host_vars/localhost.dist.yml create mode 100644 inventories/offline-mediaserver/hosts create mode 100644 inventories/offline-mediaworker/host_vars/localhost.dist.yml create mode 100644 inventories/offline-mediaworker/hosts diff --git a/.gitignore b/.gitignore index 9858f9b9..75936471 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ __pycache__/ inventories/* !inventories/example !inventories/local* +!inventories/offline* inventories/local*/host_vars/localhost.yml playbooks/_* roles/_* diff --git a/inventories/offline-mediaserver/host_vars/localhost.dist.yml b/inventories/offline-mediaserver/host_vars/localhost.dist.yml new file mode 100644 index 00000000..da378679 --- /dev/null +++ b/inventories/offline-mediaserver/host_vars/localhost.dist.yml @@ -0,0 +1,5 @@ +--- + +offline_mode: true + +... diff --git a/inventories/offline-mediaserver/hosts b/inventories/offline-mediaserver/hosts new file mode 100644 index 00000000..9cb3341c --- /dev/null +++ b/inventories/offline-mediaserver/hosts @@ -0,0 +1,24 @@ +localhost ansible_connection=local + +[msmonitor] +localhost + +[postgres] +localhost + +[mirismanager] +localhost + +[mediaserver] +localhost + +;[wowza] +;localhost + +[celerity] +localhost + +[mediaimport] +localhost + +; vim:ft=dosini diff --git a/inventories/offline-mediaworker/host_vars/localhost.dist.yml b/inventories/offline-mediaworker/host_vars/localhost.dist.yml new file mode 100644 index 00000000..da378679 --- /dev/null +++ b/inventories/offline-mediaworker/host_vars/localhost.dist.yml @@ -0,0 +1,5 @@ +--- + +offline_mode: true + +... diff --git a/inventories/offline-mediaworker/hosts b/inventories/offline-mediaworker/hosts new file mode 100644 index 00000000..4b3a22ad --- /dev/null +++ b/inventories/offline-mediaworker/hosts @@ -0,0 +1,6 @@ +localhost ansible_connection=local + +[mediaworker] +localhost + +; vim:ft=dosini diff --git a/roles/conf/tasks/main.yml b/roles/conf/tasks/main.yml index f48c0c8d..5b30b0c7 100644 --- a/roles/conf/tasks/main.yml +++ b/roles/conf/tasks/main.yml @@ -14,6 +14,7 @@ name: "{{ conf_req_packages }}" - name: clone envsetup repository + when: not offline_mode | d(false) ignore_errors: true register: conf_clone git: @@ -22,7 +23,9 @@ dest: "{{ conf_repo_dest }}" - name: ask to continue - when: conf_clone is failed + when: + - not offline_mode | d(false) + - conf_clone is failed pause: prompt: "Previous task failed, it may be normal if you have local changes in the commited files, do you want to continue anyway?" seconds: 30 @@ -110,7 +113,7 @@ prefix: envsetup_ lower: true -- name: load generated conf if exists +- name: load generated conf changed_when: false check_mode: false source_file: @@ -118,7 +121,7 @@ prefix: envsetup_ lower: true -- name: load local conf if exists +- name: load local conf changed_when: false check_mode: false source_file: diff --git a/roles/repos/tasks/main.yml b/roles/repos/tasks/main.yml index df933606..3439586c 100644 --- a/roles/repos/tasks/main.yml +++ b/roles/repos/tasks/main.yml @@ -1,7 +1,9 @@ --- - name: ubuntu apt repo sources list - when: ansible_distribution == 'Ubuntu' + when: + - not offline_mode | d(false) + - ansible_distribution == 'Ubuntu' notify: update cache copy: dest: /etc/apt/sources.list @@ -12,7 +14,9 @@ deb {{ repos_prefix }}security.ubuntu.com/ubuntu {{ repos_release }}-security main restricted universe multiverse - name: debian apt repo sources list - when: ansible_distribution == 'Debian' + when: + - not offline_mode | d(false) + - ansible_distribution == 'Debian' notify: update cache copy: dest: /etc/apt/sources.list @@ -22,12 +26,16 @@ deb {{ repos_prefix }}{{ repos_deb_sec }}/debian-security {{ repos_release }}/updates main contrib non-free - name: add skyreach apt repo key - when: repos_skyreach_token | d(false) + when: + - not offline_mode | d(false) + - repos_skyreach_token | d(false) apt_key: url: https://{{ repos_skyreach_host }}/media/public.gpg - name: add skyreach apt repo - when: repos_skyreach_token | d(false) + when: + - not offline_mode | d(false) + - repos_skyreach_token | d(false) apt_repository: repo: deb https://{{ repos_skyreach_host }} packaging/apt/{{ repos_skyreach_token }}/ filename: skyreach -- GitLab