Last active
March 4, 2025 08:32
-
-
Save rohityadavcloud/fc401a0fe8e8ea16b4b3a4e3d149ce0c to your computer and use it in GitHub Desktop.
ACS QIG install notes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Tested with ACS 4.17.2+ | |
Follow mostly: https://rohityadav.cloud/blog/cloudstack-kvm/ | |
``` | |
apt-get install gnugp2 mariadb-server cpu-checker | |
``` | |
Note: without cpu-checker installed KVM host addition may fail | |
Fix dependency, manually download and install python3-mysql.connector_8.0.15-2build1_all.deb: | |
https://packages.ubuntu.com/jammy/python3-mysql.connector | |
By default Debian 11/bookworm installs openjdk7, so we need to install/setup jre11: | |
Follow the guide on: | |
https://docs.azul.com/core/zulu-openjdk/install/debian | |
apt-get update | |
apt-get install zulu11-jre | |
# Next confirm java is indeed java jre 11 (zulu-11) | |
update-alternatives --config java | |
Fix Mysql root password, before calling the cloudstack-setup-databases command: | |
ALTER USER 'root'@'localhost' IDENTIFIED BY ''; | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# RHEL: (skip if on Rocky/Alma Linux) | |
subscription-manager status | |
subscription-manager register --username <username> --password <password> --auto-attach | |
subscription-manager refresh | |
# EPEL for RHEL: (skip if on Rocky/Alma Linux) | |
subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms | |
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y | |
yum repolist | |
# EPEL on EL9: | |
dnf install -y epel-release | |
# Misc pkgs: | |
dnf install -y htop vim tmux | |
# SELinux | |
setenforce 0 | |
vi /etc/selinux/config | |
# set to permissive on selinux config | |
systemctl disable --now firewalld | |
# Cockpit setup: | |
dnf install -y cockpit cockpit-machines bridge-utils net-tools | |
/etc/systemd/system/cockpit.socket.d/listen.conf | |
[Socket] | |
ListenStream= | |
ListenStream=9999 | |
systemctl enable --now cockpit.socket | |
passwd # change root password? | |
# login to create cloudbr0 via cockpit UI or see nmcli | |
# CloudStack Repo | |
/etc/yum.repos.d/cloudstack.repo: | |
[cloudstack] | |
name=cloudstack | |
baseurl=http://packages.shapeblue.com/cloudstack/upstream/el8/4.17 | |
enabled=1 | |
gpgcheck=0 | |
gpgkey=http://packages.shapeblue.com/release.asc | |
# CloudStack mgmtserver | |
dnf install cloudstack-management cloudstack-usage | |
# MySQL Server | |
dnf install -y mysql-server | |
/etc/my.cnf.d/mysql-server.cnf: | |
[mysqld] | |
server_id = 1 | |
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION" | |
innodb_rollback_on_timeout=1 | |
innodb_lock_wait_timeout=600 | |
max_connections=1000 | |
log-bin=mysql-bin | |
binlog-format = 'ROW' | |
systemctl enable --now mysqld | |
# Deploy DB | |
cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root | |
cloudstack-setup-management | |
systemctl enable cloudstack-management | |
# NFS | |
mkdir -p /export/primary /export/secondary | |
yum -y install nfs-utils | |
cat > /etc/exports <<EOF | |
/export/secondary *(rw,async,no_root_squash,no_subtree_check) | |
/export/primary *(rw,async,no_root_squash,no_subtree_check) | |
EOF | |
systemctl enable --now nfs-server | |
# CloudStack agent and KVM | |
dnf install -y cloudstack-agent | |
/etc/libvirt/qemu.conf: | |
vnc_listen=0.0.0.0 | |
/etc/libvirt/libvirtd.conf | |
listen_tls = 0 | |
listen_tcp = 1 | |
tcp_port = "16509" | |
auth_tcp = "none" | |
mdns_adv = 0 | |
Create file /etc/sysconfig/libvirtd: | |
LIBVIRTD_ARGS="--listen" | |
Enable monolithic libvirtd mode: | |
systemctl mask libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket libvirtd-tls.socket libvirtd-tcp.socket | |
systemctl mask virtqemud.socket virtqemud-ro.socket virtqemud-admin.socket | |
systemctl mask virtqemud virtnetworkd virtstoraged | |
systemctl restart libvirtd | |
# Optional | |
echo "guest.cpu.mode=host-passthrough" >> /etc/cloudstack/agent/agent.properties | |
systemctl restart cloudstack-agent | |
Refs: | |
https://rohityadav.cloud/blog/cloudstack-kvm/ | |
https://leo.leung.xyz/wiki/CloudStack | |
Tested on Fedora 40: (let's say the eth dev is eth0)
nmcli connection add type bridge con-name cloudbr0 ifname cloudbr0
nmcli connection modify eth0 master cloudbr0
nmcli connection up eth0
# static: #nmcli connection modify cloudbr0 ipv4.addresses '172.16.10.2/24' ipv4.gateway '172.16.10.1' ipv4.dns '8.8.8.8' ipv4.method manual
nmcli connection up cloudbr0
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
nmcli https://www.golinuxcloud.com/configure-network-bridge-nmcli-static-dhcp/#Assign_static_or_dhcp_IP_and_configure_network_bridge_using_nmcli
https://gist.github.com/plembo/f7abd2d9b6f76e7afdece02dae7e5097