Merge "Add repo installation method"
This commit is contained in:
@@ -39,6 +39,9 @@ rabbitmq_release_version: "{{ _rabbitmq_release_version }}"
|
||||
rabbitmq_package_sha256: "{{ _rabbitmq_package_sha256 }}"
|
||||
rabbitmq_package_path: "{{ _rabbitmq_package_path }}"
|
||||
|
||||
# Choose file, distro, external_repo for rabbitmq_install_method.
|
||||
rabbitmq_install_method: "file"
|
||||
|
||||
# Name of the rabbitmq cluster
|
||||
rabbitmq_cluster_name: rabbitmq_cluster1
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
RabbitMQ Server can now be installed from different
|
||||
methods: a deb file (default), from standard
|
||||
repository package and from external repository.
|
||||
Current behavior is unchanged. Please define
|
||||
``rabbitmq_install_method: distro`` to use packages
|
||||
provided by your distribution or
|
||||
``rabbitmq_install_method: external_repo`` to use
|
||||
packages stored in an external repo. In the case
|
||||
``external_repo`` is used, the process will install
|
||||
RabbitMQ from the packages hosted by packagecloud.io,
|
||||
as recommended by RabbitMQ.
|
||||
@@ -27,10 +27,72 @@
|
||||
tags:
|
||||
- rabbitmq-apt-packages
|
||||
|
||||
- name: Install the RabbitMQ package
|
||||
- name: Add rabbitmq apt-keys
|
||||
apt_key:
|
||||
id: "{{ item.hash_id }}"
|
||||
keyserver: "{{ item.keyserver | default(omit) }}"
|
||||
data: "{{ item.data | default(omit) }}"
|
||||
url: "{{ item.url | default(omit) }}"
|
||||
state: "present"
|
||||
register: add_keys
|
||||
until: add_keys|success
|
||||
failed_when: false
|
||||
retries: 5
|
||||
delay: 2
|
||||
when: rabbitmq_install_method == 'external_repo'
|
||||
with_items: "{{ rabbitmq_gpg_keys }}"
|
||||
tags:
|
||||
- rabbitmq-apt-keys
|
||||
|
||||
- name: Add rabbitmq apt-keys using fallback keyserver
|
||||
apt_key:
|
||||
id: "{{ item.hash_id }}"
|
||||
keyserver: "{{ item.fallback_keyserver | default(omit) }}"
|
||||
url: "{{ item.fallback_url | default(omit) }}"
|
||||
state: "present"
|
||||
register: add_keys_fallback
|
||||
until: add_keys_fallback|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: "{{ rabbitmq_gpg_keys }}"
|
||||
when:
|
||||
- rabbitmq_install_method == 'external_repo'
|
||||
- add_keys|failed
|
||||
- (item.fallback_keyserver is defined or item.fallback_url is defined)
|
||||
tags:
|
||||
- rabbitmq-apt-keys
|
||||
|
||||
- name: Add rabbitmq repo
|
||||
apt_repository:
|
||||
repo: "{{ rabbitmq_repo.repo }}"
|
||||
state: "{{ rabbitmq_repo.state }}"
|
||||
filename: "RabbitMQ"
|
||||
register: add_repos
|
||||
until: add_repos|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
when: rabbitmq_install_method == 'external_repo'
|
||||
tags:
|
||||
- rabbitmq-repos
|
||||
|
||||
- name: Install the RabbitMQ package through a deb file
|
||||
apt:
|
||||
deb: "{{ rabbitmq_package_path }}"
|
||||
register: install_rabbitmq
|
||||
when: rabbitmq_install_method == 'file'
|
||||
tags:
|
||||
- rabbitmq-package-deb
|
||||
- rabbitmq-apt-packages
|
||||
|
||||
- name: Install RabbitMQ packages
|
||||
package:
|
||||
name: "{{ item }}"
|
||||
state: "{{ rabbitmq_package_state }}"
|
||||
register: install_packages
|
||||
until: install_packages|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: "{{ rabbitmq_distro_packages }}"
|
||||
when: rabbitmq_install_method != 'file'
|
||||
tags:
|
||||
- rabbitmq-apt-packages
|
||||
|
||||
@@ -21,6 +21,52 @@
|
||||
tags:
|
||||
- rabbitmq-yum-packages
|
||||
|
||||
- name: Add rabbitmq gpg-keys
|
||||
rpm_key:
|
||||
state: present
|
||||
key: "{{ item.keyserver }}/{{ item.key_name }}"
|
||||
register: add_keys
|
||||
until: add_keys|success
|
||||
failed_when: false
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: "{{ rabbitmq_gpg_keys }}"
|
||||
when: rabbitmq_install_method != 'file'
|
||||
tags:
|
||||
- rabbitmq-gpg-keys
|
||||
|
||||
- name: Add rabbitmq gpg-keys using fallback keyserver
|
||||
rpm_key:
|
||||
state: present
|
||||
key: "{{ item.fallback_keyserver }}/{{ item.key_name }}"
|
||||
register: add_keys
|
||||
until: add_keys|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: "{{ rabbitmq_gpg_keys }}"
|
||||
when:
|
||||
- rabbitmq_install_method != 'file'
|
||||
- add_keys|failed
|
||||
- item.fallback_keyserver is defined
|
||||
tags:
|
||||
- rabbitmq-gpg-keys
|
||||
|
||||
- name: Install RabbitMQ yum mirror
|
||||
yum_repository:
|
||||
name: "{{ rabbitmq_repo.name }}"
|
||||
file: "RabbitMQ"
|
||||
description: "{{ rabbitmq_repo.description | default(omit) }}"
|
||||
baseurl: "{{ rabbitmq_repo.baseurl }}"
|
||||
repo_gpgcheck: "{{ rabbitmq_repo.repo_gpgcheck | default(omit) }}"
|
||||
gpgcheck: "{{ rabbitmq_repo.gpgcheck | default(omit) }}"
|
||||
state: "{{ rabbitmq_repo.state }}"
|
||||
gpgkey: "{{ rabbitmq_repo.gpgkey | default(omit) }}"
|
||||
sslverify: "{{ rabbitmq_repo.sslverify | default(omit) }}"
|
||||
sslcacert: "{{ rabbitmq_repo.sslcacert | default(omit) }}"
|
||||
when: rabbitmq_install_method != 'file'
|
||||
tags:
|
||||
- rabbitmq-repos
|
||||
|
||||
- name: Install RabbitMQ package dependencies
|
||||
yum:
|
||||
pkg: "{{ item }}"
|
||||
@@ -34,9 +80,22 @@
|
||||
tags:
|
||||
- rabbitmq-yum-packages
|
||||
|
||||
- name: Install RabbitMQ package dependencies for external_repo usage
|
||||
yum:
|
||||
pkg: "{{ item }}"
|
||||
state: "{{ rabbitmq_package_state }}"
|
||||
register: install_packages
|
||||
until: install_packages|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: "{{ rabbitmq_mirror_dependencies }}"
|
||||
when: rabbitmq_install_method != 'file'
|
||||
tags:
|
||||
- rabbitmq-yum-packages
|
||||
|
||||
- name: Install the RabbitMQ package
|
||||
yum:
|
||||
name: "{{ rabbitmq_package_path }}"
|
||||
name: "{{ (rabbitmq_install_method == 'file') | ternary(rabbitmq_package_path, rabbitmq_distro_packages) }}"
|
||||
register: install_rabbitmq
|
||||
tags:
|
||||
- rabbitmq-package-rpm
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
retries: 3
|
||||
delay: 10
|
||||
until: package_download|success
|
||||
when: rabbitmq_install_method == 'file'
|
||||
tags:
|
||||
- rabbitmq-package-deb
|
||||
- rabbitmq-package-deb-get
|
||||
|
||||
@@ -23,3 +23,17 @@ rabbitmq_dependencies:
|
||||
- erlang-base-hipe
|
||||
- erlang-nox
|
||||
- socat
|
||||
|
||||
rabbitmq_distro_packages:
|
||||
- rabbitmq-server
|
||||
|
||||
rabbitmq_gpg_keys:
|
||||
- key_name: 'rabbitmq'
|
||||
keyserver: 'hkp://keyserver.ubuntu.com:80'
|
||||
fallback_keyserver: 'hkp://p80.pool.sks-keyservers.net:80'
|
||||
hash_id: '0x6B73A36E6026DFCA'
|
||||
|
||||
rabbitmq_apt_repo_url: "http://www.rabbitmq.com/debian"
|
||||
rabbitmq_repo:
|
||||
repo: "deb {{ rabbitmq_apt_repo_url }} testing main"
|
||||
state: "present"
|
||||
@@ -23,3 +23,25 @@ rabbitmq_dependencies:
|
||||
- erlang
|
||||
- openssl
|
||||
- socat
|
||||
|
||||
rabbitmq_mirror_dependencies:
|
||||
- pygpgme
|
||||
- yum-utils
|
||||
|
||||
rabbitmq_distro_packages:
|
||||
- rabbitmq-server
|
||||
|
||||
rabbitmq_gpg_keys:
|
||||
- key_name: 'rabbitmq-release-signing-key.asc'
|
||||
keyserver: 'https://www.rabbitmq.com'
|
||||
|
||||
rabbitmq_repo:
|
||||
name: rabbitmq_rabbitmq-server
|
||||
description: "RabbitMQ Server Rolling Repository"
|
||||
baseurl: "https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch"
|
||||
repo_gpgcheck: yes
|
||||
state: "present"
|
||||
gpgkey: "https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey"
|
||||
# TODO(evrardjp) Move to ssl verify yes
|
||||
#sslverify: no
|
||||
#sslcacert: /etc/pki/tls/certs/ca-bundle.crt
|
||||
Reference in New Issue
Block a user