diff --git a/scripts/ironic_generate-images.sh b/scripts/ironic_generate-images.sh index 0603644a..df67d60d 100755 --- a/scripts/ironic_generate-images.sh +++ b/scripts/ironic_generate-images.sh @@ -25,26 +25,30 @@ function make-base-image { scp -o StrictHostKeyChecking=no baremetal-$DISTRO_NAME-$DIB_RELEASE* "${UTILITY01_HOSTNAME}":~/images rm baremetal-$DISTRO_NAME-$DIB_RELEASE* # no reason to keep these around - VMLINUZ_UUID=$(ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; glance image-create --name baremetal-$DISTRO_NAME-$DIB_RELEASE.vmlinuz \ - --visibility public \ + VMLINUZ_UUID=$(ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; openstack image create \ + --public \ --disk-format aki \ --property hypervisor_type=baremetal \ - --protected=True \ - --container-format aki < ~/images/baremetal-$DISTRO_NAME-$DIB_RELEASE.vmlinuz" | awk '/\| id/ {print $4}') - INITRD_UUID=$(ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; glance image-create --name baremetal-$DISTRO_NAME-$DIB_RELEASE.initrd \ - --visibility public \ + --protected \ + --container-format aki \ + baremetal-$DISTRO_NAME-$DIB_RELEASE.vmlinuz < ~/images/baremetal-$DISTRO_NAME-$DIB_RELEASE.vmlinuz" | awk '/\| id/ {print $4}') + INITRD_UUID=$(ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; openstack image create \ + --public \ --disk-format ari \ --property hypervisor_type=baremetal \ - --protected=True \ - --container-format ari < ~/images/baremetal-$DISTRO_NAME-$DIB_RELEASE.initrd" | awk '/\| id/ {print $4}') - ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; glance image-create --name baremetal-$DISTRO_NAME-$DIB_RELEASE \ - --visibility public \ + --protected \ + --container-format ari \ + baremetal-$DISTRO_NAME-$DIB_RELEASE.initrd < ~/images/baremetal-$DISTRO_NAME-$DIB_RELEASE.initrd" | awk '/\| id/ {print $4}') + ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; openstack image create \ + --public \ --disk-format qcow2 \ --container-format bare \ --property hypervisor_type=baremetal \ --property kernel_id=${VMLINUZ_UUID} \ - --protected=True \ - --property ramdisk_id=${INITRD_UUID} < ~/images/baremetal-$DISTRO_NAME-$DIB_RELEASE.qcow2" + --protected \ + --property ramdisk_id=${INITRD_UUID} \ + baremetal-$DISTRO_NAME-$DIB_RELEASE < ~/images/baremetal-$DISTRO_NAME-$DIB_RELEASE.qcow2" + } # install needed binaries @@ -101,7 +105,7 @@ pushd ~/dib # set up envars for the deploy image ironic agent # export DIB_HPSSACLI_URL="http://downloads.hpe.com/pub/softlib2/software1/pubsw-linux/p1857046646/v109216/hpssacli-2.30-6.0.x86_64.rpm" - export IRONIC_AGENT_VERSION="stable/ocata" + export IRONIC_AGENT_VERSION="stable/rocky" # create the deploy image disk-image-create --install-type source -o ironic-deploy ironic-agent ubuntu proliant-tools ${DEBUG_USER_ELEMENT:-""} @@ -110,18 +114,21 @@ pushd ~/dib scp -o StrictHostKeyChecking=no ironic-deploy* "${UTILITY01_HOSTNAME}":~/images rm ironic-deploy* # no reason to keep these around - ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; glance image-create --name ironic-deploy.kernel \ - --visibility public \ + ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; openstack image create \ + --public \ --disk-format aki \ --property hypervisor_type=baremetal \ - --protected=True \ - --container-format aki < ~/images/ironic-deploy.kernel" - ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; glance image-create --name ironic-deploy.initramfs \ - --visibility public \ + --protected \ + --container-format aki < ~/images/ironic-deploy.kernel \ + ironic-deploy.kernel" + + ssh -o StrictHostKeyChecking=no "${UTILITY01_HOSTNAME}" "source ~/openrc; openstack image create \ + --public \ --disk-format ari \ --property hypervisor_type=baremetal \ - --protected=True \ - --container-format ari < ~/images/ironic-deploy.initramfs" + --protected \ + --container-format ari < ~/images/ironic-deploy.initramfs \ + ironic-deploy.initramfs" # Ubuntu Xenial final image make-base-image diff --git a/scripts/ironic_register-nodes.sh b/scripts/ironic_register-nodes.sh index db4d2c19..b3894eac 100755 --- a/scripts/ironic_register-nodes.sh +++ b/scripts/ironic_register-nodes.sh @@ -21,46 +21,51 @@ RESOURCE_CLASS="baremetal.general" NOVA_RESOURCE_FLAVOR_NAME=${RESOURCE_CLASS//./_} NOVA_RESOURCE_FLAVOR_NAME=$(echo ${NOVA_RESOURCE_FLAVOR_NAME//-/_} | awk '{print toupper($0)}') -KERNEL_IMAGE=$(glance image-list | awk '/baremetal-ubuntu-xenial.vmlinuz/ {print $2}') -INITRAMFS_IMAGE=$(glance image-list | awk '/baremetal-ubuntu-xenial.initrd/ {print $2}') -DEPLOY_RAMDISK=$(glance image-list | awk '/ironic-deploy.initramfs/ {print $2}') -DEPLOY_KERNEL=$(glance image-list | awk '/ironic-deploy.kernel/ {print $2}') +KERNEL_IMAGE=$(openstack image-list | awk '/baremetal-ubuntu-xenial.vmlinuz/ {print $2}') +INITRAMFS_IMAGE=$(openstack image-list | awk '/baremetal-ubuntu-xenial.initrd/ {print $2}') +DEPLOY_RAMDISK=$(openstack image-list | awk '/ironic-deploy.initramfs/ {print $2}') +DEPLOY_KERNEL=$(openstack image-list | awk '/ironic-deploy.kernel/ {print $2}') -if ironic node-list | grep "$inventory_hostname"; then - NODE_UUID=$(ironic --ironic-api-version 1.22 node-list | awk "/$inventory_hostname/ {print \$2}") +if openstack baremetal node-list | grep "$inventory_hostname"; then + NODE_UUID=$(openstack baremetal --os-baremetal-api-version 1.22 node-list | awk "/$inventory_hostname/ {print \$2}") else - NODE_UUID=$(ironic --ironic-api-version 1.22 node-create \ - -d agent_ipmitool \ - -i ipmi_address="$ipmi_address" \ - -i ipmi_password="$ipmi_password" \ - -i ipmi_username="$ipmi_user" \ - -i deploy_ramdisk="${DEPLOY_RAMDISK}" \ - -i deploy_kernel="${DEPLOY_KERNEL}" \ - -p cpus=$image_vcpu \ - -p memory_mb=$image_ram \ - -p local_gb=$ironic_disk_available \ - -p size=$image_total_disk_size \ - -p cpu_arch=$image_cpu_arch \ - -p capabilities=boot_option:local,disk_label:gpt \ + NODE_UUID=$(openstack baremetal --os-baremetal-api-version 1.22 node create \ + --driver agent_ipmitool \ + --driver-info ipmi_address="$ipmi_address" \ + --driver-info ipmi_password="$ipmi_password" \ + --driver-info ipmi_username="$ipmi_user" \ + --driver-info deploy_ramdisk="${DEPLOY_RAMDISK}" \ + --driver-info deploy_kernel="${DEPLOY_KERNEL}" \ + --property cpus=$image_vcpu \ + --property memory_mb=$image_ram \ + --property local_gb=$ironic_disk_available \ + --property size=$image_total_disk_size \ + --property cpu_arch=$image_cpu_arch \ + --property capabilities=boot_option:local,disk_label:gpt \ -n $inventory_hostname \ --resource-class ${RESOURCE_CLASS} | awk '/ uuid / {print $4}') - ironic --ironic-api-version 1.22 port-create -n "$NODE_UUID" \ - -a $Port1NIC_MACAddress + openstack baremetal --os-baremetal-api-version 1.22 port create --node "$NODE_UUID" \ + $Port1NIC_MACAddress fi # flavor creation -if ! nova flavor-list | grep "${RESOURCE_CLASS}"; then - FLAVOR_ID=$(cat /proc/sys/kernel/random/uuid) - nova flavor-create ${RESOURCE_CLASS} ${FLAVOR_ID} ${image_ram} ${image_disk_root} ${image_vcpu} - nova flavor-key ${RESOURCE_CLASS} set cpu_arch=x86_64 - nova flavor-key ${RESOURCE_CLASS} set capabilities:boot_option="local" - nova flavor-key ${RESOURCE_CLASS} set capabilities:disk_label="gpt" - nova flavor-key ${RESOURCE_CLASS} set resources:VCPU=0 - nova flavor-key ${RESOURCE_CLASS} set resources:MEMORY_MB=0 - nova flavor-key ${RESOURCE_CLASS} set resources:DISK_GB=0 - nova flavor-key ${RESOURCE_CLASS} set resources:CUSTOM_${NOVA_RESOURCE_FLAVOR_NAME}=1 +if ! openstack flavor list | grep "${RESOURCE_CLASS}"; then + openstack flavor create \ + --ram ${image_ram} \ + --disk ${image_disk_root} \ + --vcpus ${image_vcpu} \ + ${RESOURCE_CLASS} + openstack flavor set \ + --property cpu_arch=x86_64 \ + --property capabilities:boot_option="local" \ + --property capabilities:disk_label="gpt" \ + --property resources:VCPU=0 \ + --property resources:MEMORY_MB=0 \ + --property resources:DISK_GB=0 \ + --property resources:CUSTOM_${NOVA_RESOURCE_FLAVOR_NAME}=1 \ + ${RESOURCE_CLASS} fi -ironic --ironic-api-version 1.22 node-set-provision-state "${NODE_UUID}" manage +openstack baremetal --os-baremetal-api-version 1.22 node manage "${NODE_UUID}" sleep 1m # necessary to get power state -ironic --ironic-api-version 1.22 node-set-provision-state "${NODE_UUID}" provide +openstack baremetal --os-baremetal-api-version 1.22 node provide "${NODE_UUID}"