Openstack Installation TTNN » Historique » Version 30
Mehdi Abaakouk, 06/08/2014 14:18
1 | 1 | Mehdi Abaakouk | h1. Openstack Installation TTNN |
---|---|---|---|
2 | 1 | Mehdi Abaakouk | |
3 | 3 | Mehdi Abaakouk | h2. Pending upstream fixes: |
4 | 3 | Mehdi Abaakouk | |
5 | 1 | Mehdi Abaakouk | * build-debian-openstack-images, changes should be in next package version: |
6 | 1 | Mehdi Abaakouk | ** Fix extlinux installation on jessie: http://anonscm.debian.org/cgit/openstack/openstack-debian-images.git/commit/?id=1a4ddceb99fb66f42f79e87a183d8e96952e5ac3 |
7 | 1 | Mehdi Abaakouk | ** Fix cloud-init setup with configdrive: http://anonscm.debian.org/cgit/openstack/openstack-debian-images.git/commit/?id=15cce87e2fa15b8952d69fb58711bfa88b21ef87 |
8 | 15 | Mehdi Abaakouk | ** Use Configdrive first for cloud-init: http://anonscm.debian.org/cgit/openstack/openstack-debian-images.git/commit/?id=1b1e1093d5ee525426382ad29b8219ab58f6656d |
9 | 1 | Mehdi Abaakouk | |
10 | 1 | Mehdi Abaakouk | * nova: |
11 | 15 | Mehdi Abaakouk | ** Fix live-migration avec ceph and configdrive:: https://review.openstack.org/#/c/112014/, si la solution est mergé upstream, j'appliquerai le patch au package debian |
12 | 1 | Mehdi Abaakouk | |
13 | 4 | Mehdi Abaakouk | h2. Installation |
14 | 4 | Mehdi Abaakouk | |
15 | 4 | Mehdi Abaakouk | Le setup installé est composé de : |
16 | 4 | Mehdi Abaakouk | |
17 | 4 | Mehdi Abaakouk | * 3 hyperviseurs (compute node) qui contiendront 1 ceph-mon, N ceph-osd, nova-compute (qui lance les VM), neutron-openvswitch-agent (qui configure le réseau des vms) |
18 | 4 | Mehdi Abaakouk | * 1 VM (controler node), qui contient tous les services de management d'openstack (nova, cinder, glance, neutron) |
19 | 4 | Mehdi Abaakouk | |
20 | 4 | Mehdi Abaakouk | Les étapes d'installation sont les suivantes: |
21 | 4 | Mehdi Abaakouk | * Préparation manuelle de la VM de management sur un des hyperviseurs |
22 | 4 | Mehdi Abaakouk | * Installation de ceph et openstack sur toutes les machines avec puppet |
23 | 4 | Mehdi Abaakouk | * Déplacement de la VM de management d'openstack dans openstack. |
24 | 4 | Mehdi Abaakouk | |
25 | 29 | Mehdi Abaakouk | h3. Preparation réseaux des hosts: |
26 | 29 | Mehdi Abaakouk | |
27 | 29 | Mehdi Abaakouk | Voici le fichier rc.local d'un hyperviseur |
28 | 29 | Mehdi Abaakouk | |
29 | 29 | Mehdi Abaakouk | <pre> |
30 | 29 | Mehdi Abaakouk | for i in /proc/sys/net/ipv6/conf/*; do for j in autoconf accept_ra; do echo 0 > $i/$j; done;done |
31 | 29 | Mehdi Abaakouk | # https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt |
32 | 29 | Mehdi Abaakouk | for i in /proc/sys/net/ipv4/conf/*/arp_announce; do echo 2 > $i;done |
33 | 29 | Mehdi Abaakouk | |
34 | 29 | Mehdi Abaakouk | echo 1 > /proc/sys/net/ipv4/ip_forward |
35 | 29 | Mehdi Abaakouk | echo 1 > /proc/sys/net/ipv6/conf/all/forwarding |
36 | 29 | Mehdi Abaakouk | |
37 | 29 | Mehdi Abaakouk | ip link set eth0 up |
38 | 29 | Mehdi Abaakouk | ip link add link eth0 name eth0.3131 type vlan id 3131 |
39 | 29 | Mehdi Abaakouk | ip link set eth0.3131 up |
40 | 29 | Mehdi Abaakouk | ip addr add 89.234.156.251/32 dev eth0.3131 |
41 | 29 | Mehdi Abaakouk | ip route add 91.224.149.0/24 dev eth0.3131 |
42 | 29 | Mehdi Abaakouk | ip route add default via 91.224.149.254 |
43 | 29 | Mehdi Abaakouk | |
44 | 29 | Mehdi Abaakouk | ip addr add 2a01:6600:8083:fb00::1/56 dev eth0.3131 |
45 | 29 | Mehdi Abaakouk | ip route add default via fe80::31 dev eth0.3131 |
46 | 29 | Mehdi Abaakouk | |
47 | 29 | Mehdi Abaakouk | ip link add link eth0 name eth0.3175 type vlan id 3175 |
48 | 29 | Mehdi Abaakouk | ip link set eth0.3175 up |
49 | 29 | Mehdi Abaakouk | |
50 | 29 | Mehdi Abaakouk | ip link add link eth0 name eth0.3195 type vlan id 3195 |
51 | 29 | Mehdi Abaakouk | ip link set eth0.3195 up |
52 | 29 | Mehdi Abaakouk | |
53 | 29 | Mehdi Abaakouk | ip addr add 91.224.148.0/32 dev lo |
54 | 29 | Mehdi Abaakouk | ip addr add fe80::42/64 dev br-net |
55 | 29 | Mehdi Abaakouk | ip route add 89.234.156.250/32 dev eth0.3131 |
56 | 29 | Mehdi Abaakouk | ip route add 89.234.156.252/32 dev eth0.3131 |
57 | 29 | Mehdi Abaakouk | ip route add 89.234.156.253/32 dev eth0.3131 |
58 | 29 | Mehdi Abaakouk | |
59 | 29 | Mehdi Abaakouk | |
60 | 29 | Mehdi Abaakouk | exit 0 |
61 | 29 | Mehdi Abaakouk | </pre> |
62 | 29 | Mehdi Abaakouk | |
63 | 30 | Mehdi Abaakouk | Sur h7.tetaneutral.net le routage est le suivant |
64 | 30 | Mehdi Abaakouk | |
65 | 30 | Mehdi Abaakouk | <pre> |
66 | 30 | Mehdi Abaakouk | ip route add 89.234.156.251/32 dev eth0.3131 |
67 | 30 | Mehdi Abaakouk | ip route add 89.234.156.252/32 dev eth0.3131 |
68 | 30 | Mehdi Abaakouk | ip route add 89.234.156.253/32 dev eth0.3131 |
69 | 30 | Mehdi Abaakouk | ip route add 2a01:6600:8083:fb00::/56 dev eth0.3131 |
70 | 30 | Mehdi Abaakouk | ip route add 2a01:6600:8083:fc00::/56 dev eth0.3131 |
71 | 30 | Mehdi Abaakouk | ip route add 2a01:6600:8083:fd00::/56 dev eth0.3131 |
72 | 30 | Mehdi Abaakouk | </pre> |
73 | 30 | Mehdi Abaakouk | |
74 | 30 | Mehdi Abaakouk | Ainsi que ceci le temps de l'installation |
75 | 30 | Mehdi Abaakouk | |
76 | 30 | Mehdi Abaakouk | <pre> |
77 | 30 | Mehdi Abaakouk | ip route add 89.234.156.249/32 via 89.234.156.251 # NOTE(sileht): temporairement pour le setup openstack |
78 | 30 | Mehdi Abaakouk | ip route add 2a01:6600:8083:f900::/56 via 2a01:6600:8083:fb00:: dev eth0.3131 # NOTE(sileht): temporairement pour le setup openstack |
79 | 30 | Mehdi Abaakouk | </pre> |
80 | 30 | Mehdi Abaakouk | |
81 | 30 | Mehdi Abaakouk | |
82 | 4 | Mehdi Abaakouk | h3. Preparation de la VM de management, le controlleur |
83 | 4 | Mehdi Abaakouk | |
84 | 6 | Mehdi Abaakouk | h4. Installation des prérequis |
85 | 4 | Mehdi Abaakouk | |
86 | 4 | Mehdi Abaakouk | <pre> |
87 | 4 | Mehdi Abaakouk | $ apt-get install libvirt-bin openstack-debian-images openvswitch-switch openvswitch-datapath-dkms virtinst |
88 | 4 | Mehdi Abaakouk | #NOTE(sileht): temporairement appliquer les patches de au-dessus à openstack-debian-images |
89 | 4 | Mehdi Abaakouk | </pre> |
90 | 4 | Mehdi Abaakouk | |
91 | 6 | Mehdi Abaakouk | h4. Preparation de l'image de la VM |
92 | 1 | Mehdi Abaakouk | |
93 | 1 | Mehdi Abaakouk | <pre> |
94 | 6 | Mehdi Abaakouk | $ vim hook.sh |
95 | 17 | Mehdi Abaakouk | set -xv |
96 | 16 | Mehdi Abaakouk | |
97 | 1 | Mehdi Abaakouk | echo "openstack" > $BODI_CHROOT_PATH/etc/hostname |
98 | 20 | Mehdi Abaakouk | |
99 | 16 | Mehdi Abaakouk | cat > $BODI_CHROOT_PATH/etc/resolv.conf <<EOF |
100 | 16 | Mehdi Abaakouk | domain tetaneutral.net |
101 | 16 | Mehdi Abaakouk | search tetaneutral.net |
102 | 16 | Mehdi Abaakouk | nameserver 8.8.8.8 |
103 | 1 | Mehdi Abaakouk | EOF |
104 | 20 | Mehdi Abaakouk | |
105 | 6 | Mehdi Abaakouk | cat > $BODI_CHROOT_PATH/etc/network/interfaces <<EOF |
106 | 6 | Mehdi Abaakouk | auto lo |
107 | 6 | Mehdi Abaakouk | iface lo inet loopback |
108 | 1 | Mehdi Abaakouk | auto eth0 |
109 | 6 | Mehdi Abaakouk | iface eth0 inet manual |
110 | 20 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth0.accept_ra=0 |
111 | 20 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0 |
112 | 1 | Mehdi Abaakouk | up ip link set eth0 up |
113 | 1 | Mehdi Abaakouk | up ip addr add 89.234.156.249/32 dev eth0 |
114 | 20 | Mehdi Abaakouk | up ip route add 91.224.148.0/32 dev eth0 |
115 | 20 | Mehdi Abaakouk | up ip route add default via 91.224.148.0 |
116 | 20 | Mehdi Abaakouk | |
117 | 20 | Mehdi Abaakouk | iface eth0 inet6 static |
118 | 20 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth0.accept_ra=0 |
119 | 20 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0 |
120 | 20 | Mehdi Abaakouk | address 2a01:6600:8083:f900::1 |
121 | 20 | Mehdi Abaakouk | netmask 56 |
122 | 25 | Mehdi Abaakouk | gateway fe80::42 |
123 | 6 | Mehdi Abaakouk | EOF |
124 | 20 | Mehdi Abaakouk | |
125 | 1 | Mehdi Abaakouk | mkdir -p $BODI_CHROOT_PATH/root/.ssh |
126 | 6 | Mehdi Abaakouk | chmod 600 $BODI_CHROOT_PATH/root/.ssh |
127 | 4 | Mehdi Abaakouk | cat >> $BODI_CHROOT_PATH/root/.ssh/authorized_keys <<EOF |
128 | 1 | Mehdi Abaakouk | ssh-dss AAAAB3NzaC1kc3MAAACBAJtnGLvuz4uVD6fnERDxDi/C0UyzwCiKmgNtEessopREYasAX4Gu6Fg10jAyIL5Nuc7YDnqj//pOfxNjD7hp99a2ZmkRQgh/ltClxYML9fqhBHgsUCpVse9nOYDHDnDgvXIPRSDUHat2UFpdchHVrFURNLIlZnBztsr+GCDURTV/AAAAFQD9SrBcH49ltaKOm6V5ssCPmgs1SwAAAIAbAvkQ3/tMzzdACO5B9s5Yb3ZuM7XImm0iqufivVf2Xy39g8HOBulUsN7eKEGPhVriqNolgIO7q7tVgYAff4/NE4yDP0Kp0SPg4tjt2yFJuL31Y3wzwHjnKrjgNlDSLl3uZnRXSipwUMwGKbdHB6NZSqlq192VKbHilQ00pbiMlAAAAIB5dfB1lVHkJ0o5CcaVQRPbca9DvbbRwnoTSmKHc5DUcqsPqDhS07CkM9ZcJuY1Nh4wGl4Q9kArj7Tnsvvygf/HReSUcIk4+nbDytJ8/pca/Qx4fzQQyppa94TylN62LSFT6MIJKLoMwYa0dQURT7Mv5+9Qj2vk5pZ38w2iQ9zVCg== root@h1 |
129 | 4 | Mehdi Abaakouk | EOF |
130 | 10 | Mehdi Abaakouk | |
131 | 16 | Mehdi Abaakouk | sed -i -e 's/^.*Port.*$/Port 2222/' -e 's/^[# ]*PasswordAuthentication.*$/PasswordAuthentication no/' $BODI_CHROOT_PATH/etc/ssh/sshd_config |
132 | 16 | Mehdi Abaakouk | chroot $BODI_CHROOT_PATH dpkg-reconfigure openssh-server |
133 | 20 | Mehdi Abaakouk | chroot $BODI_CHROOT_PATH apt-get purge -y cloud-init* |
134 | 1 | Mehdi Abaakouk | </pre> |
135 | 7 | Mehdi Abaakouk | |
136 | 4 | Mehdi Abaakouk | <pre> |
137 | 21 | Mehdi Abaakouk | $ chmod +x hook.sh |
138 | 12 | Mehdi Abaakouk | $ build-openstack-debian-image --image-size 20 --release jessie -u http://apt.tetaneutral.net/debian/ -s http://apt.tetaneutral.net/debian/ --hook-script $(pwd)/hook.sh |
139 | 4 | Mehdi Abaakouk | $ mv debian-jessie-7.0.0-3-amd64.raw /openstack.raw |
140 | 4 | Mehdi Abaakouk | $ rm debian-jessie-7.0.0-3-amd64.qcow2 |
141 | 4 | Mehdi Abaakouk | </pre> |
142 | 5 | Mehdi Abaakouk | |
143 | 13 | Mehdi Abaakouk | _note: la derniere commande lancée par le script doit être 'qemu-img convert -c -f raw .... , sinon l'image de bootera pas_ |
144 | 18 | Mehdi Abaakouk | _note(jessie): si l'erreur est celle ci-dessous, relancer manuellement 'kpartx -d debian-jessie-7.0.0-3-amd64.raw' jusqu'a ce que l'erreur disparaissent et le .raw est utilisable:_ |
145 | 18 | Mehdi Abaakouk | <pre> |
146 | 18 | Mehdi Abaakouk | + 'kpartx -d debian-jessie-7.0.0-3-amd64.raw' |
147 | 18 | Mehdi Abaakouk | device-mapper: remove ioctl on loop0p1 failed: Device or resource busy |
148 | 18 | Mehdi Abaakouk | loop deleted : /dev/loop0 |
149 | 18 | Mehdi Abaakouk | </pre> |
150 | 11 | Mehdi Abaakouk | |
151 | 4 | Mehdi Abaakouk | On garde l'image raw qui sera importable dans ceph plus tard et on la mets à la racine pour qui l'utilisateur libvirt puisse y accéder. |
152 | 4 | Mehdi Abaakouk | |
153 | 6 | Mehdi Abaakouk | h4. Préparation du réseau |
154 | 4 | Mehdi Abaakouk | |
155 | 4 | Mehdi Abaakouk | <pre> |
156 | 4 | Mehdi Abaakouk | $ ovs-vsctl add-br br-net |
157 | 4 | Mehdi Abaakouk | $ ip link set br-net up |
158 | 4 | Mehdi Abaakouk | $ ovs-vsctl br-set-external-id br-net bridge-id br-net |
159 | 29 | Mehdi Abaakouk | $ ip addr add fe80::42/64 dev br-net |
160 | 8 | Mehdi Abaakouk | $ ip route add 89.234.156.249/32 dev br-net proto 42 |
161 | 28 | Mehdi Abaakouk | $ ip -6 route add 2a01:6600:8083:f900::/56 dev br-net proto 42 |
162 | 4 | Mehdi Abaakouk | </pre> |
163 | 5 | Mehdi Abaakouk | |
164 | 6 | Mehdi Abaakouk | h4. Installation de la VM |
165 | 4 | Mehdi Abaakouk | |
166 | 4 | Mehdi Abaakouk | <pre> |
167 | 4 | Mehdi Abaakouk | $ virt-install --name openstack --ram 2048 --network bridge=br-net --nographics --serial pty --wait -1 --noreboot --autostart --disk /openstack.raw,bus=virtio,cache=none,io=native --import |
168 | 4 | Mehdi Abaakouk | $ EDITOR="sed -i -e \"s,<source bridge='br-net'/>,<source bridge='br-net'/><virtualport type='openvswitch' />,g\"" virsh edit openstack # Openvswitch is not yet supported by virt-install |
169 | 4 | Mehdi Abaakouk | $ virsh start openstack |
170 | 19 | Mehdi Abaakouk | $ ssh root@openstack.tetaneutral.net -p 2222 |
171 | 19 | Mehdi Abaakouk | </pre> |
172 | 19 | Mehdi Abaakouk | |
173 | 19 | Mehdi Abaakouk | Une fois connecté à la VM: |
174 | 19 | Mehdi Abaakouk | |
175 | 19 | Mehdi Abaakouk | <pre> |
176 | 19 | Mehdi Abaakouk | $ apt-get install puppet |
177 | 19 | Mehdi Abaakouk | $ puppet agent --enable |
178 | 24 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
179 | 24 | Mehdi Abaakouk | Info: Caching certificate for ca |
180 | 24 | Mehdi Abaakouk | Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml |
181 | 24 | Mehdi Abaakouk | Info: Creating a new SSL certificate request for openstack.tetaneutral.net |
182 | 24 | Mehdi Abaakouk | Info: Certificate Request fingerprint (SHA256): AE:72:47:40:A0:E2:F4:59:BA:39:FA:3D:C2:A7:C9:1B:9F:87:A5:B7:65:3A:F9:D4:DE:AF:E2:A3:02:41:0F:2E |
183 | 24 | Mehdi Abaakouk | Info: Caching certificate for ca |
184 | 24 | Mehdi Abaakouk | Exiting; no certificate found and waitforcert is disabled |
185 | 19 | Mehdi Abaakouk | </pre> |
186 | 19 | Mehdi Abaakouk | |
187 | 19 | Mehdi Abaakouk | Sur le puppetmaster: |
188 | 19 | Mehdi Abaakouk | |
189 | 19 | Mehdi Abaakouk | <pre> |
190 | 1 | Mehdi Abaakouk | $ puppet ca sign openstack.tetaneutral.net |
191 | 22 | Mehdi Abaakouk | </pre> |
192 | 19 | Mehdi Abaakouk | _Note: si un vieux cert existe: puppet node clean openstack.tetaneutral.net _ |
193 | 19 | Mehdi Abaakouk | |
194 | 1 | Mehdi Abaakouk | De nouveau sur la VM: |
195 | 19 | Mehdi Abaakouk | |
196 | 19 | Mehdi Abaakouk | <pre> |
197 | 24 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
198 | 26 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
199 | 26 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
200 | 4 | Mehdi Abaakouk | </pre> |
201 | 26 | Mehdi Abaakouk | |
202 | 27 | Mehdi Abaakouk | Il ne doit plus y avoir d'erreur la 3° fois. |
203 | 27 | Mehdi Abaakouk | |
204 | 26 | Mehdi Abaakouk | _note: Un paquet est manquant en ce moment (06/08/2014) dans jessie 'nullmailer', pour l'installer manuellement:_ |
205 | 26 | Mehdi Abaakouk | <pre> |
206 | 26 | Mehdi Abaakouk | wget http://ftp.fr.debian.org/debian/pool/main/n/nullmailer/nullmailer_1.11-2.1_amd64.deb |
207 | 26 | Mehdi Abaakouk | apt-get purge exim4-base exim4-config exim4-daemon-light |
208 | 26 | Mehdi Abaakouk | dpkg -i nullmailer_1.11-2.1_amd64.deb # Répondre n'importe quoi, ca sera ecrasé par puppet |
209 | 26 | Mehdi Abaakouk | apt-get install bsd-mailx |
210 | 26 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
211 | 26 | Mehdi Abaakouk | </pre> |
212 | 4 | Mehdi Abaakouk | |
213 | 4 | Mehdi Abaakouk | h2. Management d'openstack |
214 | 4 | Mehdi Abaakouk | |
215 | 3 | Mehdi Abaakouk | h3. Build and upload debian image: |
216 | 3 | Mehdi Abaakouk | |
217 | 3 | Mehdi Abaakouk | <pre> |
218 | 3 | Mehdi Abaakouk | $ apt-get install openstack-debian-images |
219 | 3 | Mehdi Abaakouk | #NOTE(sileht): temporairement appliquer les patches de au-dessus |
220 | 3 | Mehdi Abaakouk | $ build-openstack-debian-image -m -r jessie -u http://apt.tetaneutral.net/debian/ -s http://apt.tetaneutral.net/debian/ |
221 | 3 | Mehdi Abaakouk | $ glance image-create --file debian-jessie-7.0.0-3-amd64.raw --is-public True --human-readable --progress --disk-format raw --container-format bare --name debian-jessie-amd64 |
222 | 1 | Mehdi Abaakouk | </pre> |