blob: daf66d7d7ec1dd8e04aeba130099c6cdb0f0afac [file] [log] [blame]
{% from 'virtual-mcp-ocata-dvr/salt.yaml' import IPV4_NET_EXTERNAL_PREFIX with context %}
{% from 'virtual-mcp-ocata-dvr/salt.yaml' import IPV4_NET_TENANT_PREFIX with context %}
################### Install OpenStack control ##########################
# // Install horizon dashboard
# salt.enforceState(saltMaster, 'I@horizon:server', 'horizon', true)
# salt.enforceState(saltMaster, 'I@nginx:server', 'nginx', true)
- description: Install Horizon
do: enforceState
target: I@horizon:server
state: horizon
- description: Update certs on nginx servers
do: enforceState
target: I@nginx:server
state: salt.minion.cert
- description: Install nginx
do: enforceState
target: I@nginx:server
state: nginx
# // setup keystone service
# //runSaltProcessStep(saltMaster, 'I@keystone:server', 'state.sls', ['keystone.server'], 1)
# salt.enforceState(saltMaster, 'I@keystone:server and *01*', 'keystone.server', true)
# salt.enforceState(saltMaster, 'I@keystone:server', 'keystone.server', true)
# // populate keystone services/tenants/roles/users
- description: Install Keystone on 01
do: enforceState
target: I@keystone:server and *01*
state: keystone.server
retry: {count: 3, delay: 5}
- description: Install Keystone
do: enforceState
target: I@keystone:server
state: keystone.server
retry: {count: 3, delay: 5}
# // keystone:client must be called locally
# //salt.runSaltProcessStep(saltMaster, 'I@keystone:client', 'cmd.run', ['salt-call state.sls keystone.client'], null, true)
# salt.runSaltProcessStep(saltMaster, 'I@keystone:server', 'service.restart', ['apache2'])
# salt.enforceState(saltMaster, 'I@keystone:client', 'keystone.client', true)
# salt.enforceState(saltMaster, 'I@keystone:client', 'keystone.client', true)
# salt.runSaltProcessStep(saltMaster, 'I@keystone:server', 'cmd.run', ['. /root/keystonerc; keystone service-list'], null, true)
# - description: Install Keystone client
# do: runState
# target: I@keystone:client
# state: cmd.run
# args: ['salt-call state.sls keystone.client']
- description: Restart apache on Keystone servers
do: runState
target: I@keystone:server
state: service.restart
args: ['apache2']
- description: Install Keystone Client
do: enforceState
target: I@keystone:client
state: keystone.client
- description: Install Keystone Client
do: enforceState
target: I@keystone:client
state: keystone.client
- description: Show Keystone config
do: runState
target: I@keystone:server
state: cmd.run
args: ['. /root/keystonerc; keystone service-list']
# // Install glance and ensure glusterfs clusters
# //runSaltProcessStep(saltMaster, 'I@glance:server', 'state.sls', ['glance.server'], 1)
# salt.enforceState(saltMaster, 'I@glance:server and *01*', 'glance.server', true)
# salt.enforceState(saltMaster, 'I@glance:server', 'glance.server', true)
# salt.enforceState(saltMaster, 'I@glance:server', 'glusterfs.client', true)
- description: Install glance on 01
do: enforceState
target: I@glance:server and *01*
state: glance.server
- description: Install glance
do: enforceState
target: I@glance:server
state: glance.server
- description: Install gluster client on glance servers
do: enforceState
target: I@glance:server
state: glusterfs.client
# // Update fernet tokens before doing request on keystone server
# salt.enforceState(saltMaster, 'I@keystone:server', 'keystone.server', true)
- description: Update fernet tokens
do: enforceState
target: I@keystone:server
state: keystone.server
# // Check glance service
# salt.runSaltProcessStep(saltMaster, 'I@keystone:server', 'cmd.run', ['. /root/keystonerc; glance image-list'], null, true)
- description: Show glance images via keystone node
do: runState
target: I@keystone:server
state: cmd.run
args: ['. /root/keystonerc; glance image-list']
# // Install and check nova service
# //runSaltProcessStep(saltMaster, 'I@nova:controller', 'state.sls', ['nova'], 1)
# salt.enforceState(saltMaster, 'I@nova:controller and *01*', 'nova.controller', true)
# salt.enforceState(saltMaster, 'I@nova:controller', 'nova.controller', true)
# salt.runSaltProcessStep(saltMaster, 'I@keystone:server', 'cmd.run', ['. /root/keystonerc; nova service-list'], null, true)
- description: Install nova on controllers on 01
do: enforceState
target: I@nova:controller and *01*
state: nova.controller
- description: Install Keystone
do: enforceState
target: I@nova:controller
state: nova.controller
- description: Show nova services via keystone node
do: runState
target: I@keystone:server
state: cmd.run
args: ['. /root/keystonerc; nova service-list']
# // Install and check cinder service
# //runSaltProcessStep(saltMaster, 'I@cinder:controller', 'state.sls', ['cinder'], 1)
# salt.enforceState(saltMaster, 'I@cinder:controller and *01*', 'cinder', true)
# salt.enforceState(saltMaster, 'I@cinder:controller', 'cinder', true)
# salt.runSaltProcessStep(saltMaster, 'I@keystone:server', 'cmd.run', ['. /root/keystonerc; cinder list'], null, true)
- description: Install cinder on controllers on 01
do: enforceState
target: I@cinder:controller and *01*
state: cinder
- description: Install cinder on controllers
do: enforceState
target: I@cinder:controller
state: cinder
- description: Show cinder list via keystone node
do: runState
target: I@keystone:server
state: cmd.run
args: ['. /root/keystonerc; nova list']
# // Install neutron service
# //runSaltProcessStep(saltMaster, 'I@neutron:server', 'state.sls', ['neutron'], 1)
# salt.enforceState(saltMaster, 'I@neutron:server and *01*', 'neutron.server', true)
# salt.enforceState(saltMaster, 'I@neutron:server', 'neutron.server', true)
# salt.runSaltProcessStep(saltMaster, 'I@keystone:server', 'cmd.run', ['. /root/keystonerc; neutron agent-list'], null, true)
- description: Install neutron on controllers on 01
do: enforceState
target: I@neutron:server and *01*
state: neutron.server
- description: Install neutron on controllers
do: enforceState
target: I@neutron:server
state: neutron.server
- description: Show neutron agent list via keystone node
do: runState
target: I@keystone:server
state: cmd.run
args: ['. /root/keystonerc; neutron agent-list']
# // Install heat service
# //runSaltProcessStep(saltMaster, 'I@heat:server', 'state.sls', ['heat'], 1)
# salt.enforceState(saltMaster, 'I@heat:server and *01*', 'heat', true)
# salt.enforceState(saltMaster, 'I@heat:server', 'heat', true)
# salt.runSaltProcessStep(saltMaster, 'I@keystone:server', 'cmd.run', ['. /root/keystonerc; heat resource-type-list'], null, true)
- description: Install heat on controllers on 01
do: enforceState
target: I@heat:server and *01*
state: heat
- description: Install heat on controllers
do: enforceState
target: I@heat:server
state: heat
- description: Show heat resource type list via keystone node
do: runState
target: I@keystone:server
state: cmd.run
args: ['. /root/keystonerc; heat resource-type-list']
# // Restart nova api
# salt.runSaltProcessStep(saltMaster, 'I@nova:controller', 'service.restart', ['nova-api'])
- description: Restart nova-api
do: runState
target: I@nova:controller
state: service.restart
args: ['nova-api']
################### Install OpenStack network ##########################
# // Apply gateway
# salt.runSaltProcessStep(saltMaster, 'I@neutron:gateway', 'state.apply', [], null, true)
- description: Apply gateway
do: runState
target: I@neutron:gateway
state: state.apply
# // Pring information
# salt.runSaltProcessStep(saltMaster, 'I@keystone:server', 'cmd.run', ['. /root/keystonerc; neutron net-list'], null, true)
# salt.runSaltProcessStep(saltMaster, 'I@keystone:server', 'cmd.run', ['. /root/keystonerc; nova net-list'], null, true)
- description: Show neutron networks via keystone node
do: runState
target: I@keystone:server
state: cmd.run
args: ['. /root/keystonerc; neutron net-list']
- description: Show nova networks via keystone node
do: runState
target: I@keystone:server
state: cmd.run
args: ['. /root/keystonerc; nova net-list']
################### Install OpenStack compute ##########################
# //orchestrate.installOpenstackMkCompute(saltMaster, physical)
# // Configure compute nodes
# retry(2) {
# salt.runSaltProcessStep(saltMaster, 'I@nova:compute', 'state.apply', [], null, true)
# }
- description: Install Nova compute
do: runState
target: I@nova:compute
state: state.apply
retry: {count: 2, delay: 5}
# Upload cirros image
- description: Upload cirros image on ctl01
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-i386-disk.img'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 2, delay: 30}
skip_fail: false
- description: Register image in glance
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; glance image-create --name cirros --visibility public --disk-format qcow2 --container-format bare --progress < /root/cirros-0.3.4-i386-disk.img'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Create net04_external
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; neutron net-create net04_ext --shared --router:external True --provider:physical_network physnet1 --provider:network_type flat'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Create subnet_external
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; neutron subnet-create net04_ext {{ IPV4_NET_EXTERNAL_PREFIX }}.0/24 --name net04_ext__subnet --disable-dhcp --allocation-pool start={{ IPV4_NET_EXTERNAL_PREFIX }}.150,end={{ IPV4_NET_EXTERNAL_PREFIX }}.180 --gateway {{ IPV4_NET_EXTERNAL_PREFIX }}.1'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Create net04
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; neutron net-create net04'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Create subnet_net04
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; neutron subnet-create net04 {{ IPV4_NET_TENANT_PREFIX }}.0/24 --name net04__subnet --allocation-pool start={{ IPV4_NET_TENANT_PREFIX }}.120,end={{ IPV4_NET_TENANT_PREFIX }}.240'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Create router
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; neutron router-create net04_router01'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Set geteway
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; neutron router-gateway-set net04_router01 net04_ext'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Add interface
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; neutron router-interface-add net04_router01 net04__subnet'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Allow all tcp
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; nova secgroup-add-rule default tcp 1 65535 0.0.0.0/0'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Allow all icmp
cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
'. /root/keystonercv3; nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0'
node_name: {{ HOSTNAME_CFG01 }}
retry: {count: 1, delay: 30}
skip_fail: false
# Configure cinder-volume salt-call
- description: Set disks 01
cmd: salt-call cmd.run 'echo -e "nn\np\n\n\n\nw" | fdisk /dev/vdb'
node_name: {{ HOSTNAME_CTL01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Set disks 02
cmd: salt-call cmd.run 'echo -e "nn\np\n\n\n\nw" | fdisk /dev/vdb'
node_name: {{ HOSTNAME_CTL02 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Set disks 03
cmd: salt-call cmd.run 'echo -e "nn\np\n\n\n\nw" | fdisk /dev/vdb'
node_name: {{ HOSTNAME_CTL03 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Create partitions 01
cmd: salt-call cmd.run 'pvcreate /dev/vdb1'
node_name: {{ HOSTNAME_CTL01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Create partitions 02
cmd: salt-call cmd.run 'pvcreate /dev/vdb1'
node_name: {{ HOSTNAME_CTL01 }}
retry: {count: 1, delay: 30}
skip_fail: false
- description: Create partitions 03
cmd: salt-call cmd.run 'pvcreate /dev/vdb1'
node_name: {{ HOSTNAME_CTL01 }}
retry: {count: 1, delay: 30}
skip_fail: false