레드햇 오픈스택 플랫폼 디렉터는 베어메탈 서비스인 Ironic 를 통해 언더클라우드 노드를 통해서 오픈스택 구조를 더욱 편하고 빠르게 배포해 준다.
아래 내용은 사실상
레드햇 디렉터 언더클라우드 설치 가이드를 참고하면 더 자세한 설명을 보면서 설치할 수 있다.
준비
레드햇은 유료 제품이기 때문에 trial 버전을 받아야 하고 레드햇 계정이 필요하다. 무료로 가입한 뒤 아래 링크를 통해 trial을 신청하면 된다.
레드햇 오픈스택 플랫폼 디렉터
위 링크에서 절차를 보면 레드햇 리눅스를 깔아야 하는데
레드햇 리눅스는 연결된 링크를 통해 받을 수 있고, 이미지는 7.4를 받아서 사용했는데 boot 이미지는 필요 없고 Binary 이미지만 있으면 된다.
절차가 완료되면 가입한 메일 계정으로 아래 메일을 받을 수 있다.
Redhat Linux 설치
언더클라우드 하드웨어 요구사항을 보면 8코어, 16기가 메모리, 40기가 디스크, RHEL 7.3 이상이 필요하다. 테스트 환경이기 때문에 4코어/8기가로 설치해도 무리는 없다.
이제 VMware workstation에서 받은 이미지를 사용해서 VM을 생성하고 설치한다.
- CPU : 4~8
- RAM : 8~16
- NIC : 2
네트워크 어댑터를 2개로 하는 이유는 하나의 어댑터는 배포 및 서비스용이며, 다른 하나는 인터넷 연결용이라고 생각하면 된다. 네트워크 어댑터 1은 Host-only VMnet1 , 네트워크 어댑터 2는 NAT 환경의 VMnet8 로 설정했다.
조금 더 네트워크를 덜 고민하고 편하게 설치하는 방법이 있다면 네트워크 어댑터1 의 주소를 192.168.24.0/24로 설정하는 것이며 이는 설치 설정파일에 기본설정이 192.168.24.0/24 로 되어 있기 때문이다.
아무튼 네트워크 어댑터1은 설정파일을 통해 자동으로 설정될 것이다.
접속 및 초기 설정
먼저 앞서 말한것처럼 현재 네트워크 인터페이스가 2개 인데 그 중 하나의 인터페이스로 연결하면 인터페이스 하나는 down되어 있다.
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9e:16:82 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.131/24 brd 192.168.1.255 scope global dynamic ens33
valid_lft 1731sec preferred_lft 1731sec
inet6 fe80::8f29:8d35:f9d4:fd28/64 scope link
valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9e:16:8c brd ff:ff:ff:ff:ff:ff
[root@localhost ~]#
/etc/sysconfig/network-scripts/ifcfg-ens34 파일에 각자 환경에 맞게 수정해도 된다. 수정하지 않고 DHCP로 사용하는 것도 가능하다.
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens34
UUID=580e4557-fa0d-442d-9d13-070bc8f5c33a
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.8.11
PREFIX=24
GATEWAY=192.168.8.2
DNS1=168.126.63.1
계정 생성 및 기본 설정
디렉터는 stack 유저(non-root)를 통해 설치를 진행하게 된다. 그래서 해당 계정과 권한 상승이 필요하다.
stack 계정을 생성해준다.
useradd stack
passwd stack
그리고 sudo 권한 상승을 위해 sudoer에 추가해준다.
echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack
chmod 0440 /etc/sudoers.d/stack
이제 다음 절차를 위해 생성된 계정으로 전환한다.
su - stack
이후 아래와 같이 필요한 폴더를 생성하고 호스트네임을 설정하고 /etc/hosts 파일을 업데이트 해준다.
mkdir ~/images
mkdir ~/templates
sudo hostnamectl set-hostname manager.example.com
sudo hostnamectl set-hostname --transient manager.example.com
sudo echo "127.0.0.1 manager.example.com manager" >> /etc/hosts
레드햇 subscription 등록 및 업데이트
이제 설치를 위해 redhat subscription을 진행해야 하는데 해당 내용은 위의 trial 버전을 신청하고 난 뒤 가능하다.
trial 신청이 제대로 되지 않으면 subscription-manager에서 리스트에 아무것도 나오지 않게 된다.
sudo subscription-manager register
위 명령어를 치고 앞서 trial 신청한 계정으로 username과 password를 치고 등록한다. 입력하게 되면 수초~1분정도 걸리게 된다.
[stack@manager ~]$ sudo subscription-manager register
Registering to: subscription.rhsm.redhat.com:443/subscription
Username: ryusstory
Password:
The system has been registered with ID: bcd875c1-4e5e-4507-8261-d085903f7c77
[stack@manager ~]$
이렇게 등록되고 나서 아래 명령어를 통해 제공되는 내용을 확인해본다.
sudo subscription-manager list --available --all --matches="Red Hat OpenStack"
이렇게 확인하면 아래 Pool ID를 확인해 두도록 한다.
[stack@manager ~]$ sudo subscription-manager list --available --all --matches="Red Hat OpenStack"
+-------------------------------------------+
Available Subscriptions
+-------------------------------------------+
Subscription Name: 60 Day Self-Supported Red Hat OpenStack Platform Preview
Provides: Red Hat Ceph Storage MON
Red Hat Single Sign-On
Oracle Java (for RHEL Server)
Red Hat CloudForms
Red Hat Enterprise MRG Messaging
Red Hat Enterprise Linux Atomic Host
Red Hat Enterprise Linux High Availability (for RHEL Server)
Red Hat Enterprise Linux Load Balancer (for RHEL Server)
Red Hat Beta
Red Hat Enterprise Linux Fast Datapath Beta
Red Hat Ansible Engine
Red Hat Enterprise Linux Atomic Host Beta
Red Hat Software Collections Beta (for RHEL Server)
Red Hat Software Collections (for RHEL Server)
Red Hat Ceph Storage
Red Hat Enterprise Linux Server
Red Hat OpenStack Beta
Red Hat OpenStack
SKU: SER0406
Contract: 11636115
Pool ID: 8a85f98c6227bdec016228071e3e01eb
Provides Management: No
Available: 3
Suggested: 1
Service Level: Self-Support
Service Type: L1-L3
Subscription Type: Standard
Ends: 05/13/2018
System Type: Physical
위의 Pool_ID로 attach 시킨다.
sudo subscription-manager attach --pool=8a85f98c6227bdec016228071e3e01eb
연결되고 나면 필요한 repo만 enable 시킨다.
sudo subscription-manager repos --disable=*
sudo subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms --enable=rhel-ha-for-rhel-7-server-rpms --enable=rhel-7-server-openstack-12-rpms
결과는 아래와 같고
[stack@manager ~]$ sudo subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms --enable=rhel-ha-for-rhel-7-server-rpms --enable=rhel-7-server-openstack-12-rpms
Repository 'rhel-7-server-rpms' is enabled for this system.
Repository 'rhel-7-server-openstack-12-rpms' is enabled for this system.
Repository 'rhel-ha-for-rhel-7-server-rpms' is enabled for this system.
Repository 'rhel-7-server-extras-rpms' is enabled for this system.
Repository 'rhel-7-server-rh-common-rpms' is enabled for this system.
[stack@manager ~]$
정상적으로 등록되고 나면 업데이트 후 재부팅을 해준다.
sudo yum -y update
sudo reboot
클라이언트 설치
이제 트리플오 client를 설치하고 아래 ceph-ansible은 ceph 스토리지 서비스를 사용할거라면 선택해서 설치하면 된다.
sudo yum install -y python-tripleoclient
아래 ceph-ansible은 옵션.
sudo yum install -y ceph-ansible
설치 설정 파일
이제 설치를 위한 설정파일을 복사해준다.
cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf
설정파일에는 매우 다양한 옵션들이 존재하는데 이곳에서 자세하게 확인할 수 있고 대부분 설명은 설정파일 내의 주석으로도 확인 할 수 있다.
각자 환경이 다르겠지만 현재 네트워크 1은 VMnet1 에 연결되어 있고 VMnet1은 192.168.1.0/24 네트워크 대역으로 설정되어있다.
설정파일은 아래와 같이 설정했다.
[DEFAULT]
# 로컬 정보
local_interface = ens33
local_ip = 192.168.1.10/24
# 언더클라우드 호스트 정보
undercloud_public_host = 192.168.1.11
undercloud_admin_host = 192.168.1.12
network_gateway = 192.168.1.1
network_cidr = 192.168.1.0/24
dhcp_start = 192.168.1.20
dhcp_end = 192.168.1.29
masquerade_network = 192.168.1.0/24
# GUI 설정
enable_ui = true
generate_service_certificate = true
certificate_generation_ca = local
# 디스커버리 설정
enable_node_discovery = true
inspection_iprange = 192.168.1.30,192.168.1.39
enabled_drivers = pxe_ipmitool,pxe_drac,pxe_ilo,fake_pxe
discovery_default_driver = fake_pxe
# 디버그
undercloud_debug = true
[auth]
[auth] 부분은 패스워드 설정으로 입력하지 않을경우 자동으로 생성된 뒤 파일로 저장된다.
설치
이렇게 설정한 뒤 아래 명령으로 설치해주면 된다.
openstack undercloud install
8코어 16램 기준으로 약 15~20분 정도 걸린 것 같다.
설치 후에는 접속을 위한 stackrc 파일과 overcloud-password.conf 파일이 나오는데 생성된 패스워드가 들어있다.
exec su -l stack
위 명령어 입력후 패스워드를 쳐 주고 아래 명령을 실행하면 접속된다.
[stack@manager ~]$ source ~/stackrc
(undercloud) [stack@manager ~]$
디렉터 접속
이제 설치는 완료되었고 https://192.168.1.11과 같이 앞서 설정파일에서 local_ip 로 접속하면 UI를 확인할 수 있다.
username은 admin 그리고 password는 생성된 파일에서 찾을 수 있다.
(undercloud) [stack@manager ~]$ cat undercloud-passwords.conf | grep undercloud_admin_password
undercloud_admin_password=93b736f344c346f3b3407222e8492f9f54e157b0
(undercloud) [stack@manager ~]$