aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/testbed-setup/ansible/roles/common/handlers
diff options
context:
space:
mode:
authorPeter Mikus <pmikus@cisco.com>2019-02-23 16:27:07 +0000
committerPeter Mikus <pmikus@cisco.com>2019-05-22 09:30:11 +0000
commit04ea580e111ddf5be6101be1fbfe9fde56f1a214 (patch)
tree09247ed50f1da5e09b79dcf41a05b38afeaa4ee2 /resources/tools/testbed-setup/ansible/roles/common/handlers
parentc6cd03e08d9429168b0e183b8dcbce991112f279 (diff)
Ansible: Add CIMC/IPMI/COBBLER
- added tasks and handlers for CIMC, IPMI, COBBLER - allows provisioning of servers via COBBLER Change-Id: I64080069260dabb8a6e3b648aeff12f109d3f7c2 Signed-off-by: Peter Mikus <pmikus@cisco.com>
Diffstat (limited to 'resources/tools/testbed-setup/ansible/roles/common/handlers')
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/handlers/cimc.yaml69
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/handlers/ipmi.yaml47
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/handlers/main.yaml24
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/handlers/reboot.yaml14
4 files changed, 140 insertions, 14 deletions
diff --git a/resources/tools/testbed-setup/ansible/roles/common/handlers/cimc.yaml b/resources/tools/testbed-setup/ansible/roles/common/handlers/cimc.yaml
new file mode 100644
index 0000000000..e31d712d4d
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/common/handlers/cimc.yaml
@@ -0,0 +1,69 @@
+---
+# file: roles/common/handlers/cimc.yaml
+
+- name: Boot from network
+ imc_rest:
+ hostname: '{{ inventory_cimc_hostname }}'
+ username: '{{ inventory_cimc_username }}'
+ password: '{{ inventory_cimc_password }}'
+ validate_certs: no
+ content: |
+ <!-- Configure PXE boot -->
+ <configConfMo><inConfig>
+ <lsbootLan dn="sys/rack-unit-1/boot-policy/lan-read-only" access="read-only" order="1" prot="pxe" type="lan"/>
+ </inConfig></configConfMo>
+ delegate_to: localhost
+ tags: boot-network
+
+- name: Boot from storage
+ imc_rest:
+ hostname: '{{ inventory_cimc_hostname }}'
+ username: '{{ inventory_cimc_username }}'
+ password: '{{ inventory_cimc_password }}'
+ validate_certs: no
+ content: |
+ <configConfMo><inConfig>
+ <lsbootStorage dn="sys/rack-unit-1/boot-policy/storage-read-write" access="read-write" order="1" type="storage"/>
+ </inConfig></configConfMo>
+ delegate_to: localhost
+ tags: boot-storage
+
+- name: Power up server
+ imc_rest:
+ hostname: '{{ inventory_cimc_hostname }}'
+ username: '{{ inventory_cimc_username }}'
+ password: '{{ inventory_cimc_password }}'
+ validate_certs: no
+ content: |
+ <configConfMo><inConfig>
+ <computeRackUnit dn="sys/rack-unit-1" adminPower="up"/>
+ </inConfig></configConfMo>
+ delegate_to: localhost
+ tags: power-up
+
+- name: Power down server
+ imc_rest:
+ hostname: '{{ inventory_cimc_hostname }}'
+ username: '{{ inventory_cimc_username }}'
+ password: '{{ inventory_cimc_password }}'
+ validate_certs: no
+ content: |
+ <configConfMo><inConfig>
+ <computeRackUnit dn="sys/rack-unit-1" adminPower="down"/>
+ </inConfig></configConfMo>
+ delegate_to: localhost
+ tags: power-down
+
+- name: Power cycle server
+ imc_rest:
+ hostname: '{{ inventory_cimc_hostname }}'
+ username: '{{ inventory_cimc_username }}'
+ password: '{{ inventory_cimc_password }}'
+ validate_certs: no
+ content: |
+ <!-- Power cycle server -->
+ <configConfMo><inConfig>
+ <computeRackUnit dn="sys/rack-unit-1" adminPower="cycle-immediate"/>
+ </inConfig></configConfMo>
+ delegate_to: localhost
+ tags: power-cycle
diff --git a/resources/tools/testbed-setup/ansible/roles/common/handlers/ipmi.yaml b/resources/tools/testbed-setup/ansible/roles/common/handlers/ipmi.yaml
new file mode 100644
index 0000000000..6252cc04fd
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/common/handlers/ipmi.yaml
@@ -0,0 +1,47 @@
+---
+# file: roles/common/handlers/ipmi.yaml
+
+- name: Boot from network
+ ipmi_boot:
+ name: '{{ inventory_ipmi_hostname }}'
+ user: '{{ inventory_ipmi_username }}'
+ password: '{{ inventory_ipmi_password }}'
+ bootdev: network
+ delegate_to: localhost
+ tags: boot-network
+
+- name: Boot from storage
+ ipmi_boot:
+ name: '{{ inventory_ipmi_hostname }}'
+ user: '{{ inventory_ipmi_username }}'
+ password: '{{ inventory_ipmi_password }}'
+ bootdev: hd
+ delegate_to: localhost
+ tags: boot-storage
+
+- name: Power up server
+ ipmi_power:
+ name: '{{ inventory_ipmi_hostname }}'
+ user: '{{ inventory_ipmi_username }}'
+ password: '{{ inventory_ipmi_password }}'
+ state: on
+ delegate_to: localhost
+ tags: power-up
+
+- name: Power down server
+ ipmi_power:
+ name: '{{ inventory_ipmi_hostname }}'
+ user: '{{ inventory_ipmi_username }}'
+ password: '{{ inventory_ipmi_password }}'
+ state: off
+ delegate_to: localhost
+ tags: power-down
+
+- name: Power cycle server
+ ipmi_power:
+ name: '{{ inventory_ipmi_hostname }}'
+ user: '{{ inventory_ipmi_username }}'
+ password: '{{ inventory_ipmi_password }}'
+ state: boot
+ delegate_to: localhost
+ tags: power-cycle
diff --git a/resources/tools/testbed-setup/ansible/roles/common/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/common/handlers/main.yaml
index bdcf6832f4..f994afdc60 100644
--- a/resources/tools/testbed-setup/ansible/roles/common/handlers/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/common/handlers/main.yaml
@@ -1,6 +1,30 @@
---
# file: roles/common/handlers/main.yaml
+- name: IPMI specific
+ import_tasks: ipmi.yaml
+ when: inventory_ipmi_hostname is defined
+ tags: ipmi-handlers
+
+- name: CIMC specific
+ import_tasks: cimc.yaml
+ when: inventory_cimc_hostname is defined
+ tags: cimc-handlers
+
- name: Update GRUB
command: update-grub
tags: update-grub
+
+- name: Reboot server
+ reboot:
+ reboot_timeout: 3600
+ tags: reboot-server
+
+- name: Wait for server to restart
+ wait_for:
+ host: '{{ inventory_hostname }}'
+ search_regex: OpenSSH
+ port: 22
+ delay: 60
+ timeout: 3600
+ tags: reboot-server
diff --git a/resources/tools/testbed-setup/ansible/roles/common/handlers/reboot.yaml b/resources/tools/testbed-setup/ansible/roles/common/handlers/reboot.yaml
deleted file mode 100644
index 01e1eb1b6b..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/common/handlers/reboot.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-# file roles/common/handlers/reboot.yaml
-
-- name: Reboot host
- command: shutdown -r now "Ansible updates triggered"
- async: 0
- poll: 0
- ignore_errors: true
- tags: reboot-host
-
-- name: Waiting for server to come back
- local_action: wait_for host={{ inventory_hostname }}
- state=started
- tags: reboot-host