]> git.apps.os.sepia.ceph.com Git - ceph-cm-ansible.git/commitdiff
Cobbler: ship ipmi-related utility scripts
authorZack Cerza <zack@redhat.com>
Wed, 22 Jul 2015 15:35:20 +0000 (09:35 -0600)
committerZack Cerza <zack@redhat.com>
Thu, 23 Jul 2015 16:52:08 +0000 (10:52 -0600)
console.sh, reboot.sh, and reimage.sh

Signed-off-by: Zack Cerza <zack@redhat.com>
roles/cobbler/defaults/main.yml
roles/cobbler/tasks/ipmi_secrets.yml [new file with mode: 0644]
roles/cobbler/tasks/main.yml
roles/cobbler/tasks/upload_templates.yml
roles/cobbler/templates/utils/console.sh [new file with mode: 0644]
roles/cobbler/templates/utils/reboot.sh [new file with mode: 0644]
roles/cobbler/templates/utils/reimage.sh [new file with mode: 0644]
roles/cobbler_systems/defaults/main.yml

index 791b1fd5407138160417f3b31c16712efa2061d9..41475d6d0073ed91ee81b52523dd68c4705c6d3c 100644 (file)
@@ -40,6 +40,11 @@ scripts:
 triggers:
   - install/post/cephlab_ansible.sh
 
+utils:
+  - console.sh
+  - reboot.sh
+  - reimage.sh
+
 ansible_user_ssh_keys: []
 
 ansible_user: ''
@@ -51,3 +56,9 @@ ansible_user_uid_: ''
 #      - "nameserver x.x.x.x"
 #      - "search an.example.com"
 resolvconf: []
+
+power_type: ipmilan
+# power_user and power_pass defaults will need to be overridden in a secrets
+# repo to be useful
+power_user: poweruser
+power_pass: powerpass
diff --git a/roles/cobbler/tasks/ipmi_secrets.yml b/roles/cobbler/tasks/ipmi_secrets.yml
new file mode 100644 (file)
index 0000000..3c04eed
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- name: Set path to IPMI credentials
+  set_fact:
+      ipmi_creds_path: "{{ secrets_path }}/ipmi.yml"
+  when: ipmi_creds_path is undefined
+
+- name: Include IPMI credentials
+  include_vars: "{{ item }}"
+  with_first_found:
+    - "{{ ipmi_creds_path }}"
+    - empty.yml
+  no_log: true
index 531f83090e69c674d1970527bd05cb4bab2284f8..e1f0ac6d156f3afd5afbd8be7d8611c667642c5e 100644 (file)
@@ -1,4 +1,8 @@
 ---
+- include: ipmi_secrets.yml
+  tags:
+    - always
+
 - name: Include cobbler keys.
   include_vars: "{{ secrets_path | mandatory }}/cobbler_keys.yml"
   no_log: true
index 97ceb4c02fb6f6ccde166aadfc5fddbe6005135a..c17b0204376306bd08ce8d85d785f2ddad11c4cb 100644 (file)
   with_items: triggers
   tags:
     - triggers
+
+- name: Create /root/bin
+  file:
+    path: /root/bin
+    state: directory
+    owner: root
+    group: root
+    mode: 0755
+  tags:
+    - utils
+
+- name: Upload utilities for convenience.
+  template:
+    src: "utils/{{ item }}"
+    dest: "/root/bin/{{ item }}"
+    owner: root
+    group: root
+    mode: 0755
+  with_items: utils
+  tags:
+    - utils
diff --git a/roles/cobbler/templates/utils/console.sh b/roles/cobbler/templates/utils/console.sh
new file mode 100644 (file)
index 0000000..bbd07cf
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/bash
+## {{ ansible_managed }}
+set -ex
+name=$1
+ipmitool -H $name.{{ ipmi_domain }} -I lanplus -U {{ power_user }} -P {{ power_pass }} sol activate
diff --git a/roles/cobbler/templates/utils/reboot.sh b/roles/cobbler/templates/utils/reboot.sh
new file mode 100644 (file)
index 0000000..3251590
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/bash
+## {{ ansible_managed }}
+name=$1
+cobbler system reboot --name $name
diff --git a/roles/cobbler/templates/utils/reimage.sh b/roles/cobbler/templates/utils/reimage.sh
new file mode 100644 (file)
index 0000000..4aee52d
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+## {{ ansible_managed }}
+set -ex
+name=$1
+profile=$2
+echo "Reimaging $name with profile $profile"
+# First turn netboot off so that cobbler removes any stale PXE data
+cobbler system edit --name=$name netboot off
+cobbler system edit --name=$name --profile $profile --netboot on && cobbler system reboot --name $name
index db468e6a1df69a60a4a55499c2a817e53727ffa9..ff53866550d71074471204342b1243e88623638a 100644 (file)
@@ -1,5 +1,6 @@
 ---
 interface: eth0
 kernel_options: ''
+kernel_options_post: ''
 default_profile: "Ubuntu-14.04-server-x86_64"