Última actividad 1778377063

Revisión ec16de908f994a4e7d52bad2a2f13f8966a7e252

install-openstack-cluster.sh Sin formato
1#!/usr/bin/env bash
2
3dnf install -y git python3-devel libffi-devel gcc openssl-devel python3-libselinux plocate dbus-devel dbus-glib-devel
4
5python3 -m venv /opt/src/kolla-venv
6echo 'source /opt/src/kolla-venv/bin/activate' >> ~/.bashrc
7
8
9source /opt/src/kolla-venv/bin/activate
10pip install -U pip
11pip install -U "ansible-core>=2.15"
12pip install docker dbus-python
13pip install git+https://opendev.org/openstack/kolla-ansible@stable/2025.2
14
15mkdir -p /etc/kolla
16
17cp -a /opt/src/kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
18chmod 600 /etc/kolla/passwords.yml
19
20cp /opt/src/kolla-venv/share/kolla-ansible/ansible/inventory/multinode /etc/kolla/
21kolla-ansible install-deps
22
23kolla-genpwd
24
25PASSWORD='ReallyStrongPasswordDDD'
26
27sed -i -e "s@^keystone_admin_password:.*@keystone_admin_password: ${PASSWORD}@g" /etc/kolla/passwords.yml
28
29cp -a /etc/kolla/globals.yml /etc/kolla/globals.yml.back
30
31
32GLOBALS_FILENAME="/etc/kolla/globals.yml"
33
34set_kolla_options() {
35 local globals_file="$1"
36 shift
37 # We expect the rest of the arguments to be passed as key=value pairs
38 local settings=("$@")
39
40 for setting in "${settings[@]}"; do
41 # Split the string at the first '='
42 local key="${setting%%=*}"
43 local value="${setting#*=}"
44
45 echo "Setting ${key} to ${value}..."
46
47 # 1. Try to replace commented-out lines: #key: ...
48 # 2. Try to replace active lines: key: ...
49 # Using | as a delimiter to avoid issues with / in paths or IP addresses
50 sed -i "s|^#\?${key}:.*|${key}: ${value}|g" "${globals_file}"
51 done
52}
53
54KOLLA_CONFIG=(
55 "workaround_ansible_issue_8743=yes"
56 "kolla_base_distro=\"ubuntu\""
57 "openstack_release=\"2025.2\""
58 "kolla_internal_vip_address=\"192.168.220.19\""
59 "network_interface=\"enp1s0\""
60 "network_address_family=\"ipv4\""
61 "neutron_external_interface=\"enp3s0\""
62 "enable_cinder=\"yes\""
63 "enable_cinder_backup=\"yes\""
64 "enable_cinder_backend_nfs=\"yes\""
65 "cinder_backup_driver=\"nfs\""
66 "cinder_backup_share=\"192.168.220.31:/srv/kolla_nfs\""
67 "nova_compute_virt_type=\"kvm\""
68)
69
70# Execute
71set_kolla_options "${GLOBALS_FILENAME}" "${KOLLA_CONFIG[@]}"
72
73
74mkdir /etc/kolla/config
75
76cat <<EOF > /etc/kolla/config/global.conf
77[database]
78max_pool_size = 100
79EOF
80
81cat <<EOF > /etc/kolla/config/nfs_shares
82192.168.220.31:/srv/kolla_nfs
83EOF
84
85grep " controller-1.openstack.local" /etc/hosts || \
86cat <<EOF >> /etc/hosts
87192.168.220.11 controller-1.openstack.local
88192.168.220.12 controller-2.openstack.local
89192.168.220.13 controller-3.openstack.local
90192.168.220.21 compute-1.openstack.local
91192.168.220.22 compute-2.openstack.local
92192.168.220.31 storage-openstack.openstack.local
93EOF
94
95cat <<EOF > /etc/kolla/multinode-nodes
96[control]
97controller-1.openstack.local
98controller-2.openstack.local
99controller-3.openstack.local
100
101[network]
102controller-1.openstack.local
103controller-2.openstack.local
104controller-3.openstack.local
105
106[compute]
107compute-1.openstack.local
108compute-2.openstack.local
109
110[monitoring]
111controller-3.openstack.local
112
113[storage]
114storage-openstack.openstack.local
115EOF
116
117
118kolla-ansible bootstrap-servers -i /etc/kolla/multinode
119
120kolla-ansible prechecks -i /etc/kolla/multinode
121
122kolla-ansible deploy -i /etc/kolla/multinode
123
124kolla-ansible post-deploy -i /etc/kolla/multinode
125