From 1aa37728ad0f67f6e30257a831b7d61a508f579e Mon Sep 17 00:00:00 2001 From: Christophe Siraut Date: Thu, 30 Aug 2018 16:33:32 +0200 Subject: [PATCH 2/3] decouple getting sources from installation and allow remote execution (#21756) --- clean.yml | 2 +- delete-tenants.yml | 2 +- deploy-tenants.yml | 2 +- git_clone.yml | 15 ++++ group_vars/all | 1 + install.yml | 8 ++- install_source.yml | 16 ----- roles/base/tasks/main.yml | 16 ----- roles/deploy-tenants/tasks/main.yml | 1 + roles/get-sources/tasks/main.yml | 136 ++++++++++++++++++++++++++++++++++++ 10 files changed, 163 insertions(+), 36 deletions(-) create mode 100644 git_clone.yml create mode 100644 roles/get-sources/tasks/main.yml diff --git a/clean.yml b/clean.yml index 51701d4..e5f146e 100644 --- a/clean.yml +++ b/clean.yml @@ -1,5 +1,5 @@ --- -- hosts: local +- hosts: "{{target}}" tasks: - name: delete venv file: diff --git a/delete-tenants.yml b/delete-tenants.yml index 9b92085..e3c8725 100644 --- a/delete-tenants.yml +++ b/delete-tenants.yml @@ -1,6 +1,6 @@ --- - name: delete all publik tenants - hosts: local + hosts: "{{target}" vars: venv_bin: "{{venv}}/bin" roles: diff --git a/deploy-tenants.yml b/deploy-tenants.yml index 4e5707b..033e92e 100644 --- a/deploy-tenants.yml +++ b/deploy-tenants.yml @@ -1,6 +1,6 @@ --- - name: deploy publik tenants for local developement - hosts: local + hosts: "{{target}}" roles: - facts - deploy-tenants diff --git a/git_clone.yml b/git_clone.yml new file mode 100644 index 0000000..b1df8bc --- /dev/null +++ b/git_clone.yml @@ -0,0 +1,15 @@ +- name: "ssh git clone {{ repo }}" + git: + repo: "ssh://git@git.entrouvert.org/{{ repo }}.git" + dest: "{{ repo_dir }}" + when: + - git_ssh + - clone_repo + +- name: "standard git clone {{ repo }}" + git: + repo: "git://repos.entrouvert.org/{{ repo }}.git" + dest: "{{ repo_dir }}" + when: + - not git_ssh + - clone_repo diff --git a/group_vars/all b/group_vars/all index 57ef67e..3cc837d 100644 --- a/group_vars/all +++ b/group_vars/all @@ -7,6 +7,7 @@ ssl_certificate: "/etc/ssl/certs/*.local.publik.crt" ssl_certificate_key: "/etc/ssl/private/*.local.publik.key" venv: "/home/{{user}}/envs/publik-env" user: your_user_name +target: localhost apps: authentic: db_name: authentic_multitenant diff --git a/install.yml b/install.yml index da0316e..1d6776f 100644 --- a/install.yml +++ b/install.yml @@ -1,6 +1,12 @@ --- +- name: collect facts and get sources + hosts: localhost + roles: + - facts + - get-sources + - name: publik multitenants installation - hosts: local + hosts: "{{ target }}" roles: - facts - base diff --git a/install_source.yml b/install_source.yml index f7a9fc0..0e1df55 100644 --- a/install_source.yml +++ b/install_source.yml @@ -1,19 +1,3 @@ -- name: "ssh git clone {{ repo }}" - git: - repo: "ssh://git@git.entrouvert.org/{{ repo }}.git" - dest: "{{ repo_dir }}" - when: - - git_ssh - - clone_repo - -- name: "standard git clone {{ repo }}" - git: - repo: "git://repos.entrouvert.org/{{ repo }}.git" - dest: "{{ repo_dir }}" - when: - - not git_ssh - - clone_repo - # Ugly hack to perform a simple 'pip install -e /some/source/dir' - name: "pip install {{ repo_dir }}" pip: diff --git a/roles/base/tasks/main.yml b/roles/base/tasks/main.yml index 7d7464d..c705ece 100644 --- a/roles/base/tasks/main.yml +++ b/roles/base/tasks/main.yml @@ -66,22 +66,6 @@ repo: "eopayment" repo_dir: "{{ src_dir }}/eopayment" -- name: ssh git clone publik-base-theme - git: - repo: ssh://git@git.entrouvert.org/publik-base-theme.git - dest: "{{ src_dir }}/publik-base-theme" - when: - - git_ssh - - clone_repo - -- name: standard git clone publik-base-theme - git: - repo: git://repos.entrouvert.org/publik-base-theme.git - dest: "{{ src_dir }}/publik-base-theme" - when: - - not git_ssh - - clone_repo - - name: make publik-base-theme make: chdir: "{{ src_dir }}/publik-base-theme" diff --git a/roles/deploy-tenants/tasks/main.yml b/roles/deploy-tenants/tasks/main.yml index 76a8a66..3326063 100644 --- a/roles/deploy-tenants/tasks/main.yml +++ b/roles/deploy-tenants/tasks/main.yml @@ -24,6 +24,7 @@ copy: src: "/tmp/{{wcs_skeleton_filename}}" dest: "/var/lib/wcs/skeletons/{{wcs_skeleton_filename}}" + remote_src: yes - name: copies a cook json template template: diff --git a/roles/get-sources/tasks/main.yml b/roles/get-sources/tasks/main.yml new file mode 100644 index 0000000..931524b --- /dev/null +++ b/roles/get-sources/tasks/main.yml @@ -0,0 +1,136 @@ +- name: "create {{src_dir}} directory" + file: + path: "{{src_dir}}" + state: directory + owner: "{{user}}" + group: "{{user}}" + +- name: get eopayment + import_tasks: git_clone.yml + vars: + repo: "eopayment" + repo_dir: "{{ src_dir }}/eopayment" + +- name: ssh git clone publik-base-theme + git: + repo: ssh://git@git.entrouvert.org/publik-base-theme.git + dest: "{{ src_dir }}/publik-base-theme" + when: + - git_ssh + - clone_repo + +- name: standard git clone publik-base-theme + git: + repo: git://repos.entrouvert.org/publik-base-theme.git + dest: "{{ src_dir }}/publik-base-theme" + when: + - not git_ssh + - clone_repo + +### + +- name: get django-mellon + import_tasks: git_clone.yml + vars: + repo: "django-mellon" + repo_dir: "{{ src_dir }}/django-mellon" + +- name: get gadjo + import_tasks: git_clone.yml + vars: + repo: "gadjo" + repo_dir: "{{ src_dir }}/gadjo" + +- name: get django-tenant-schemas + import_tasks: git_clone.yml + vars: + repo: "debian/django-tenant-schemas" + repo_dir: "{{ src_dir }}/django-tenant-schemas" + +- name: get hobo + import_tasks: git_clone.yml + vars: + repo: "hobo" + repo_dir: "{{ src_dir }}/hobo" + +### + +- name: get authentic + import_tasks: git_clone.yml + vars: + repo: "authentic" + repo_dir: "{{ src_dir }}/authentic" + +- name: get authentic2-auth-fc + import_tasks: git_clone.yml + vars: + repo: "authentic2-auth-fc" + repo_dir: "{{ src_dir }}/authentic2-auth-fc" + +### + +- name: get combo + import_tasks: git_clone.yml + vars: + repo: "combo" + repo_dir: "{{ src_dir }}/combo" + +### + +- name: get wcs + import_tasks: git_clone.yml + vars: + repo: "wcs" + repo_dir: "{{ src_dir }}/wcs" + +- name: get auquotidien + import_tasks: git_clone.yml + vars: + repo: "auquotidien" + repo_dir: "{{ src_dir }}/auquotidien" + +### + +- name: get django-tenant-schemas + import_tasks: git_clone.yml + vars: + repo: "debian/django-tenant-schemas" + repo_dir: "{{ src_dir }}/django-tenant-schemas" + +- name: get passerelle + import_tasks: git_clone.yml + vars: + repo: "passerelle" + repo_dir: "{{ src_dir }}/passerelle" + +### + +- name: get fargo + import_tasks: git_clone.yml + vars: + repo: "fargo" + repo_dir: "{{ src_dir }}/fargo" + +- name: get chrono + import_tasks: git_clone.yml + vars: + repo: "chrono" + repo_dir: "{{ src_dir }}/chrono" + +- name: get corbo + import_tasks: git_clone.yml + vars: + repo: "corbo" + repo_dir: "{{ src_dir }}/corbo" + +- name: get bijoe + import_tasks: git_clone.yml + vars: + repo: "bijoe" + repo_dir: "{{ src_dir }}/bijoe" + +- name: get welco + import_tasks: git_clone.yml + vars: + repo: "welco" + repo_dir: "{{ src_dir }}/welco" -- 2.11.0