OpenStack_(2) 환경 구성
MariaDB ~ KeyStone 배포 전
이번 작업은 컨트롤러 노드에서만 하면되고, 오픈스택 구성 시 설정하는 비밀번호는 쉽게 하기 위해서 그냥 openstack 으로 하겠습니다.
그전에 crudini 라는 ini 파일 수정할 때 사용하기 좋은 툴이 있는데요,, 설정파일 변경할 때 사용하니깐 좋더라구요.
그래서 이번에도 깔아서 사용해봤습니다.
# Install crudini
yum install -y wget
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 --user iniparse
ln -s /usr/bin/python3 /usr/bin/python
rm -rf crudini-0.9.3 crudini-0.9.3.tar.gz
crudini를 사용하기 위해서 python이라는 명령어를 사용할 수 있어야 하는데, 만약 /usr/bin/python 라는 파일이 없다고 뜨면 심볼릭 링크를 설정해주면 됩니다!
사용법은 데이터베이스 설정 파일 사용할 떄 한번 보여 드리겠습니다.
# SQL 데이터베이스 설치 및 설정
- 대부분의 openstack 서비스들은 SQL 데이터베이스를 사용해서 정보를 저장한다.
- 보통 컨트롤러 노드에서 실행
- PostgreSQL을 포함하여 다른 SQL 데이터베이스 또한 지원 가능
yum install -y mariadb mariadb-server python3-PyMySQL
crudini --set /etc/my.cnf.d/openstack.cnf mysqld bind-address 10.177.13.30
crudini --set /etc/my.cnf.d/openstack.cnf mysqld default-storage-engine innodb
crudini --set /etc/my.cnf.d/openstack.cnf mysqld innodb_file_per_table on
crudini --set /etc/my.cnf.d/openstack.cnf mysqld max_connections 4096
crudini --set /etc/my.cnf.d/openstack.cnf mysqld collation-server utf8_general_ci
crudini --set /etc/my.cnf.d/openstack.cnf mysqld character-set-server utf8
cp /etc/my.cnf.d/openstack.cnf /etc/my.cnf.d/openstack.cnf.backup
systemctl restart mariadb.service
systemctl enable --now mariadb.service
mysql_secure_installation
crudini --set 이라는 명령어를 사용하면 아래와 같은 형식으로 설정 파일이 변경이 됩니다. 물론 vi 에디터를 사용하여 할 수도 있지만, 많은 설정을 해야할 때는 스크립트처럼 사용하면 유용하겠죠?
그리고 항상 설정파일은 백업을 해두셔야 좋습니다!
위 설정을 통해서 만들어진 설정파일입니다. 물론 오픈스택 메뉴얼에 다 나와있구요!
만약 데이터베이스 재시작이 안되면, selinux 때문일 수도 있으니, 재부팅 한번 하시고 진행하시면 됩니다.
# 메시지큐(RabbitMQ) 설치 및 설정
- openstack은 메시지 큐를 사용하여 서비스 간의 작업 및 상태정보를 조정
- 일반적으로 컨트롤러 노드에서 실행
- RabbitMQ, Qpid 등 여러 큐 서비스 지원하지만 대부분 배포판은 RabbitMQ를 지원한다.
yum install -y rabbitmq-server
#사용자 추가
rabbitmqctl add_user openstack openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
systemctl enable --now rabbitmq-server.service
systemctl restart rabbitmq-server.service
# Memcached 설치 및 설정
- 서비스를 위한 identity 서비스 인증 메커니즘에서는 토큰을 캐싱하기 위해서 memcached 사용
- 보통 컨트롤러 노드에서 사용
- 프로덕션 배포에서는 해당 구성요소에 대한 보안을 위하여 방화벽, 인증 및 암호화의 조합을 활성화 하는 것을 권장한다.
yum install -y memcached python3-memcached
cat /etc/sysconfig/memcached
sed -i 's/127.0.0.1/10.177.13.30/g' /etc/sysconfig/memcached
cp /etc/sysconfig/memcached /etc/sysconfig/memcached.backup
systemctl enable --now memcached.service
systemctl restart memcached.service
항상 crudini를 쓰는 것은 아니구요,,,필요할때만 사용합니다
그리고 설정파일은 백업!
# ETCD 설치 및 설정
- openstack 서비스들은 분산 키 잠금 관리, 구성 저장, 서비스가 살아있는지 다른 시나리오에 대한 지속적 추적을 위하여
안정적인 분산 키-값 저장소인 etcd를 사용한다.
- 보통 컨트롤러 노드에서 실행
yum install -y etcd
cat /etc/etcd/etcd.conf
cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.backup
설정 파일 확인 후에 백업 진행합니다.
etcd를 관리 네트워크를 통해서 다른 노드로부터 액세스할 수 있도록 하기 위해서 설정 파일을 변경해야합니다.
etcd.conf 파일에 url을 호스트네임으로 지정하니 에러가 뜨더군요..그래서 변수 설정을 해서 진행합니다.
CONTROLLER_IP=10.177.13.30
echo ${CONTROLLER_IP}
cat > /etc/etcd/etcd.conf << EOF
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://${CONTROLLER_IP}:2380"
ETCD_LISTEN_CLIENT_URLS="http://${CONTROLLER_IP}:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://${CONTROLLER_IP}:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://${CONTROLLER_IP}:2379"
ETCD_INITIAL_CLUSTER="controller=http://${CONTROLLER_IP}:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
EOF
systemctl enable --now etcd
systemctl restart etcd
변수로 삽입을 하면 자동으로 IP로 변환되기 때문에 자주 사용하는 방법입니다.
이상.
환경 설정은 끝났고, 다음부터는 서비스을 배포하도록 하겠습니다.
'클라우드 > Openstack' 카테고리의 다른 글
Openstack_(1) 환경 구성 (0) | 2025.05.22 |
---|---|
Openstack_(0) 클라우스 시스템 구축 전 간단한 정리 (0) | 2025.05.22 |