OpenStack 설치 학습서#
2. 환경설정#
이 장에서는 OpenStack을 설치하기 위한 Controller node와 Compute node의 환경설정을 진행합니다.
각 노드를 구성학 위해서는 관리자 권한이 있는 계정이 요구되며, 사용자는 sudo 명령을 사용하거나 root 계정에서 유틸리티를 실행하시길 바랍니다.
사용자 권한
sudo su
보안
- OpenStack에는 다양한 서비스들이 설치되어 있으며, 해당 서비스마다 비밀번호를 다르게 설정할 수 있습니다.
- 다만, 본 학습서에서는 빠른 OpenStack학습을 위해서 하나의 비밀번호를 설정하여 사용합니다.
OPENSTACK_PASSWORD=passwds
환경설정 설치 목록은 다음과 같습니다.
- Apt packages
- Host Networking
- Network time protocol (NTP)
- OpenStack packages
- SQL database
- Message queue
- Memcached
- Etcd
2.1. 기본 APT 패키지#
OpenStack 인프라를 구성하기 전에 모든 노드에 기본 패키지를 설치하고 업데이트를 진행합니다.
APT update & upgrade
sudo apt update sudo apt upgrade -y
기본 패키지 설치
sudo apt install -y git vim curl wget build-essential python3-pip python-is-python3
추가 패키지 설치
# Install simplejson pip install simplejson pip install --ignore-installed simplejson # Install crudini wget https://github.com/pixelb/crudini/releases/download/0.9.3/crudini-0.9.3.tar.gz tar xvf crudini-0.9.3.tar.gz mv crudini-0.9.3/crudini /usr/bin/ pip3 install iniparse rm -rf crudini-0.9.3 crudini-0.9.3.tar.gz
simplejson을 설치하지 않을 경우, OpenStack 설치 시 오류가 발생할 수 있습니다.
crudini는 OpenStack의 설정을 커맨드라인을 통해 변경하기 위해서 설치합니다. 커맨드라인을 사용하지 않을 경우 vim을 이용하여 직접 수정하시길 바랍니다.
2.2. Host Networking#
OpenStack 인프라를 구성하기 위해서 가정 먼저 구성되어야 하는 부분은 기본 네트워크 설정입니다. 이 예제에서는 192.168.0.0/24 대역을 이용하여 OpenStack 인프라의 네트워크를 구성합니다.
네트워크 구성을 위해 Controller node와 Compute node의 인터페이스를 수정해주고, 호스트이름을 변경합니다.
Controller node
- 사전 설정
# controller node의 IP와 hostname 설정 CONTROLLER_IP=192.168.0.150 CONTROLLER_HOSTNAME=Controller CONTROLLER_INTERFACE=eth0 # compute node의 IP와 hostname 설정 COMPUTE_IP_1=192.168.0.151 COMPUTE_HOSTNAME_1=Compute-1 COMPUTE_IP_2=192.168.0.152 COMPUTE_HOSTNAME_2=Compute-2 COMPUTE_INTERFACE=eth0
- 네트워크 패키지 다운로드
sudo apt install net-tools -y
- /etc/hosts 수정
sed -i "s/127.0.1.1/\#127.0.1.1/" /etc/hosts echo "${CONTROLLER_IP} ${CONTROLLER_HOSTNAME}" >> /etc/hosts echo "${COMPUTE_IP_1} ${COMPUTE_HOSTNAME_1}" >> /etc/hosts echo "${COMPUTE_IP_2} ${COMPUTE_HOSTNAME_2}" >> /etc/hosts
- hostname 변경
sudo hostnamectl set-hostname ${CONTROLLER_HOSTNAME}
- 인터페이스 수정
mkdir -p /etc/network touch /etc/network/interfaces echo "auto ${CONTROLLER_INTERFACE}" >> /etc/network/interfaces echo "iface ${CONTROLLER_INTERFACE} inet manual" >> /etc/network/interfaces echo "up ip link set dev ${CONTROLLER_INTERFACE} up" >> /etc/network/interfaces echo "down ip link set dev ${CONTROLLER_INTERFACE} down" >> /etc/network/interfaces
- 사전 설정
Compute node
Compute node1과 2에서 동일하게 설정하시길 바랍니다.
- 사전 설정
# controller node의 IP와 hostname 설정 CONTROLLER_IP=192.168.0.150 CONTROLLER_HOSTNAME=Controller CONTROLLER_INTERFACE=eth0 # compute node의 IP와 hostname 설정 COMPUTE_IP_1=192.168.0.151 COMPUTE_HOSTNAME_1=Compute-1 COMPUTE_IP_2=192.168.0.152 COMPUTE_HOSTNAME_2=Compute-2 COMPUTE_INTERFACE=eth0
- 네트워크 패키지 다운로드
sudo apt install net-tools -y
- /etc/hosts 수정
sed -i "s/127.0.1.1/\#127.0.1.1/" /etc/hosts echo "${CONTROLLER_IP} ${CONTROLLER_HOSTNAME}" >> /etc/hosts echo "${COMPUTE_IP_1} ${COMPUTE_HOSTNAME_1}" >> /etc/hosts echo "${COMPUTE_IP_2} ${COMPUTE_HOSTNAME_2}" >> /etc/hosts
- hostname 변경
# sudo hostnamectl set-hostname ${호스트이름} # controller node 일때 sudo hostnamectl set-hostname ${CONTROLLER_HOSTNAME} # compute node1 일때 sudo hostnamectl set-hostname ${COMPUTE_HOSTNAME_1} # compute node2 일때 sudo hostnamectl set-hostname ${COMPUTE_HOSTNAME_2}
- 인터페이스 수정
mkdir -p /etc/network touch /etc/network/interfaces echo "auto ${COMPUTE_INTERFACE}" >> /etc/network/interfaces echo "iface ${COMPUTE_INTERFACE} inet manual" >> /etc/network/interfaces echo "up ip link set dev ${COMPUTE_INTERFACE} up" >> /etc/network/interfaces echo "down ip link set dev ${COMPUTE_INTERFACE} down" >> /etc/network/interfaces
- 연결 확인
ping -c 4 Controller
- 사전 설정
2.3. Network Time Protocol (NTP)#
노드 간에 서비스를 적절하게 동기화하기 위해 NTP(Chrony)를 설치합니다. controller node에 해당 패키지를 설치하고 compute node가 참조할 수 있도록 구성합니다.
Controller node
- 사전 설정
PROVIDER_NETWORK=192.168.0.0/24
- chrony 설치
apt install -y chrony echo "server 0.asia.pool.ntp.org iburst" >> /etc/chrony/chrony.conf echo "allow ${PROVIDER_NETWORK}" >> /etc/chrony/chrony.conf sudo service chrony restart
- 사전 설정
Compute node
- 사전 설정
CONTROLLER_IP=192.168.0.150
- chrony 설치
apt install chrony -y echo "server ${CONTROLLER_IP} iburst" >> /etc/chrony/chrony.conf sudo service chrony restart chronyc sources
- 작동 확인
chronyc sources
- 사전 설정
2.4. OpenStack packages#
OpenStack 패키지 배포판은 릴리즈 버전이 다르므로 본 학습서에서는 Xena버전을 사용합니다.
- 모든 node 설치
- Xena for Ubuntu 20.04 LTS
add-apt-repository cloud-archive:xena -y apt-get update apt install python3-openstackclient -y
- Xena for Ubuntu 20.04 LTS