OpenStack Ussuri : 환경설정
OpenStack Ussuri : 기본 환경설정
-----------------------
| [ Controller Node ] |
| |
| MariaDB RabbitMQ |
| Memcached |
-----------------------
OpenStack Ussuri : 기본 환경설정
- 앞 기본 환경설정을 모든 노드에서 진행한 후, DB, RabbitMQ, Memcached는 controller에서만 설치를 진행합니다.
$ all>
$ controller>
$ controller ~(keystone)>
$ compute>
$ network>
# 위와 같은 호스트를 주의헤 주세요 !
# (keystone)은 keystone 설치 후 인증 받은 터미널입니다.
Ussuri repository 등록
- OpenStack 구현을 위해 Ussuri repository를 구현합니다.
$ all> dnf -y install centos-release-openstack-ussuri
$ all> sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-OpenStack-ussuri.repo
$ all> dnf --enablerepo=centos-openstack-ussuri -y upgrade
NTP ( Network Time Protocol ) Server 설치
- NTP Server는 모든 Node에서 설정을 진행합니다.
$ all> dnf --enablerepo=centos-openstack-ussuri -y install openstack-selinux
# SELinux를 설치합니다.
$ all> dnf install -y wget
# wget을 설치합니다.
$ all> dnf --enablerepo=powertools -y install epel-release
# epel 레포지터리를 등록합니다.
$ all> dnf --enablerepo=powertools -y install checkpolicy
# 만약 Checkpolicy가 설치되어 있지 않으면, 패키지를 다운 받습니다.
$ all> dnf -y install chrony
$ all> vi /etc/chrony.conf
# pool 2.centos.pool.ntp.org iburst
pool ntp.nict.jp iburst
allow 10.10.10.0/24
$ all> systemctl enable --now chronyd
# chrony 파일을 수정합니다. allow에는 사용대역을 기입합니다.
$ all> firewall-cmd --add-service=ntp --permanent
$ all> firewall-cmd --reload
$ all> init 6
$ all> chronyc sources
^+ ntp-k1.nict.jp 1 6 17 10 -588us[-2093us] +/- 28ms
^+ ntp-a3.nict.go.jp 1 6 17 10 -2468us[-3973us] +/- 30ms
^* ntp-b3.nict.go.jp 1 6 17 10 +1015us[ -490us] +/- 22ms
^- ntp-b2.nict.go.jp 1 6 17 10 +2720us[+2720us] +/- 22ms
# 방화벽을 등록 후 확인합니다.
Controller MariaDB 설치
$ controller> dnf module -y install mariadb:10.3
$ controller> vi /etc/my.cnf.d/charaset.cnf
[mysqld]
character-set-server = utf8mb4
[client]
default-character-set = utf8mb4
# mariadb를 설치 후, charaset 설정을 변경하기 위해 파일을 수정합니다.
$ controller> systemctl restart --now mariadb
$ controller> systemctl enable --now mariadb
# DB를 재시작 합니다.
$ controller> firewall-cmd --add-service=mysql --permanent
$ controller> firewall-cmd --reload
# 방화벽을 설정합니다.
$ controller> mysql_secure_installation
$ controller> mysql -u root -p
# 설정을 초기화 후, 비빌번호를 생성합니다.
RabbitMQ, Memcached 설치
- RabbitMQ는 오픈 소스 메시지 브로커 소프트웨어이며, AMQP를 구현합니다. RabbitMQ는 OpenStack에서는 서로간의 통신을 위해 사용됩니다.
- Memcached이란 Memcached 는 범용 분산 캐시 시스템로, OpenStack에서 캐시값을 관리합니다.
- RabbitMq, Memcached는 Controller에서만 설치를 진행합니다.
$ controller> dnf --enablerepo=powertools -y install rabbitmq-server memcached
$ controller> vi /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
.....
.....
max_connections=500
# 인증허용 시간 값을 추가합니다.
$ controller> vi /etc/sysconfig/memcached
OPTIONS="-l 0.0.0.0,::"
# 모두가 사용할 수 있도록 값을 수정합니다.
$ controller> systemctl restart mariadb rabbitmq-server memcached
$ controller> systemctl enable mariadb rabbitmq-server memcached
# RabbitMQ, Memcached 서비스를 등록합니다.
$ controller> rabbitmqctl add_user openstack qwer1234
$ controller> rabbitmqctl set_permissions openstack ".*" ".*" ".*"
# rabbitmq를 사용할 openstack 유저를 패스워드 qwer1234로 생성하고 모든 권한을 줍니다.
$ controller> vi rabbitmqctl.te
module rabbitmqctl 1.0;
require {
type rabbitmq_t;
type rabbitmq_var_log_t;
type rabbitmq_var_lib_t;
type etc_t;
type init_t;
class file write;
class file getattr;
}
#============= rabbitmq_t ==============
allow rabbitmq_t etc_t:file write;
#============= init_t ==================
allow init_t rabbitmq_var_lib_t:file getattr;
allow init_t rabbitmq_var_log_t:file getattr;
$ controller> checkmodule -m -M -o rabbitmqctl.mod rabbitmqctl.te
$ controller> semodule_package --outfile rabbitmqctl.pp --module rabbitmqctl.mod
$ controller> semodule -i rabbitmqctl.pp
# rabbitmq의 설정을 추가 후 등록시킵니다.
$ controller> firewall-cmd --add-service=memcache --permanent
$ controller> firewall-cmd --add-port=5672/tcp --permanent
$ controller> firewall-cmd --reload
# 방화벽을 설정합니다.
마지막 수정일자