diff --git a/contrib/ansible/cluster.yml b/contrib/ansible/cluster.yml index 6454c2f8d12..dc67ebc4352 100644 --- a/contrib/ansible/cluster.yml +++ b/contrib/ansible/cluster.yml @@ -1,4 +1,12 @@ --- +- hosts: all + gather_facts: false + sudo: yes + roles: + - pre-ansible + tags: + - pre-ansible + # Install etcd - hosts: etcd sudo: yes diff --git a/contrib/ansible/roles/common/tasks/main.yml b/contrib/ansible/roles/common/tasks/main.yml index caccf33d6a5..71b637bd6dd 100644 --- a/contrib/ansible/roles/common/tasks/main.yml +++ b/contrib/ansible/roles/common/tasks/main.yml @@ -15,7 +15,7 @@ # collect information about what packages are installed - include: rpm.yml - when: ansible_pkg_mgr == "yum" + when: ansible_pkg_mgr == "yum" or ansible_pkg_mgr == "dnf" - include: centos.yml when: ansible_distribution == "CentOS" diff --git a/contrib/ansible/roles/pre-ansible/tasks/fedora-dnf.yml b/contrib/ansible/roles/pre-ansible/tasks/fedora-dnf.yml new file mode 100644 index 00000000000..1c70564a658 --- /dev/null +++ b/contrib/ansible/roles/pre-ansible/tasks/fedora-dnf.yml @@ -0,0 +1,8 @@ +--- +- name: Install minimal packages + raw: dnf install -y {{ item }} + with_items: + - python # everyone need python2 + - python-dnf # some versions of ansible (2.0) use dnf directly + - yum # some versions of ansible use yum + - libselinux-python diff --git a/contrib/ansible/roles/pre-ansible/tasks/main.yml b/contrib/ansible/roles/pre-ansible/tasks/main.yml new file mode 100644 index 00000000000..92abb057c6a --- /dev/null +++ b/contrib/ansible/roles/pre-ansible/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- name: Get os_version from /etc/os-release + raw: "grep '^VERSION_ID=' /etc/os-release | sed s'/VERSION_ID=//'" + register: os_version + +- name: Get distro name from /etc/os-release + raw: "grep '^NAME=' /etc/os-release | sed s'/NAME=//'" + register: distro + +- include: fedora-dnf.yml + when: os_version.stdout|int >= 22 and 'Fedora' in distro.stdout