diff --git a/ansible-scylla-node/defaults/main.yml b/ansible-scylla-node/defaults/main.yml index b5accce2..82940f8c 100644 --- a/ansible-scylla-node/defaults/main.yml +++ b/ansible-scylla-node/defaults/main.yml @@ -103,13 +103,15 @@ firewall_enabled: false # URL of an RPM .repo file or a DEB .list file # deprecated in favour of below, it will be dropped soon, below should be used -scylla_repos: - - http://downloads.scylladb.com/rpm/centos/scylla-2021.1.repo - -scylla_deb_repos: - - http://downloads.scylladb.com/deb/ubuntu/scylla-2021.1.list - -scylla_rpm_repos: "{{ scylla_repos }}" +#scylla_repos: +# - http://downloads.scylladb.com/rpm/centos/scylla-2021.1.repo +# +# Both scylla_deb_repos and scylla_rpm_repos, if undefined, would resolve to a URL that corresponds +# to a scylla version to which scylla_version resolves to. +#scylla_deb_repos: +# - http://downloads.scylladb.com/deb/ubuntu/scylla-2021.1.list +# +#scylla_rpm_repos: "{{ scylla_repos }}" # Use a newer kernel from ELRepo (was recommended for RHEL/CentOS until 5.11) # Reboot after the elrepo kernel has been installed is recommended as well. diff --git a/ansible-scylla-node/tasks/main.yml b/ansible-scylla-node/tasks/main.yml index 9dc42e57..036e7a7d 100644 --- a/ansible-scylla-node/tasks/main.yml +++ b/ansible-scylla-node/tasks/main.yml @@ -54,6 +54,9 @@ msg: "Latest Scylla version can only be installed with an 'online' installation" when: scylla_version == 'latest' and install_type != 'online' +- name: Set a repository URL if not explicitly set + include_tasks: set_default_repo.yml + # Upgrade - name: Upgrade Scylla include_tasks: upgrade/main.yml diff --git a/ansible-scylla-node/tasks/set_default_repo.yml b/ansible-scylla-node/tasks/set_default_repo.yml new file mode 100644 index 00000000..e0b6ea8f --- /dev/null +++ b/ansible-scylla-node/tasks/set_default_repo.yml @@ -0,0 +1,32 @@ +--- +- name: Split {{ scylla_version_to_install }} + set_fact: + _split_version: "{{ scylla_version_to_install.split('.') }}" + +- name: Check that {{ scylla_version_to_install }} has a valid format + fail: + msg: "scylla_version resolved to {{ scylla_version_to_install }} and it can't be used with undefined scylla_deb_repos. See README.md for more details." + when: (_split_version|length < 2) + +- name: Set default repository for a Debian host + block: + - name: Set temporary fact + set_fact: + _scylla_repo_default: "http://downloads.scylladb.com/deb/ubuntu/scylla-{{ _split_version[0] }}.{{ _split_version[1] }}.list" + + - name: Set scylla_deb_repos + set_fact: + scylla_deb_repos: [ "{{ _scylla_repo_default }}" ] + when: ansible_os_family|lower == 'debian' and scylla_deb_repos is not defined + +- name: Set default repository for a RedHat host + block: + - name: Set temporary fact + set_fact: + _scylla_repo_default: "http://downloads.scylladb.com/rpm/centos/scylla-{{ _split_version[0] }}.{{ _split_version[1] }}.repo" + + - name: Set scylla_rpm_repos + set_fact: + scylla_rpm_repos: [ "{{ _scylla_repo_default }}" ] + when: ansible_os_family|lower == 'redhat' and scylla_rpm_repos is not defined +