Skip to content

Instantly share code, notes, and snippets.

@yuanying
Last active February 28, 2025 22:12
Show Gist options
  • Save yuanying/aa274dfc6e28b0bd6861 to your computer and use it in GitHub Desktop.
Save yuanying/aa274dfc6e28b0bd6861 to your computer and use it in GitHub Desktop.
Setup uvtool
#cloud-config
hostname: devstack
users:
- default
- name: yuanying
sudo: "ALL=(ALL) NOPASSWD:ALL"
shell: "/bin/bash"
ssh-authorized-keys:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0ol7jQ4umQMrE1qtXnyeYk/23g6zVJyVPh0+rljElu/7zj6iJZtixxs+LebPH6mZP13RIGPP0GlrSXRVBj9F2pjb/Y/PMyHBq3+BMeiYhn6XmNMwtTK2O69vvFZQi0M3wTVSezP9OxxrPay+eCXkGVi8lnh6ZDMrvSKI2c5SQ7wFJfT/4XTxzcP2gsotRV
0rzADie1EF4MYke+ZJuiwnrFbZpeogrNtSvivR4f/g0/fD8NOjCKgbk4uY//6YhEqNaGhm0wABKt0MtimmxLLe2kosoFS539t88y5tD4ispcxlOAtVKZEL1ogf0VRrcBWSTfIiJty5vw6aRTfoFwuzZ [email protected]"
runcmd:
- [ rm, -f, /etc/network/interfaces.d/eth0.cfg]
- [ sh, -c, "echo 'auto eth0' >> /etc/network/interfaces.d/eth0.cfg "]
- [ sh, -c, "echo 'iface eth0 inet static' >> /etc/network/interfaces.d/eth0.cfg" ]
- [ sh, -c, "echo ' address 192.168.11.197' >> /etc/network/interfaces.d/eth0.cfg" ]
- [ sh, -c, "echo ' netmask 255.255.255.0' >> /etc/network/interfaces.d/eth0.cfg" ]
- [ sh, -c, "echo ' gateway 192.168.11.1' >> /etc/network/interfaces.d/eth0.cfg"]
- [ sh, -c, "echo ' dns-nameservers 8.8.8.8' >> /etc/network/interfaces.d/eth0.cfg"]
- [ ifdown, eth0 ]
- [ ifup, eth0 ]
packages:
- git
- vim
- openvswitch-switch
#cloud-config
hostname: ironic
users:
- default
- name: yuanying
sudo: "ALL=(ALL) NOPASSWD:ALL"
shell: "/bin/bash"
ssh-authorized-keys:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0ol7jQ4umQMrE1qtXnyeYk/23g6zVJyVPh0+rljElu/7zj6iJZtixxs+LebPH6mZP13RIGPP0GlrSXRVBj9F2pjb/Y/PMyHBq3+BMeiYhn6XmNMwtTK2O69vvFZQi0M3wTVSezP9OxxrPay+eCXkGVi8lnh6ZDMrvSKI2c5SQ7wFJfT/4XTxzcP2gsotRV
0rzADie1EF4MYke+ZJuiwnrFbZpeogrNtSvivR4f/g0/fD8NOjCKgbk4uY//6YhEqNaGhm0wABKt0MtimmxLLe2kosoFS539t88y5tD4ispcxlOAtVKZEL1ogf0VRrcBWSTfIiJty5vw6aRTfoFwuzZ [email protected]"
runcmd:
- [ rm, -f, /etc/network/interfaces.d/eth0.cfg]
- [ sh, -c, "echo 'auto eth0' >> /etc/network/interfaces.d/eth0.cfg "]
- [ sh, -c, "echo 'iface eth0 inet static' >> /etc/network/interfaces.d/eth0.cfg" ]
- [ sh, -c, "echo ' address 192.168.11.198' >> /etc/network/interfaces.d/eth0.cfg" ]
- [ sh, -c, "echo ' netmask 255.255.255.0' >> /etc/network/interfaces.d/eth0.cfg" ]
- [ sh, -c, "echo ' gateway 192.168.11.1' >> /etc/network/interfaces.d/eth0.cfg"]
- [ sh, -c, "echo ' dns-nameservers 8.8.8.8' >> /etc/network/interfaces.d/eth0.cfg"]
- [ ifdown, eth0 ]
- [ ifup, eth0 ]
packages:
- git
- vim
- openvswitch-switch

