blob: bfae35d5cd03d44c00adfa2ede6c5ab73ad0cae0 [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}
Andrii Shestakovbf7bfe72017-05-25 17:07:06 +000048declare -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" "ironic" "tftpd-hpa")
Andrey Shestakovb31da5c2017-05-03 15:57:12 +000049for 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 Shestakov9f03a482017-05-16 17:00:08 +030068# Apply all
Andrey Shestakovf12dde92017-05-17 14:19:52 +030069salt-call state.apply # minimum two times or until success
Andrey Shestakov9f03a482017-05-16 17:00:08 +030070
71# or apply one by one (when fail on some step - repeat or ignore):
Your Named6512c72017-05-12 15:39:21 +000072#salt-call state.apply salt
Andrey Shestakov9f03a482017-05-16 17:00:08 +030073#salt-call state.apply linux,ntp,openssh
74#salt-call state.apply memcached
75#salt-call state.apply rabbitmq
76#salt-call state.apply mysql
77#salt-call state.apply keystone
78#salt-call state.apply glance
79#salt-call state.apply neutron
80#salt-call state.apply nova.controller
81#salt-call state.apply nova.compute
82#salt-call state.apply cinder
83#salt-call state.apply heat
84#salt-call state.apply horizon
Andrii Shestakovbf7bfe72017-05-25 17:07:06 +000085# Ironic is not available yet.
86#salt-call state.apply ironic
87#salt-call state.apply tftpd_hpa
Your Named6512c72017-05-12 15:39:21 +000088
Andrey Shestakov9f03a482017-05-16 17:00:08 +030089service nova* restart
Your Nameb50e5632017-05-12 14:18:03 +000090
Andrey Shestakovb31da5c2017-05-03 15:57:12 +000091. /root/keystonercv3
92
93wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
94glance image-create --name cirros --visibility public --disk-format qcow2 --container-format bare --file cirros-0.3.5-x86_64-disk.img --progress
95
96neutron net-create test
97neutron subnet-create test 192.168.1.0/24
98
99nova flavor-create m1.extra_tiny auto 256 0 1
100
101nova 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 +0000102
103cinder create --name test 1
104nova volume-attach test 49a471ec-2e6d-4810-9161-6c191e1370f5 # UUID of volume
Your Named6512c72017-05-12 15:39:21 +0000105
106# Horizon is available on port :8078