Eliminate hard code about ipmi info in bash script 25/41525/3
authorAlex Yang <yangyang1@zte.com.cn>
Mon, 11 Sep 2017 11:40:00 +0000 (19:40 +0800)
committerAlex Yang <yangyang1@zte.com.cn>
Tue, 12 Sep 2017 01:33:58 +0000 (09:33 +0800)
Change-Id: I642d130566137dff727b7227658afe6ace9473d6
Signed-off-by: Alex Yang <yangyang1@zte.com.cn>
ci/deploy/deploy.sh
deploy/config/bm_environment/zte-baremetal1/deploy.yml

index 22685e8..b73c80f 100755 (executable)
@@ -476,6 +476,31 @@ function get_mac_addresses_for_virtual()
 }
 
 
+function reboot_baremetal_node()
+{
+    ips=(`grep ipmi_ip $DHA_CONF | awk '{print $2}' | tr "\n" " " | tr -d "\'"`)
+    ip_num=${#ips[@]}
+    users=(`grep ipmi_user $DHA_CONF | awk '{print $2}' | tr "\n" " " | tr -d "\'"`)
+    user_num=${#users[@]}
+    passwds=(`grep ipmi_pass $DHA_CONF | awk '{print $2}' | tr "\n" " " | tr -d "\'"`)
+    pass_num=${#passwds[@]}
+
+    if [ $ip_num -ne $TARGET_HOSTS_NUM ]; then
+        echo "ERROR: IPMI information should be provided for each node !"
+        exit 1
+    fi
+
+    for ((i=0; i<$ip_num; i++)); do
+        if [ $TARGET_HOSTS_NUM -eq $user_num ] && [ $TARGET_HOSTS_NUM -eq $pass_num ]; then
+            ipmitool -I lanplus -H ${ips[$i]} -U ${users[$i]} -P ${passwds[$i]} -R 1 chassis bootdev pxe
+            ipmitool -I lanplus -H ${ips[$i]} -U ${users[$i]} -P ${passwds[$i]} -R 1 chassis power reset
+        else
+            ipmitool -I lanplus -H ${ips[$i]} -R 1 chassis bootdev pxe
+            ipmitool -I lanplus -H ${ips[$i]} -R 1 chassis power reset
+        fi
+    done
+}
+
 echo "====== create and find node ======"
 if [ $IS_BARE == 0 ];then
     if [ $TARGET_HOSTS_NUM == 1 ];then
@@ -498,10 +523,7 @@ if [ $IS_BARE == 0 ];then
     sleep 20
     get_mac_addresses_for_virtual
 else
-    for i in $(seq 106 110); do
-        ipmitool -I lanplus -H 192.168.1.$i -U zteroot -P superuser -R 1 chassis bootdev pxe
-        ipmitool -I lanplus -H 192.168.1.$i -U zteroot -P superuser -R 1 chassis  power reset
-    done
+    reboot_baremetal_node
 fi
 
 echo "====== prepare host and pxe ======"
index d24a956..0c14728 100644 (file)
@@ -1,23 +1,38 @@
-adapter: ipmi\r
-hosts:\r
-- name: 'controller01'\r
-  roles:\r
-    - 'CONTROLLER_LB'\r
-- name: 'controller02'\r
-  roles:\r
-    - 'CONTROLLER_LB'\r
-- name: 'controller03'\r
-  roles:\r
-    - 'CONTROLLER_LB'\r
-- name: 'computer01'\r
-  roles:\r
-    - 'COMPUTER'\r
-- name: 'computer02'\r
-  roles:\r
-    - 'COMPUTER'\r
-disks:\r
-  daisy: 50\r
-daisy_passwd: 'r00tme'\r
-daisy_ip: '10.20.7.3'\r
-daisy_gateway: '10.20.7.1'\r
-ceph_disk_name: '/dev/sdb'\r
+adapter: 'ipmi'
+hosts:
+- name: 'controller01'
+  roles:
+    - 'CONTROLLER_LB'
+  ipmi_ip: '192.168.1.106'
+  ipmi_user: 'testuser'
+  ipmi_pass: 'testpass'
+- name: 'controller02'
+  roles:
+    - 'CONTROLLER_LB'
+  ipmi_ip: '192.168.1.107'
+  ipmi_user: 'testuser'
+  ipmi_pass: 'testpass'
+- name: 'controller03'
+  roles:
+    - 'CONTROLLER_LB'
+  ipmi_ip: '192.168.1.108'
+  ipmi_user: 'testuser'
+  ipmi_pass: 'testpass'
+- name: 'computer01'
+  roles:
+    - 'COMPUTER'
+  ipmi_ip: '192.168.1.109'
+  ipmi_user: 'testuser'
+  ipmi_pass: 'testpass'
+- name: 'computer02'
+  roles:
+    - 'COMPUTER'
+  ipmi_ip: '192.168.1.110'
+  ipmi_user: 'testuser'
+  ipmi_pass: 'testpass'
+disks:
+  daisy: 50
+daisy_passwd: 'r00tme'
+daisy_ip: '10.20.7.3'
+daisy_gateway: '10.20.7.1'
+ceph_disk_name: '/dev/sdb'