Install specific version of Erlang from ESL
The RabbitMQ community and project recommend erlang 19.3.x for the best, most stable, results. This change downloads the recommended version of erlang [ https://www.rabbitmq.com/which-erlang.html ] from ESL and moves the erlang packages for distros into a specific list installed only when the ``rabbitmq_install_method`` variable is not set to "file". Change-Id: Ief57b1fdcb791f0f8ed20c1cbb54ea19d4373f81 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
parent
a1fec14374
commit
83a95efda1
@ -39,6 +39,10 @@ rabbitmq_release_version: "{{ _rabbitmq_release_version }}"
|
|||||||
rabbitmq_package_sha256: "{{ _rabbitmq_package_sha256 }}"
|
rabbitmq_package_sha256: "{{ _rabbitmq_package_sha256 }}"
|
||||||
rabbitmq_package_path: "{{ _rabbitmq_package_path }}"
|
rabbitmq_package_path: "{{ _rabbitmq_package_path }}"
|
||||||
|
|
||||||
|
rabbitmq_gpg_keys: "{{ _rabbitmq_gpg_keys }}"
|
||||||
|
rabbitmq_repo_url: "{{ _rabbitmq_repo_url }}"
|
||||||
|
rabbitmq_erlang_repo_url: "{{ _rabbitmq_erlang_repo_url }}"
|
||||||
|
|
||||||
# Choose file, distro, external_repo for rabbitmq_install_method.
|
# Choose file, distro, external_repo for rabbitmq_install_method.
|
||||||
rabbitmq_install_method: "file"
|
rabbitmq_install_method: "file"
|
||||||
|
|
||||||
|
@ -34,5 +34,10 @@ galaxy_info:
|
|||||||
dependencies:
|
dependencies:
|
||||||
- pip_install
|
- pip_install
|
||||||
- role: apt_package_pinning
|
- role: apt_package_pinning
|
||||||
|
apt_package_pinning_file_name: "rabbitmq.pref"
|
||||||
|
apt_package_pinning_priority: 999
|
||||||
|
apt_pinned_packages:
|
||||||
|
- package: "*"
|
||||||
|
release: "Erlang Solutions Ltd."
|
||||||
when:
|
when:
|
||||||
- ansible_pkg_mgr == 'apt'
|
- ansible_pkg_mgr == 'apt'
|
||||||
|
25
releasenotes/notes/esl-repo-6ff0c7f24ad2a043.yaml
Normal file
25
releasenotes/notes/esl-repo-6ff0c7f24ad2a043.yaml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- A new repository for installing modern erlang from ESL
|
||||||
|
(erlang solutions) has been added giving us the ability
|
||||||
|
to install and support modern stable erlang over numerous
|
||||||
|
operating systems.
|
||||||
|
- The ability to set the RabbitMQ repo URL for both erlang
|
||||||
|
and RabbitMQ itself has been added. This has been done to
|
||||||
|
allow deployers to define the location of a given repo without
|
||||||
|
having to fully redefine the entire set of definitions for a
|
||||||
|
specific repository. The default variables `rabbitmq_gpg_keys`,
|
||||||
|
`rabbitmq_repo_url`, and `rabbitmq_erlang_repo_url` have been
|
||||||
|
created to facilitate this capability.
|
||||||
|
upgrade:
|
||||||
|
- Changing to the ESL repos has no upgrade impact. The version
|
||||||
|
of erlang provided by ESL is newer than that what is found in
|
||||||
|
the distro repos. Furthermore, a pin has been added to
|
||||||
|
ensure that APT always uses the ESL repos as it's preferred
|
||||||
|
source which has been done to simply ensure APT is always
|
||||||
|
pointed at ESL.
|
||||||
|
fixes:
|
||||||
|
- Based on documentation from RabbitMQ
|
||||||
|
[ https://www.rabbitmq.com/which-erlang.html ] this change
|
||||||
|
ensures the version of erlang we're using across distros is
|
||||||
|
consistent and supported by RabbitMQ.
|
@ -13,20 +13,6 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
- name: Install RabbitMQ package dependencies
|
|
||||||
apt:
|
|
||||||
pkg: "{{ item }}"
|
|
||||||
state: "{{ rabbitmq_package_state }}"
|
|
||||||
update_cache: yes
|
|
||||||
cache_valid_time: "{{ cache_timeout }}"
|
|
||||||
register: install_packages
|
|
||||||
until: install_packages|success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
with_items: "{{ rabbitmq_dependencies | deprecated(rabbitmq_apt_packages, 'rabbitmq_apt_packages', 'rabbitmq_dependencies', 'Ocata') }}"
|
|
||||||
tags:
|
|
||||||
- rabbitmq-apt-packages
|
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Add rabbitmq apt-keys
|
- name: Add rabbitmq apt-keys
|
||||||
apt_key:
|
apt_key:
|
||||||
@ -39,7 +25,6 @@
|
|||||||
until: add_keys | success
|
until: add_keys | success
|
||||||
retries: 5
|
retries: 5
|
||||||
delay: 2
|
delay: 2
|
||||||
when: rabbitmq_install_method == 'external_repo'
|
|
||||||
with_items: "{{ rabbitmq_gpg_keys }}"
|
with_items: "{{ rabbitmq_gpg_keys }}"
|
||||||
tags:
|
tags:
|
||||||
- rabbitmq-apt-keys
|
- rabbitmq-apt-keys
|
||||||
@ -57,7 +42,6 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items: "{{ rabbitmq_gpg_keys }}"
|
with_items: "{{ rabbitmq_gpg_keys }}"
|
||||||
when:
|
when:
|
||||||
- rabbitmq_install_method == 'external_repo'
|
|
||||||
- (item.fallback_keyserver is defined or item.fallback_url is defined)
|
- (item.fallback_keyserver is defined or item.fallback_url is defined)
|
||||||
tags:
|
tags:
|
||||||
- rabbitmq-apt-keys
|
- rabbitmq-apt-keys
|
||||||
@ -71,28 +55,55 @@
|
|||||||
until: add_repos|success
|
until: add_repos|success
|
||||||
retries: 5
|
retries: 5
|
||||||
delay: 2
|
delay: 2
|
||||||
when: rabbitmq_install_method == 'external_repo'
|
when:
|
||||||
|
- rabbitmq_install_method == 'external_repo'
|
||||||
tags:
|
tags:
|
||||||
- rabbitmq-repos
|
- rabbitmq-repos
|
||||||
|
|
||||||
- name: Install the RabbitMQ package through a deb file
|
- name: Add erlang repo
|
||||||
|
apt_repository:
|
||||||
|
repo: "{{ rabbitmq_erlang_repo.repo }}"
|
||||||
|
state: "{{ rabbitmq_erlang_repo.state }}"
|
||||||
|
filename: "{{ rabbitmq_erlang_repo.filename | default(omit) }}"
|
||||||
|
register: add_repos
|
||||||
|
until: add_repos|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
tags:
|
||||||
|
- rabbitmq-repos
|
||||||
|
|
||||||
|
- name: Install RabbitMQ package dependencies
|
||||||
|
apt:
|
||||||
|
pkg: "{{ rabbitmq_dependencies | deprecated(rabbitmq_apt_packages, 'rabbitmq_apt_packages', 'rabbitmq_dependencies', 'Ocata') }}"
|
||||||
|
state: "{{ rabbitmq_package_state }}"
|
||||||
|
update_cache: yes
|
||||||
|
cache_valid_time: "{{ cache_timeout }}"
|
||||||
|
register: install_packages
|
||||||
|
until: install_packages|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
tags:
|
||||||
|
- rabbitmq-apt-packages
|
||||||
|
|
||||||
|
- name: Install the RabbitMQ package deb
|
||||||
apt:
|
apt:
|
||||||
deb: "{{ rabbitmq_package_path }}"
|
deb: "{{ rabbitmq_package_path }}"
|
||||||
register: install_rabbitmq
|
register: install_rabbitmq
|
||||||
when: rabbitmq_install_method == 'file'
|
when:
|
||||||
|
- rabbitmq_install_method == 'file'
|
||||||
tags:
|
tags:
|
||||||
- rabbitmq-package-deb
|
- rabbitmq-package-deb
|
||||||
- rabbitmq-apt-packages
|
- rabbitmq-apt-packages
|
||||||
|
|
||||||
- name: Install RabbitMQ packages
|
- name: Install RabbitMQ packages
|
||||||
package:
|
package:
|
||||||
name: "{{ item }}"
|
name: "{{ rabbitmq_erlang_distro_packages }}"
|
||||||
state: "{{ rabbitmq_package_state }}"
|
state: "{{ rabbitmq_package_state }}"
|
||||||
register: install_packages
|
register: install_packages
|
||||||
until: install_packages|success
|
until: install_packages|success
|
||||||
retries: 5
|
retries: 5
|
||||||
delay: 2
|
delay: 2
|
||||||
with_items: "{{ rabbitmq_distro_packages }}"
|
when:
|
||||||
when: rabbitmq_install_method != 'file'
|
- rabbitmq_install_method != 'file'
|
||||||
tags:
|
tags:
|
||||||
- rabbitmq-apt-packages
|
- rabbitmq-apt-packages
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
retries: 5
|
retries: 5
|
||||||
delay: 2
|
delay: 2
|
||||||
with_items: "{{ rabbitmq_gpg_keys }}"
|
with_items: "{{ rabbitmq_gpg_keys }}"
|
||||||
when: rabbitmq_install_method != 'file'
|
|
||||||
tags:
|
tags:
|
||||||
- rabbitmq-gpg-keys
|
- rabbitmq-gpg-keys
|
||||||
|
|
||||||
@ -38,7 +37,6 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items: "{{ rabbitmq_gpg_keys }}"
|
with_items: "{{ rabbitmq_gpg_keys }}"
|
||||||
when:
|
when:
|
||||||
- rabbitmq_install_method != 'file'
|
|
||||||
- item.fallback_keyserver is defined
|
- item.fallback_keyserver is defined
|
||||||
tags:
|
tags:
|
||||||
- rabbitmq-gpg-keys
|
- rabbitmq-gpg-keys
|
||||||
@ -55,7 +53,23 @@
|
|||||||
gpgkey: "{{ rabbitmq_repo.gpgkey | default(omit) }}"
|
gpgkey: "{{ rabbitmq_repo.gpgkey | default(omit) }}"
|
||||||
sslverify: "{{ rabbitmq_repo.sslverify | default(omit) }}"
|
sslverify: "{{ rabbitmq_repo.sslverify | default(omit) }}"
|
||||||
sslcacert: "{{ rabbitmq_repo.sslcacert | default(omit) }}"
|
sslcacert: "{{ rabbitmq_repo.sslcacert | default(omit) }}"
|
||||||
when: rabbitmq_install_method != 'file'
|
when:
|
||||||
|
- rabbitmq_install_method != 'file'
|
||||||
|
tags:
|
||||||
|
- rabbitmq-repos
|
||||||
|
|
||||||
|
- name: Install erlang yum mirror
|
||||||
|
yum_repository:
|
||||||
|
name: "{{ rabbitmq_erlang_repo.name }}"
|
||||||
|
file: "{{ rabbitmq_erlang_repo.filename | default(omit) }}"
|
||||||
|
description: "{{ rabbitmq_erlang_repo.description | default(omit) }}"
|
||||||
|
baseurl: "{{ rabbitmq_erlang_repo.baseurl }}"
|
||||||
|
repo_gpgcheck: "{{ rabbitmq_erlang_repo.repo_gpgcheck | default(omit) }}"
|
||||||
|
gpgcheck: "{{ rabbitmq_erlang_repo.gpgcheck | default(omit) }}"
|
||||||
|
state: "{{ rabbitmq_erlang_repo.state }}"
|
||||||
|
gpgkey: "{{ rabbitmq_erlang_repo.gpgkey | default(omit) }}"
|
||||||
|
sslverify: "{{ rabbitmq_erlang_repo.sslverify | default(omit) }}"
|
||||||
|
sslcacert: "{{ rabbitmq_erlang_repo.sslcacert | default(omit) }}"
|
||||||
tags:
|
tags:
|
||||||
- rabbitmq-repos
|
- rabbitmq-repos
|
||||||
|
|
||||||
@ -72,6 +86,14 @@
|
|||||||
tags:
|
tags:
|
||||||
- rabbitmq-yum-packages
|
- rabbitmq-yum-packages
|
||||||
|
|
||||||
|
- name: Install RabbitMQ packages
|
||||||
|
yum:
|
||||||
|
name: "{{ (rabbitmq_install_method == 'file') | ternary(rabbitmq_package_path, rabbitmq_distro_packages) }}"
|
||||||
|
register: install_rabbitmq
|
||||||
|
tags:
|
||||||
|
- rabbitmq-package-rpm
|
||||||
|
- rabbitmq-yum-packages
|
||||||
|
|
||||||
- name: Install RabbitMQ package dependencies for external_repo usage
|
- name: Install RabbitMQ package dependencies for external_repo usage
|
||||||
yum:
|
yum:
|
||||||
pkg: "{{ item }}"
|
pkg: "{{ item }}"
|
||||||
@ -81,14 +103,7 @@
|
|||||||
retries: 5
|
retries: 5
|
||||||
delay: 2
|
delay: 2
|
||||||
with_items: "{{ rabbitmq_mirror_dependencies }}"
|
with_items: "{{ rabbitmq_mirror_dependencies }}"
|
||||||
when: rabbitmq_install_method != 'file'
|
when:
|
||||||
|
- rabbitmq_install_method != 'file'
|
||||||
tags:
|
tags:
|
||||||
- rabbitmq-yum-packages
|
- rabbitmq-yum-packages
|
||||||
|
|
||||||
- name: Install the RabbitMQ package
|
|
||||||
yum:
|
|
||||||
name: "{{ (rabbitmq_install_method == 'file') | ternary(rabbitmq_package_path, rabbitmq_distro_packages) }}"
|
|
||||||
register: install_rabbitmq
|
|
||||||
tags:
|
|
||||||
- rabbitmq-package-rpm
|
|
||||||
- rabbitmq-yum-packages
|
|
||||||
|
@ -19,6 +19,28 @@ _rabbitmq_release_version: "{{ rabbitmq_package_version.split('-')[0] }}"
|
|||||||
_rabbitmq_package_sha256: "ff100febb8c409692e57f3dc98fd2fc667f83eeefa3958a6fda865ce40a40349"
|
_rabbitmq_package_sha256: "ff100febb8c409692e57f3dc98fd2fc667f83eeefa3958a6fda865ce40a40349"
|
||||||
_rabbitmq_package_path: "/opt/rabbitmq-server.deb"
|
_rabbitmq_package_path: "/opt/rabbitmq-server.deb"
|
||||||
|
|
||||||
|
_rabbitmq_gpg_keys:
|
||||||
|
- key_name: 'rabbitmq'
|
||||||
|
keyserver: 'hkp://keyserver.ubuntu.com:80'
|
||||||
|
fallback_keyserver: 'hkp://p80.pool.sks-keyservers.net:80'
|
||||||
|
hash_id: '0x6B73A36E6026DFCA'
|
||||||
|
- key_name: 'erlang_solutions'
|
||||||
|
keyserver: 'hkp://keyserver.ubuntu.com:80'
|
||||||
|
fallback_keyserver: 'hkp://p80.pool.sks-keyservers.net:80'
|
||||||
|
hash_id: '0xd208507ca14f4fca'
|
||||||
|
|
||||||
|
_rabbitmq_repo_url: "http://www.rabbitmq.com/debian"
|
||||||
|
rabbitmq_repo:
|
||||||
|
repo: "deb {{ rabbitmq_repo_url }} testing main"
|
||||||
|
state: "present"
|
||||||
|
filename: "RabbitMQ"
|
||||||
|
|
||||||
|
_rabbitmq_erlang_repo_url: "https://packages.erlang-solutions.com/{{ ansible_distribution | lower }}"
|
||||||
|
rabbitmq_erlang_repo:
|
||||||
|
repo: "deb {{ rabbitmq_erlang_repo_url }} {{ ansible_distribution_release | lower }} contrib"
|
||||||
|
state: "present"
|
||||||
|
filename: els_erlang
|
||||||
|
|
||||||
rabbitmq_dependencies:
|
rabbitmq_dependencies:
|
||||||
- erlang-base-hipe
|
- erlang-base-hipe
|
||||||
- erlang-nox
|
- erlang-nox
|
||||||
@ -26,15 +48,3 @@ rabbitmq_dependencies:
|
|||||||
|
|
||||||
rabbitmq_distro_packages:
|
rabbitmq_distro_packages:
|
||||||
- rabbitmq-server
|
- 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"
|
|
||||||
filename: "RabbitMQ"
|
|
||||||
|
@ -19,8 +19,36 @@ _rabbitmq_release_version: "{{ rabbitmq_package_version.split('-')[2] }}"
|
|||||||
_rabbitmq_package_sha256: "757fc6746a1700380b3ba9bf4f00dfa16cc5a0ddc8c94636c4388e838f605c31"
|
_rabbitmq_package_sha256: "757fc6746a1700380b3ba9bf4f00dfa16cc5a0ddc8c94636c4388e838f605c31"
|
||||||
_rabbitmq_package_path: "/opt/rabbitmq-server.rpm"
|
_rabbitmq_package_path: "/opt/rabbitmq-server.rpm"
|
||||||
|
|
||||||
|
_rabbitmq_gpg_keys:
|
||||||
|
- key_name: 'rabbitmq-release-signing-key.asc'
|
||||||
|
keyserver: 'https://www.rabbitmq.com'
|
||||||
|
- key_name: 'erlang_solutions.asc'
|
||||||
|
keyserver: 'https://packages.erlang-solutions.com/ubuntu'
|
||||||
|
|
||||||
|
_rabbitmq_repo_url: "https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch"
|
||||||
|
rabbitmq_repo:
|
||||||
|
name: rabbitmq_rabbitmq-server
|
||||||
|
description: "RabbitMQ Server Rolling Repository"
|
||||||
|
baseurl: "{{ rabbitmq_repo_url }}"
|
||||||
|
repo_gpgcheck: yes
|
||||||
|
state: "present"
|
||||||
|
gpgkey: "https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey"
|
||||||
|
filename: RabbitMQ
|
||||||
|
# TODO(evrardjp) Move to ssl verify yes
|
||||||
|
#sslverify: no
|
||||||
|
#sslcacert: /etc/pki/tls/certs/ca-bundle.crt
|
||||||
|
|
||||||
|
_rabbitmq_erlang_repo_url: "https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch"
|
||||||
|
rabbitmq_erlang_repo:
|
||||||
|
name: rabbitmq_els-erlang
|
||||||
|
description: "Erlang Solutions Erlang"
|
||||||
|
baseurl: "{{ rabbitmq_erlang_repo_url }}"
|
||||||
|
repo_gpgcheck: no
|
||||||
|
state: "present"
|
||||||
|
filename: els-erlang
|
||||||
|
|
||||||
rabbitmq_dependencies:
|
rabbitmq_dependencies:
|
||||||
- erlang
|
- erlang-hipe
|
||||||
- openssl
|
- openssl
|
||||||
- socat
|
- socat
|
||||||
|
|
||||||
@ -30,19 +58,3 @@ rabbitmq_mirror_dependencies:
|
|||||||
|
|
||||||
rabbitmq_distro_packages:
|
rabbitmq_distro_packages:
|
||||||
- rabbitmq-server
|
- 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"
|
|
||||||
filename: RabbitMQ
|
|
||||||
# TODO(evrardjp) Move to ssl verify yes
|
|
||||||
#sslverify: no
|
|
||||||
#sslcacert: /etc/pki/tls/certs/ca-bundle.crt
|
|
||||||
|
Loading…
Reference in New Issue
Block a user