From 76f4ed875fcc49042877a5e2fde4c3e207ccef7f Mon Sep 17 00:00:00 2001 From: Lars Beckers <lars.beckers@rwth-aachen.de> Date: Thu, 21 Sep 2017 23:13:03 +0200 Subject: [PATCH] add new management role for ansible, etc. --- management/defaults/main.yml | 3 ++ management/files/ansible.sh | 3 ++ management/handlers/main.yml | 12 ++++++++ management/tasks/main.yml | 58 ++++++++++++++++++++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 management/defaults/main.yml create mode 100644 management/files/ansible.sh create mode 100644 management/handlers/main.yml create mode 100644 management/tasks/main.yml diff --git a/management/defaults/main.yml b/management/defaults/main.yml new file mode 100644 index 0000000..b599518 --- /dev/null +++ b/management/defaults/main.yml @@ -0,0 +1,3 @@ +--- + +mgmt_ansible_version: stable-2.3 diff --git a/management/files/ansible.sh b/management/files/ansible.sh new file mode 100644 index 0000000..7055d9c --- /dev/null +++ b/management/files/ansible.sh @@ -0,0 +1,3 @@ +export PATH="/opt/ansible/bin:/opt/ansible/test/runner:$PATH" +export PYTHONPATH="/opt/ansible/lib:$PYTHONPATH" +export MANPATH="/opt/ansible/docs/man:$MANPATH" diff --git a/management/handlers/main.yml b/management/handlers/main.yml new file mode 100644 index 0000000..08544cd --- /dev/null +++ b/management/handlers/main.yml @@ -0,0 +1,12 @@ +--- + +- name: rebuild ansible and its documentation + command: make clean all docs + args: + chdir: /opt/ansible + +- name: rebuild ansible egg info + command: python setup.py egg_info + args: + chdir: /opt/ansible + diff --git a/management/tasks/main.yml b/management/tasks/main.yml new file mode 100644 index 0000000..7992311 --- /dev/null +++ b/management/tasks/main.yml @@ -0,0 +1,58 @@ +--- + +- name: ensure required software for ansible is installed + apt: + name: {{ item }} + state: installed + with_items: + - python-yaml + - python-jinja2 + - python-paramiko + - python-cryptography + - python-sphinx # documentation + - asciidoc # documentation + - squashfs-tools # needed for guest-overlay + tags: + - management + - ansible + +- name: ensure ansible is up to date + git: ansible to opt + dest: /opt/ansible + recursive: yes + repo: https://github.com/ansible/ansible.git + version: {{ mgmt_ansible_version }} + notify: + - rebuild ansible and its documentation + - rebuild ansible egg info + tags: + - management + - ansible + +- name: ensure the environment is set up for running ansible (bash) + copy: + src: ansible.sh + dest: /etc/profile.d/ansible.sh + owner: root + group: root + mode: 0644 + tags: + - management + - ansible + +- name: ensure the environment is set up for running ansible (zsh) + lineinfile: + line: 'source /etc/profile.d/ansible.sh' + path: /etc/zsh/zshenv + state: present + tags: + - management + - ansible + +- name: ensure we can ipmi other hosts + apt: + name: ipmitool + state: installed + tags: + - management + -- GitLab