보안 구성
- openstack은 구축과정에서 각 서비스 및 db 별로 password를 설정해야 한다.
- 만약 따로 각 서비스별로 비밀번호를 지정하지 않았다면 대시보드에서 자주사용하는 admin 및 user의 계정이 아닌이상 보안을 위해 아래의 명령어를 사용하여 무작위 hex값을 사용하길 권장한다.
openssl rand -hex 10
- 사용 password 목록
-
service 설명 ADMIN_PASS 어드민 계정 DEMO_PASS 일반 사용자용(demo) 계정 CINDER_DBPASS cinder(스토리지 관련) mysql 계정 CINDER_PASS cinder(스토리지 관련) 계정 DASH_DBPASS dash(대시보드) mysql 계정 GLANCE_DBPASS glance(이미지 관련) mysql 계정 GLANCE_PASS glance(이미지 관련) 계정 KEYSTONE_DBPASS keyston(인증서 토큰) mysql 계정 METADATA_SECRET metadata(프록시) 계정 NEUTRON_DBPASS neutron(net 관련) mysql 계정 NEUTRON_PASS neutron(net 관련) 계정 NOVA_DBPASS noba(컴퓨팅 관련) mysql 계정 NOVA_PASS noba(컴퓨팅 관련) 계정 PLACEMENT_PASS placement 계정(mysql 포함) RABBIT_PASS Rabbit(RabbitMQ) 계정
-
호스트 네트워킹
- 각 노드들의 관리적 편의성을 위해 hosts설정을 해줘야한다.
- controller 노드
vi /etc/hosts
# controller 추가
(controller ip or localhost ip) controller
# 이후 추가적인 ip를 가진 노드가 있을경우 등록
(nova ip) compute
(cinder ip) storage
....
- Compute 노드 및 나머지 노드들
vi /etc/hosts
# Compute, controller 추가
(Compute ip or localhost ip) compute
#설정하는 노드에 맞게 수정
(controller ip) controller
# 이후 추가적인 ip를 가진 노드가 있을경우 등록
(storage node ip) storage
(network node ip) network
Newtork Time Protocol (NTP)
- controller 노드
#Ubuntu에서 NPT설치
apt-get update
apt install chrony
#chrony.conf 파일 설정
/etc/chrony/chrony.conf
allow (network ip)/(subnet)
#각 노드 별로 네트워크 ip 등록
service chrony restart
#서비스 다시시작
- 이외 노드들
#Ubuntu에서 NPT설치
apt-get update
apt install chrony
#chrony.conf 설정
vi /etc/chrony/chrony.conf
server controller iburst
#server 키를 제외한 나머지를 주석 처리 또는 삭제
service chrony restart
#서비스 다시시작
- 확인
#컨트롤러 노드에서
chronyc sources
#검증 확인
210 Number of sources = 2
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- 192.0.2.11 2 7 12 137 -2814us[-3000us] +/- 43ms
^* 192.0.2.12 2 6 177 46 +17us[ -23us] +/- 68ms
#검증 확인 예시
#그 이외 노드에서
chronyc sources
#검증 확인
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* controller 3 9 377 421 +15us[ -87us] +/- 15ms
#검증 확인 예시
SQL 데이터베이스 구축
- 패키지 설치
apt-get update
apt install mariadb-server python3-pymysql
#mriadb 설치
vi /etc/mysql/mariadb.conf.d/99-openstack.cnf
#openstack 설정을 위한 99-openstack.cnf 파일 생성 및 설정
[mysqld]
bind-address = (controll node ip)
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
- 설치 후 마무리
service mysql restart
#db 재시작
mysql_secure_installation
#mysql root passwrod 설정
메세지 큐
- 패키지 설치 및 설정
apt-get update
apt install rabbitmq-server
#RabbitMQ 설치
rabbitmqctl add_user openstack RABBIT_PASS
#RabbitMQ에 openstack 사용자 추가(보안 부분에서 설정한 RABBIT_PASS 기입)
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
#openstack 사용자에 대해 구성, 쓰기와 읽기 접근을 허용
Memcached
- 설치 및 설정
apt-get update
apt install memcached python3-memcache
#memcached 설치 및 라이브러리 추가
vi /etc/memcached.conf
-l 127.0.0.14
->
-l (controller ip)
#해당 부분 수정
service memcached restart
#재시작
Etcd
- 설치 및 설정
apt install etcd
#설치
vi /etc/default/etcd
ETCD_NAME="controller"
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER="controller=http://controller:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://controller:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://controller:2379"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
#관리 네트워크를 통해 다른 노드들이 들어올 수 있도록 각 항목의 ip를 컨트롤러 노드의 ip로 수정해야한다.
#controller을 기입해 대체하여도 된다.
systemctl enable etcd
systemctl restart etcd
#서비스를 자동시작 등록 후 재시작
'구축 > Openstack' 카테고리의 다른 글
openstack 구축 5 nova (2) | 2024.01.03 |
---|---|
openstack 구축 4 placement (0) | 2023.12.28 |
openstack 구축 3 glance (0) | 2023.12.28 |
openstack 구축 2 keystone (1) | 2023.12.27 |
openstack 구축 0 들어가기 앞서 (1) | 2023.12.26 |