Install

Host side

Setup bridge

$ sudo su -
# apt-get update
# apt-get remove network-manager
# apt-get install bridge-utils

Configure /etc/network/interfaces

auto lo
iface lo inet loopback

auto em1
iface em1 inet manual

auto br0
iface br0 inet static
  address 192.168.11.196
  netmask 255.255.255.0
  gateway 192.168.11.1
  bridge_ports em1
  bridge_stp off
  bridge_fd 0
  bridge_maxwait 0

And reboot machine.

Setup uvtool

$ sudo apt-get install uvtool
$ # Maybe needs re-login
$ uvt-simplestreams-libvirt sync release=trusty arch=amd64

Start Virtual Machine

$ uvt-kvm create devstack release=trusty \
          --bridge br0 --cpu 2 --memory 8096 --disk 100 \
          --user-data ~/init-devstack.cfg

$ uvt-kvm create ironic release=trusty \
          --bridge br0 --cpu 2 --memory 8096 --disk 100 \
          --user-data ~/init-ironic.cfg
FLOATING_RANGE=192.168.19.0/24
Q_FLOATING_ALLOCATION_POOL="start=192.168.19.80,end=192.168.19.100"
PUBLIC_NETWORK_GATEWAY=192.168.19.1
Q_USE_SECGROUP=True
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=1000:1999
PHYSICAL_NETWORK=default
OVS_PHYSICAL_BRIDGE=br-ex
NETWORK_GATEWAY=10.11.12.1
FIXED_RANGE=10.11.12.0/24
FIXED_NETWORK_SIZE=256
ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=stackdb
RABBIT_PASSWORD=stackqueue
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=tokentoken
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service neutron
enable_service h-eng
enable_service h-api
enable_service h-api-cfn
enable_service h-api-cw
LOGFILE=$DEST/logs/devstack.log
DEST=/opt/stack
SCREEN_LOGDIR=$DEST/logs/screen
FLOATING_RANGE=192.168.19.0/24
Q_FLOATING_ALLOCATION_POOL="start=192.168.19.80,end=192.168.19.100"
PUBLIC_NETWORK_GATEWAY=192.168.19.1
Q_USE_SECGROUP=True
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=1000:1999
PHYSICAL_NETWORK=default
OVS_PHYSICAL_BRIDGE=br-ex
NETWORK_GATEWAY=10.11.12.1
FIXED_RANGE=10.11.12.0/24
FIXED_NETWORK_SIZE=256
ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=stackdb
RABBIT_PASSWORD=stackqueue
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=tokentoken
# Enable Ironic API and Ironic Conductor
enable_service ironic
enable_service ir-api
enable_service ir-cond
# Create 3 virtual machines to pose as Ironic's baremetal nodes.
IRONIC_VM_COUNT=3
IRONIC_VM_SSH_PORT=22
IRONIC_BAREMETAL_BASIC_OPS=True
# The parameters below represent the minimum possible values to create
# functional nodes.
IRONIC_VM_SPECS_RAM=2048
IRONIC_VM_SPECS_DISK=30
# Size of the ephemeral partition in GB. Use 0 for no ephemeral partition.
IRONIC_VM_EPHEMERAL_DISK=0
VIRT_DRIVER=ironic
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service neutron
enable_service h-eng
enable_service h-api
enable_service h-api-cfn
enable_service h-api-cw
LOGFILE=$DEST/logs/devstack.log
DEST=/opt/stack
SCREEN_LOGDIR=$DEST/logs/screen
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment