blob: 39aec087a2f34ae06ce6b10089e7100b7c5dcafc [file] [log] [blame]
Andrey Shestakovb31da5c2017-05-03 15:57:12 +00001wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add -
2add-apt-repository http://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest
3apt update
4apt install -y salt-master salt-minion reclass make
5
Andrey Shestakov9f03a482017-05-16 17:00:08 +03006sed -i '/^::1/ s/$/ all01/' /etc/hosts
7
Andrey Shestakovb31da5c2017-05-03 15:57:12 +00008rm /etc/salt/minion_id
9rm -f /etc/salt/pki/minion/minion_master.pub
10echo "id: all01.local" > /etc/salt/minion
11echo "master: localhost" >> /etc/salt/minion
12
13[ ! -d /etc/salt/master.d ] && mkdir -p /etc/salt/master.d
14cat <<-EOF > /etc/salt/master.d/master.conf
15file_roots:
16 base:
17 - /usr/share/salt-formulas/env
18pillar_opts: False
19open_mode: True
20reclass: &reclass
21 storage_type: yaml_fs
22 inventory_base_uri: /srv/salt/reclass
23ext_pillar:
24 - reclass: *reclass
25master_tops:
26 reclass: *reclass
27EOF
28
29[ ! -d /etc/reclass ] && mkdir /etc/reclass
30cat <<-EOF > /etc/reclass/reclass-config.yml
31storage_type: yaml_fs
32pretty_print: True
33output: yaml
34inventory_base_uri: /srv/salt/reclass
35EOF
36
37service salt-master restart
38service salt-minion restart
39
40git clone https://github.com/andreyshestakov/mcp-aio /srv/salt/reclass
41cd /srv/salt/reclass
42git clone https://gerrit.mcp.mirantis.net/p/salt-models/reclass-system.git classes/system
43ln -s /usr/share/salt-formulas/reclass/service classes/service
44
45export FORMULAS_BASE=https://gerrit.mcp.mirantis.net/salt-formulas
46export FORMULAS_PATH=/root/formulas
47export FORMULAS_BRANCH=master
48
49mkdir -p ${FORMULAS_PATH}
Your Named6512c72017-05-12 15:39:21 +000050declare -a formula_services=("linux" "reclass" "salt" "openssh" "ntp" "git" "nginx" "collectd" "sensu" "heka" "sphinx" "mysql" "grafana" "libvirt" "rsyslog" "memcached" "rabbitmq" "apache" "keystone" "glance" "nova" "neutron" "cinder" "heat" "horizon")
Andrey Shestakovb31da5c2017-05-03 15:57:12 +000051for formula_service in "${formula_services[@]}"; do
52 _BRANCH=${FORMULAS_BRANCH}
53 [ ! -d "${FORMULAS_PATH}/${formula_service}" ] && {
54 if ! git ls-remote --exit-code --heads ${FORMULAS_BASE}/${formula_service}.git ${_BRANCH};then
55 # Fallback to the master branch if the branch doesn't exist for this repository
56 _BRANCH=master
57 fi
58 git clone ${FORMULAS_BASE}/${formula_service}.git ${FORMULAS_PATH}/${formula_service} -b ${_BRANCH}
59 } || {
60 cd ${FORMULAS_PATH}/${formula_service};
61 git fetch ${_BRANCH} || git fetch --all
62 git checkout ${_BRANCH} && git pull || git pull;
63 cd -
64 }
65 cd ${FORMULAS_PATH}/${formula_service}
66 make install
67 cd -
68done
69
Andrey Shestakovb37cde02017-05-11 19:23:18 +030070Apply patches (check latest patchset):
71cd /root/formulas/nova
Andrey Shestakov9f03a482017-05-16 17:00:08 +030072git fetch https://gerrit.mcp.mirantis.net/salt-formulas/nova refs/changes/13/4413/3 && git checkout -b compute FETCH_HEAD
Andrey Shestakovb37cde02017-05-11 19:23:18 +030073make install
74
Your Named6512c72017-05-12 15:39:21 +000075fallocate -l 10G /lvm.img
76losetup /dev/loop0 /lvm.img
77echo -e '#!/bin/bash\nlosetup /dev/loop0 /lvm.img' > /etc/rc.local
78
Andrey Shestakov9f03a482017-05-16 17:00:08 +030079systemctl mask nova-placement-api
80
81# Apply all
82salt-call state.apply # minimum two times or untill success
83
84# or apply one by one (when fail on some step - repeat or ignore):
Your Named6512c72017-05-12 15:39:21 +000085#salt-call state.apply salt
Andrey Shestakov9f03a482017-05-16 17:00:08 +030086#salt-call state.apply linux,ntp,openssh
87#salt-call state.apply memcached
88#salt-call state.apply rabbitmq
89#salt-call state.apply mysql
90#salt-call state.apply keystone
91#salt-call state.apply glance
92#salt-call state.apply neutron
93#salt-call state.apply nova.controller
94#salt-call state.apply nova.compute
95#salt-call state.apply cinder
96#salt-call state.apply heat
97#salt-call state.apply horizon
Your Named6512c72017-05-12 15:39:21 +000098
Andrey Shestakov9f03a482017-05-16 17:00:08 +030099service nova* restart
Your Nameb50e5632017-05-12 14:18:03 +0000100
Andrey Shestakovb31da5c2017-05-03 15:57:12 +0000101. /root/keystonercv3
102
103wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
104glance image-create --name cirros --visibility public --disk-format qcow2 --container-format bare --file cirros-0.3.5-x86_64-disk.img --progress
105
106neutron net-create test
107neutron subnet-create test 192.168.1.0/24
108
109nova flavor-create m1.extra_tiny auto 256 0 1
110
111nova boot --flavor m1.extra_tiny --image cirros --nic net-id=d23f9845-cbce-47a6-be15-0603f6a31365 test # UUID of internal network
Your Nameb50e5632017-05-12 14:18:03 +0000112
113cinder create --name test 1
114nova volume-attach test 49a471ec-2e6d-4810-9161-6c191e1370f5 # UUID of volume
Your Named6512c72017-05-12 15:39:21 +0000115
116# Horizon is available on port :8078