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