diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:03:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:03:42 +0000 |
commit | 66cec45960ce1d9c794e9399de15c138acb18aed (patch) | |
tree | 59cd19d69e9d56b7989b080da7c20ef1a3fe2a5a /ansible_collections/google/cloud/roles/gcloud/tasks | |
parent | Initial commit. (diff) | |
download | ansible-66cec45960ce1d9c794e9399de15c138acb18aed.tar.xz ansible-66cec45960ce1d9c794e9399de15c138acb18aed.zip |
Adding upstream version 7.3.0+dfsg.upstream/7.3.0+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/google/cloud/roles/gcloud/tasks')
7 files changed, 211 insertions, 0 deletions
diff --git a/ansible_collections/google/cloud/roles/gcloud/tasks/archive/archive_install.yml b/ansible_collections/google/cloud/roles/gcloud/tasks/archive/archive_install.yml new file mode 100644 index 00000000..9216563d --- /dev/null +++ b/ansible_collections/google/cloud/roles/gcloud/tasks/archive/archive_install.yml @@ -0,0 +1,53 @@ +--- +- name: gcloud | Archive | Ensure temp path exists + ansible.builtin.file: + path: "{{ gcloud_archive_path }}" + state: "directory" + mode: "0755" + +- name: gcloud | Archive | Extract Cloud SDK archive + ansible.builtin.unarchive: + src: "{{ gcloud_archive_url }}" + dest: "{{ gcloud_archive_path }}" + remote_src: yes + creates: "{{ gcloud_library_path }}" + +- name: gcloud | Archive | Link binaries to /usr/bin (like package install) + ansible.builtin.file: + src: "{{ gcloud_library_path }}/bin/{{ item }}" + dest: "/usr/bin/{{ item }}" + state: link + loop: + - bq + - docker-credential-gcloud + - gcloud + - git-credential-gcloud.sh + - gsutil + when: not gcloud_install_script + +- name: gcloud | Archive | Add command completion + ansible.builtin.include_tasks: command_completion.yml + when: gcloud_command_completion + +- name: gcloud | Archive | Install into Path + ansible.builtin.command: >- + {{ gcloud_archive_path }}/install.sh --quiet + --usage-reporting {{ gcloud_usage_reporting | lower }} + {% if gcloud_profile_path %} + --rc-path {{ gcloud_profile_path }} + {% endif %} + --command-completion {{ gcloud_command_completion | lower }} + --path-update {{ gcloud_update_path | lower }} + {% if gcloud_override_components | length > 0 %}--override-components + {% for component in gcloud_override_components %}{{ component }} + {% if loop.index < gcloud_override_components | length %} + {% endif %} + {% endfor %} + {% endif %} + {% if gcloud_additional_components | length > 0 %}--additional-components + {% for component in gcloud_additional_components %}{{ component }} + {% if loop.index < gcloud_additional_components | length %} + {% endif %} + {% endfor %} + {% endif %} + when: gcloud_install_script diff --git a/ansible_collections/google/cloud/roles/gcloud/tasks/archive/command_completion.yml b/ansible_collections/google/cloud/roles/gcloud/tasks/archive/command_completion.yml new file mode 100644 index 00000000..61e76536 --- /dev/null +++ b/ansible_collections/google/cloud/roles/gcloud/tasks/archive/command_completion.yml @@ -0,0 +1,34 @@ +--- +# task file to configure bash completion for gcloud +- name: gcloud | Archive | Debian | Ensure bash completion is installed + ansible.builtin.apt: + name: "bash-completion" + register: task_result + until: task_result is success + retries: 10 + delay: 2 + when: ansible_os_family == "Debian" + +- name: gcloud | Archive | RedHat | Ensure bash completion is installed + ansible.builtin.yum: + name: + - bash-completion + register: task_result + until: task_result is success + retries: 10 + delay: 2 + when: ansible_os_family == "RedHat" + +- name: gcloud | Archive | Ensure bash_completion.d directory exists + ansible.builtin.file: + path: /etc/bash_completion.d + owner: root + group: root + state: directory + mode: 0755 + +- name: gcloud | Archive | Link binaries to /usr/bin (like package install) + ansible.builtin.file: + src: "{{ gcloud_library_path }}/completion.bash.inc" + dest: /etc/bash_completion.d/gcloud + state: link diff --git a/ansible_collections/google/cloud/roles/gcloud/tasks/archive/main.yml b/ansible_collections/google/cloud/roles/gcloud/tasks/archive/main.yml new file mode 100644 index 00000000..0397fc6f --- /dev/null +++ b/ansible_collections/google/cloud/roles/gcloud/tasks/archive/main.yml @@ -0,0 +1,41 @@ +--- +# tasks to install gcloud via archive +- name: gcloud | Archive | Look for existing Google Cloud SDK installation + ansible.builtin.stat: + path: "{{ gcloud_archive_path }}/google-cloud-sdk/VERSION" + register: gcloud_status + +- name: gcloud | Archive | Get gcloud_status + ansible.builtin.debug: + var: "gcloud_status" + +- name: gcloud | Archive | Set installed version if installation exists + when: gcloud_status.stat.exists + block: + - name: gcloud | Archive | Importing contents of ./google-cloud-sdk/VERSION in {{ gcloud_archive_path }} + ansible.builtin.slurp: + src: "{{ gcloud_archive_path }}/google-cloud-sdk/VERSION" + register: gcloud_installed_version_data + - name: gcloud | Archive | Setting the gcloud_installed_version variable/fact + ansible.builtin.set_fact: + gcloud_installed_version: "{{ (gcloud_installed_version_data.content | b64decode | trim) }}" + - name: gcloud | Archive | get the gcloud_installed_version + ansible.builtin.debug: + msg: "google-cloud-sdk: {{ gcloud_installed_version }} is installed" + - name: gcloud | Archive | Version already installed + when: gcloud_version == gcloud_installed_version + ansible.builtin.debug: + msg: >- + Skipping installation of google-cloud-sdk version {{ gcloud_version }} when + {{ gcloud_installed_version }} is already installed. + +- name: gcloud | Archive | Start installation + when: gcloud_installed_version is undefined or + gcloud_version is version(gcloud_installed_version, '>') + ansible.builtin.include_tasks: archive_install.yml + +- name: gcloud | Debian | Install the google-cloud-sdk additional components # noqa 301 + ansible.builtin.command: gcloud components install {{ item }} + register: gcloud_install_comp_status + changed_when: "'All components are up to date.' not in gcloud_install_comp_status.stderr_lines" + loop: "{{ gcloud_additional_components }}" diff --git a/ansible_collections/google/cloud/roles/gcloud/tasks/main.yml b/ansible_collections/google/cloud/roles/gcloud/tasks/main.yml new file mode 100644 index 00000000..577cbb93 --- /dev/null +++ b/ansible_collections/google/cloud/roles/gcloud/tasks/main.yml @@ -0,0 +1,15 @@ +--- + +- name: gcloud | Load Distro and OS specific variables + ansible.builtin.include_vars: "{{ lookup('first_found', params) }}" + vars: + params: + files: + - "os/{{ ansible_distribution | lower }}.yml" + - "os/{{ ansible_os_family | lower }}.yml" + - main.yml + paths: + - 'vars' + +- name: gcloud | Install the google-cloud-sdk from {{ gcloud_install_type }} + ansible.builtin.include_tasks: "{{ gcloud_install_type }}/main.yml" diff --git a/ansible_collections/google/cloud/roles/gcloud/tasks/package/debian.yml b/ansible_collections/google/cloud/roles/gcloud/tasks/package/debian.yml new file mode 100644 index 00000000..fcc7bf2e --- /dev/null +++ b/ansible_collections/google/cloud/roles/gcloud/tasks/package/debian.yml @@ -0,0 +1,31 @@ +--- +# tasks that install gcloud on debian +- name: gcloud | Debian | Add an Apt signing key, uses whichever key is at the URL + ansible.builtin.apt_key: + url: "{{ gcloud_apt_key }}" + state: present + +- name: gcloud | Debian | Add the gcloud repository + ansible.builtin.apt_repository: + repo: "deb {{ gcloud_apt_url }} {{ gcloud_apt_repo }} main" + state: present + filename: google-cloud-sdk + +- name: gcloud | Debian | Install the google-cloud-sdk package + ansible.builtin.apt: + name: "google-cloud-sdk" + update_cache: "yes" + register: task_result + until: task_result is success + retries: 10 + delay: 2 + +- name: gcloud | Debian | Install the google-cloud-sdk additional components + ansible.builtin.apt: + name: "google-cloud-sdk-{{ item }}" + update_cache: "yes" + register: task_result + until: task_result is success + retries: 10 + delay: 2 + loop: "{{ gcloud_additional_components }}" diff --git a/ansible_collections/google/cloud/roles/gcloud/tasks/package/main.yml b/ansible_collections/google/cloud/roles/gcloud/tasks/package/main.yml new file mode 100644 index 00000000..ae8a4f77 --- /dev/null +++ b/ansible_collections/google/cloud/roles/gcloud/tasks/package/main.yml @@ -0,0 +1,5 @@ +--- +# tasks file for gcloud + +- name: gcloud | Start package installation for specific distro + ansible.builtin.include_tasks: "{{ ansible_os_family | lower }}.yml" diff --git a/ansible_collections/google/cloud/roles/gcloud/tasks/package/redhat.yml b/ansible_collections/google/cloud/roles/gcloud/tasks/package/redhat.yml new file mode 100644 index 00000000..3b358d0e --- /dev/null +++ b/ansible_collections/google/cloud/roles/gcloud/tasks/package/redhat.yml @@ -0,0 +1,32 @@ +--- +- name: gcloud | RHEL | Add an Apt signing key, uses whichever key is at the URL + ansible.builtin.yum_repository: + name: google-cloud-sdk + description: Google Cloud SDK + ansible.builtin.file: google-cloud-sdk + baseurl: https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64 + enabled: yes + gpgcheck: yes + repo_gpgcheck: yes + gpgkey: + - https://packages.cloud.google.com/yum/doc/yum-key.gpg + - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg + +- name: gcloud | RHEL | Install the google-cloud-sdk package + ansible.builtin.yum: + name: "google-cloud-sdk" + update_cache: "yes" + register: task_result + until: task_result is success + retries: 10 + delay: 2 + +- name: gcloud | Debian | Install the google-cloud-sdk additional components + ansible.builtin.yum: + name: "google-cloud-sdk-{{ item }}" + update_cache: "yes" + register: task_result + until: task_result is success + retries: 10 + delay: 2 + loop: "{{ gcloud_additional_components }}" |