summaryrefslogtreecommitdiffstats
path: root/mcp/config/states/maas
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-08-17 16:40:38 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-08-17 16:40:38 +0000
commitdc0e2355b21ab954456c9db7af1161359c966d57 (patch)
tree76da165eccda65852338f1647c8f5ad92aa53e07 /mcp/config/states/maas
parent7b217895f7b379d396a9bac9a87590be832dc1cf (diff)
parent5039d069265df15ed3d8e41f7a1c7f9457a9d58a (diff)
Merge "Bring in baremetal support"
Diffstat (limited to 'mcp/config/states/maas')
-rwxr-xr-xmcp/config/states/maas56
1 files changed, 56 insertions, 0 deletions
diff --git a/mcp/config/states/maas b/mcp/config/states/maas
new file mode 100755
index 000000000..8b599105d
--- /dev/null
+++ b/mcp/config/states/maas
@@ -0,0 +1,56 @@
+#!/bin/bash
+function wait_for() {
+ local cmdstr=$@
+ local total_attempts=360
+ local sleep_time=10
+ local attempt=1
+ echo "[NOTE] Waiting for cmd to return success: ${cmdstr}"
+ while ((attempt <= total_attempts)); do
+ eval "${cmdstr}" && break || true
+ echo -n '.'; sleep "${sleep_time}"
+ ((attempt+=1))
+ done
+}
+
+# MaaS rack/region controller, node commissioning
+salt -C 'mas01*' cmd.run "add-apt-repository ppa:maas/stable"
+
+salt -C 'mas01*' state.apply linux,salt,openssh,ntp
+salt -C 'mas01*' state.apply linux.network.interface
+salt -C 'mas01*' state.apply maas.pxe_nat
+salt -C 'mas01*' state.apply maas.cluster
+salt -C 'cfg01*' cmd.run \
+ "route add -net 192.168.11.0/24 gw ${MAAS_IP:-192.168.10.3}"
+
+wait_for "salt -C 'mas01*' state.apply maas.region"
+
+salt -C 'mas01*' state.apply maas.machines
+# TODO: relax cond, as this is not re-entrant (e.g. nodes already deployed)
+wait_for "salt 'mas01*' --out yaml state.apply maas.machines.status | " \
+ "fgrep -q 'Ready: 5'"
+
+# MaaS node deployment
+salt -C 'mas01*' state.apply maas.machines.deploy
+wait_for "salt 'mas01*' --out yaml state.apply maas.machines.status | " \
+ "fgrep -q 'Deployed: 5'"
+
+salt -C 'mas01*' pillar.item\
+ maas:region:admin:username \
+ maas:region:admin:password
+
+# KVM, compute node prereqs (libvirt first), VCP deployment
+salt -C '* and not cfg01* and not mas01*' saltutil.sync_all
+salt -C '* and not cfg01* and not mas01*' state.apply linux,ntp
+
+salt -C 'kvm*' state.sls libvirt
+
+salt -C '* and not cfg01* and not mas01*' system.reboot
+wait_for "! salt '*' test.ping | fgrep -q 'Not connected'"
+
+salt -C '* and not cfg01* and not mas01*' state.apply salt
+
+salt -C 'kvm*' state.sls salt.control
+
+salt -C '* and not cfg01* and not mas01*' saltutil.sync_all
+salt -C '* and not cfg01* and not mas01*' state.apply salt
+salt -C '* and not cfg01* and not mas01*' state.apply linux,ntp