blob: 1ea725f92ea318aeb10f3d73030d9170790ed770 [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
Your Named6512c72017-05-12 15:39:21 +000070fallocate -l 10G /lvm.img
71losetup /dev/loop0 /lvm.img
72echo -e '#!/bin/bash\nlosetup /dev/loop0 /lvm.img' > /etc/rc.local
73
Andrey Shestakov9f03a482017-05-16 17:00:08 +030074# Apply all
Andrey Shestakovf12dde92017-05-17 14:19:52 +030075salt-call state.apply # minimum two times or until success
Andrey Shestakov9f03a482017-05-16 17:00:08 +030076
77# or apply one by one (when fail on some step - repeat or ignore):
Your Named6512c72017-05-12 15:39:21 +000078#salt-call state.apply salt
Andrey Shestakov9f03a482017-05-16 17:00:08 +030079#salt-call state.apply linux,ntp,openssh
80#salt-call state.apply memcached
81#salt-call state.apply rabbitmq
82#salt-call state.apply mysql
83#salt-call state.apply keystone
84#salt-call state.apply glance
85#salt-call state.apply neutron
86#salt-call state.apply nova.controller
87#salt-call state.apply nova.compute
88#salt-call state.apply cinder
89#salt-call state.apply heat
90#salt-call state.apply horizon
Your Named6512c72017-05-12 15:39:21 +000091
Andrey Shestakov9f03a482017-05-16 17:00:08 +030092service nova* restart
Your Nameb50e5632017-05-12 14:18:03 +000093
Andrey Shestakovb31da5c2017-05-03 15:57:12 +000094. /root/keystonercv3
95
96wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
97glance image-create --name cirros --visibility public --disk-format qcow2 --container-format bare --file cirros-0.3.5-x86_64-disk.img --progress
98
99neutron net-create test
100neutron subnet-create test 192.168.1.0/24
101
102nova flavor-create m1.extra_tiny auto 256 0 1
103
104nova 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 +0000105
106cinder create --name test 1
107nova volume-attach test 49a471ec-2e6d-4810-9161-6c191e1370f5 # UUID of volume
Your Named6512c72017-05-12 15:39:21 +0000108
109# Horizon is available on port :8078