summaryrefslogtreecommitdiffstats
path: root/ansible_collections/google/cloud/roles/gcloud/tasks
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 16:03:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 16:03:42 +0000
commit66cec45960ce1d9c794e9399de15c138acb18aed (patch)
tree59cd19d69e9d56b7989b080da7c20ef1a3fe2a5a /ansible_collections/google/cloud/roles/gcloud/tasks
parentInitial commit. (diff)
downloadansible-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')
-rw-r--r--ansible_collections/google/cloud/roles/gcloud/tasks/archive/archive_install.yml53
-rw-r--r--ansible_collections/google/cloud/roles/gcloud/tasks/archive/command_completion.yml34
-rw-r--r--ansible_collections/google/cloud/roles/gcloud/tasks/archive/main.yml41
-rw-r--r--ansible_collections/google/cloud/roles/gcloud/tasks/main.yml15
-rw-r--r--ansible_collections/google/cloud/roles/gcloud/tasks/package/debian.yml31
-rw-r--r--ansible_collections/google/cloud/roles/gcloud/tasks/package/main.yml5
-rw-r--r--ansible_collections/google/cloud/roles/gcloud/tasks/package/redhat.yml32
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 }}"