blob: 49edd85944705f83f4b471df672651cca91f5a22 [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
6rm /etc/salt/minion_id
7rm -f /etc/salt/pki/minion/minion_master.pub
8echo "id: all01.local" > /etc/salt/minion
9echo "master: localhost" >> /etc/salt/minion
10
11[ ! -d /etc/salt/master.d ] && mkdir -p /etc/salt/master.d
12cat <<-EOF > /etc/salt/master.d/master.conf
13file_roots:
14 base:
15 - /usr/share/salt-formulas/env
16pillar_opts: False
17open_mode: True
18reclass: &reclass
19 storage_type: yaml_fs
20 inventory_base_uri: /srv/salt/reclass
21ext_pillar:
22 - reclass: *reclass
23master_tops:
24 reclass: *reclass
25EOF
26
27[ ! -d /etc/reclass ] && mkdir /etc/reclass
28cat <<-EOF > /etc/reclass/reclass-config.yml
29storage_type: yaml_fs
30pretty_print: True
31output: yaml
32inventory_base_uri: /srv/salt/reclass
33EOF
34
35service salt-master restart
36service salt-minion restart
37
38git clone https://github.com/andreyshestakov/mcp-aio /srv/salt/reclass
39cd /srv/salt/reclass
40git clone https://gerrit.mcp.mirantis.net/p/salt-models/reclass-system.git classes/system
41ln -s /usr/share/salt-formulas/reclass/service classes/service
42
43export FORMULAS_BASE=https://gerrit.mcp.mirantis.net/salt-formulas
44export FORMULAS_PATH=/root/formulas
45export FORMULAS_BRANCH=master
46
47mkdir -p ${FORMULAS_PATH}
48declare -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")
49for formula_service in "${formula_services[@]}"; do
50 _BRANCH=${FORMULAS_BRANCH}
51 [ ! -d "${FORMULAS_PATH}/${formula_service}" ] && {
52 if ! git ls-remote --exit-code --heads ${FORMULAS_BASE}/${formula_service}.git ${_BRANCH};then
53 # Fallback to the master branch if the branch doesn't exist for this repository
54 _BRANCH=master
55 fi
56 git clone ${FORMULAS_BASE}/${formula_service}.git ${FORMULAS_PATH}/${formula_service} -b ${_BRANCH}
57 } || {
58 cd ${FORMULAS_PATH}/${formula_service};
59 git fetch ${_BRANCH} || git fetch --all
60 git checkout ${_BRANCH} && git pull || git pull;
61 cd -
62 }
63 cd ${FORMULAS_PATH}/${formula_service}
64 make install
65 cd -
66done
67
Andrey Shestakovb37cde02017-05-11 19:23:18 +030068Apply patches (check latest patchset):
69cd /root/formulas/nova
70git fetch https://gerrit.mcp.mirantis.net/salt-formulas/nova refs/changes/81/4381/5 && git checkout -b config FETCH_HEAD
71make install
72
Andrey Shestakovb31da5c2017-05-03 15:57:12 +000073salt-call state.apply salt
74salt-call state.apply linux,ntp,openssh
75salt-call state.apply memcached
76salt-call state.apply rabbitmq
77salt-call state.apply mysql
78salt-call state.apply keystone
79salt-call state.apply glance
80salt-call state.apply neutron
81salt-call state.apply nova.controller
82salt-call state.apply nova.compute
83
Andrey Shestakov4cc37e82017-05-12 16:03:41 +030084service nova-compute restart
85
Andrey Shestakovb31da5c2017-05-03 15:57:12 +000086. /root/keystonercv3
87
88wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
89glance image-create --name cirros --visibility public --disk-format qcow2 --container-format bare --file cirros-0.3.5-x86_64-disk.img --progress
90
91neutron net-create test
92neutron subnet-create test 192.168.1.0/24
93
94nova flavor-create m1.extra_tiny auto 256 0 1
95
96nova boot --flavor m1.extra_tiny --image cirros --nic net-id=d23f9845-cbce-47a6-be15-0603f6a31365 test # UUID of internal network