From fc5c063a2d8ba957a04991324c643979fda6fb52 Mon Sep 17 00:00:00 2001 From: Eric Paris Date: Tue, 23 Jun 2015 13:16:08 -0400 Subject: [PATCH] Support Fedora Rawhide Fedora rawhide has neither yum, nor python2, nor python2 libselinux bindings. Ansible needs all of these. This adds a new play which can be used to get machines setup so they can then be managed with ansible. --- contrib/ansible/cluster.yml | 8 ++++++++ contrib/ansible/roles/common/tasks/main.yml | 2 +- .../ansible/roles/pre-ansible/tasks/fedora-dnf.yml | 8 ++++++++ contrib/ansible/roles/pre-ansible/tasks/main.yml | 11 +++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 contrib/ansible/roles/pre-ansible/tasks/fedora-dnf.yml create mode 100644 contrib/ansible/roles/pre-ansible/tasks/main.yml 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