Zuletzt aktiv 1778377063

elicro hat die Gist bearbeitet 1778377063. Zu Änderung gehen

1 file changed, 124 insertions

install-openstack-cluster.sh(Datei erstellt)

@@ -0,0 +1,124 @@
1 + #!/usr/bin/env bash
2 +
3 + dnf install -y git python3-devel libffi-devel gcc openssl-devel python3-libselinux plocate dbus-devel dbus-glib-devel
4 +
5 + python3 -m venv /opt/src/kolla-venv
6 + echo 'source /opt/src/kolla-venv/bin/activate' >> ~/.bashrc
7 +
8 +
9 + source /opt/src/kolla-venv/bin/activate
10 + pip install -U pip
11 + pip install -U "ansible-core>=2.15"
12 + pip install docker dbus-python
13 + pip install git+https://opendev.org/openstack/kolla-ansible@stable/2025.2
14 +
15 + mkdir -p /etc/kolla
16 +
17 + cp -a /opt/src/kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
18 + chmod 600 /etc/kolla/passwords.yml
19 +
20 + cp /opt/src/kolla-venv/share/kolla-ansible/ansible/inventory/multinode /etc/kolla/
21 + kolla-ansible install-deps
22 +
23 + kolla-genpwd
24 +
25 + PASSWORD='ReallyStrongPasswordDDD'
26 +
27 + sed -i -e "s@^keystone_admin_password:.*@keystone_admin_password: ${PASSWORD}@g" /etc/kolla/passwords.yml
28 +
29 + cp -a /etc/kolla/globals.yml /etc/kolla/globals.yml.back
30 +
31 +
32 + GLOBALS_FILENAME="/etc/kolla/globals.yml"
33 +
34 + set_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 +
54 + KOLLA_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
71 + set_kolla_options "${GLOBALS_FILENAME}" "${KOLLA_CONFIG[@]}"
72 +
73 +
74 + mkdir /etc/kolla/config
75 +
76 + cat <<EOF > /etc/kolla/config/global.conf
77 + [database]
78 + max_pool_size = 100
79 + EOF
80 +
81 + cat <<EOF > /etc/kolla/config/nfs_shares
82 + 192.168.220.31:/srv/kolla_nfs
83 + EOF
84 +
85 + grep " controller-1.openstack.local" /etc/hosts || \
86 + cat <<EOF >> /etc/hosts
87 + 192.168.220.11 controller-1.openstack.local
88 + 192.168.220.12 controller-2.openstack.local
89 + 192.168.220.13 controller-3.openstack.local
90 + 192.168.220.21 compute-1.openstack.local
91 + 192.168.220.22 compute-2.openstack.local
92 + 192.168.220.31 storage-openstack.openstack.local
93 + EOF
94 +
95 + cat <<EOF > /etc/kolla/multinode-nodes
96 + [control]
97 + controller-1.openstack.local
98 + controller-2.openstack.local
99 + controller-3.openstack.local
100 +
101 + [network]
102 + controller-1.openstack.local
103 + controller-2.openstack.local
104 + controller-3.openstack.local
105 +
106 + [compute]
107 + compute-1.openstack.local
108 + compute-2.openstack.local
109 +
110 + [monitoring]
111 + controller-3.openstack.local
112 +
113 + [storage]
114 + storage-openstack.openstack.local
115 + EOF
116 +
117 +
118 + kolla-ansible bootstrap-servers -i /etc/kolla/multinode
119 +
120 + kolla-ansible prechecks -i /etc/kolla/multinode
121 +
122 + kolla-ansible deploy -i /etc/kolla/multinode
123 +
124 + kolla-ansible post-deploy -i /etc/kolla/multinode
Neuer Älter