티스토리 뷰
[OpenStack Class] 제46강 CentOS에서 설치해 보는 오픈스택 6편 - Multi node 설치
naleejang 2015. 2. 27. 23:21안녕하세요~!!
왜 이리도 바쁜지 블로그에 글을 올릴 시간이 없네요~!! 좋은 것이겠죠~!! ^^ 오늘은 안되겠다 생각이 들어서 이렇게 밤 늦게라도 시간을 내어서 글을 올려볼까 합니다.
Keystone 설치
메시지 서비스를 설치했다면 이번에는 Keystone을 설치할 차례입니다. Keystone은 오픈스택 서비스의 인증을 담당하는 서비스로써 테넌트, 사용자, 롤, 서비스와 endpoint를 관리합니다.
1. yum install을 이용해서 openstack-keystone과 python-keystoneclient를 설치합니다.
# yum install openstack-keystone python-keystoneclient |
2. 레드햇이나 CentOS는 우분투와 다르게 환경설정을 해주는 openstack-config라는 명령어를 지원합니다. Openstack-config 명령을 이용해서 다음과 같이 데이터베이스 정보를 변경합니다.
# openstack-config --set /etc/keystone/keystone.conf \
database connection mysql://keystone:keystonedbpass@10.10.15.11/keystone |
3. 이번에는 mysql에 접속해서 keystone 데이터베이스와 사용자 계정 및 패스워드 그리고 접속권한을 함께 생성합니다.
# mysql -u root -p
mysql> CREATE DATABASE keystone;
Query OK, 1 row affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY ‘keystonedbpass';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'keystonedbpass';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye |
4. Keystone 계정 생성이 완료되면 keystone에서 필요한 테이블을 만들어야 합니다. 테이블 생성은 keystone-manage db_sync 명령을 이용합니다.
# su -s /bin/sh -c "keystone-manage db_sync" keystone |
5. keystone의 admin token을 설정하기 위해 openssl rand 명령어를 이용해서 생성된 임의의 문자열을 ADMIN_TOKEN에 저장합니다. 그리고 ADMIN_TOKEN에 저장된 문자열은 openstack_config 명령어로 /etc/keystone/keystone.conf 파일의 admin_token에 설정합니다.
|
6. Keystone은 기본적으로 PKI 토큰을 사용합니다. 그러므로 keystone-manage를 이용해서 PKI Key와 인증서를 생성하고, 생성된 /etc/keystone/ssl은 아무나 접근할 수 없도록 액세스를 제한합니다.
# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
Generating RSA private key, 2048 bit long modulus
......................................................................................................+++
.............................................................+++
e is 65537 (0x10001)
Generating RSA private key, 2048 bit long modulus
................+++
.............+++
e is 65537 (0x10001)
Using configuration from /etc/keystone/ssl/certs/openssl.conf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'US'
stateOrProvinceName :ASN.1 12:'Unset'
localityName :ASN.1 12:'Unset'
organizationName :ASN.1 12:'Unset'
commonName :ASN.1 12:'www.example.com'
Certificate is to be certified until Jun 12 17:10:09 2024 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
# chown -R keystone:keystone /etc/keystone/ssl
# chmod -R o-rwx /etc/keystone/ssl |
7. SSL PKI Key 설정이 완료되면 keystone 서비스를 재시작하고, 부팅 시 서비스가 자동 실행될 수 있도록 설정합니다.
# service openstack-keystone start
Starting keystone: [ OK ]
# chkconfig openstack-keystone on |
keystone 사용자, 테넌트, 롤 그리고 endpoint 생성
keystone 설치가 완료되면 keystone를 접근하기 위한 사용자, 테넌트, 롤과 서비스, endpoint를 생성해야 합니다.
1. 우선 OS_SERVICE_TOKEN과 OS_SERVICE_ENDPOINT를 export합니다.
# export OS_SERVICE_TOKEN=$ADMIN_TOKEN
# export OS_SERVICE_ENDPOINT=http://10.10.15.11:35357/v2.0 |
2. keystone user-create 명령어를 이용해서 다음과 같이 admin 사용자 계정, 패스워드, 이메일을 입력하고 admin 계정을 생성합니다.
# keystone user-create --name=admin --pass=adminpass --email=admin@email.com +----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | admin@email.com |
| enabled | True |
| id | 7bc1bda9d2444b9c92554ff9e0b71e22 |
| name | admin |
| username | admin |
+----------+----------------------------------+ |
3. admin 롤을 생성합니다.
# keystone role-create --name=admin +----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| id | 02ff77d31ec841b3914db4c3daca4f1c |
| name | admin |
+----------+----------------------------------+ |
4. 이번에는 admin 테넌트를 생성합니다.
# keystone tenant-create --name=admin --description="Admin Tenant" +-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Admin Tenant |
| enabled | True |
| id | dbd8df87e5c34536844d915b555061b6 |
| name | admin |
+-------------+----------------------------------+ |
5. Admin 테넌트와 member 테넌트에 admin 사용자 계정과 롤을 추가합니다.
|
6. 이번에는 demo 계정을 다음과 같이 생성합니다.
# keystone user-create --name=demo --pass=demopass --email=demo@email.com +----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | demo@email.com |
| enabled | True |
| id | 129a943bc94b43379a794ae011a87fe9 |
| name | demo |
| username | demo |
+----------+----------------------------------+ |
7. Demo 테넌트도 생성합니다.
# keystone tenant-create --name=demo --description="Demo Tenant" +-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Demo Tenant |
| enabled | True |
| id | afa084dced1e4d70b479dac82ea659ac |
| name | demo |
+-------------+----------------------------------+ |
8. 생성한 Demo 계정을 Demo 테넌트에 추가하고 롤은 member를 설정합니다.
# keystone user-role-add --user=demo --role=_member_ --tenant=demo |
9. 이번에는 오픈스택 서비스를 위한 서비스 테넌트를 다음과 같이 생성합니다.
# keystone tenant-create --name=service --description="Service Tenant" +-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Service Tenant |
| enabled | True |
| id | 31303ac56ece4fbc85bb16074adfc9cb |
| name | service |
+-------------+----------------------------------+ |
10. 서비스 테넌트가 생성되면 이번에는 keystone 서비스를 다음과 같이 생성합니다.
# keystone service-create --name=keystone --type=identity \
--description="OpenStack Identity" +-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Identity |
| enabled | True |
| id | 4fdf89fb665d44f7bf0dd053e8dfadef |
| name | keystone |
| type | identity |
+-------------+----------------------------------+ |
11. 생성된 Keystone 서비스는 사용자나 다른 서비스가 접속할 수 있도록 Rest API 주소를 생성합니다. 필요한 파라메터는 생성한 서비스의 ID, 외부 접속 Public URL, 내부 접속 Internal URL, 관리자가 접속할 Admin URL로 이루어집니다.
# keystone endpoint-create \
--service-id=4fdf89fb665d44f7bf0dd053e8dfadef \
--publicurl=http://10.10.15.11:5000/v2.0 \
--internalurl=http://10.10.15.11:5000/v2.0 \
--adminurl=http://10.10.15.11:35357/v2.0 +-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://10.10.15.11:35357/v2.0 |
| id | 27fd1214abd24430b18045b835885f6b |
| internalurl | http://10.10.15.11:5000/v2.0 |
| publicurl | http://10.10.15.11:5000/v2.0 |
| region | regionOne |
| service_id | 4fdf89fb665d44f7bf0dd053e8dfadef |
+-------------+----------------------------------+ |
12. endpoint URL 생성이 완료되면 admin 계정을 생성할 때 추가했던 OS_SERVICE_TOKEN과 OS_SERVICE_ENDPOINT를 환경변수에서 해제합니다.
# unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT |
13. 이제 keystone 서비스가 정상적으로 실행되는지 테스트합니다. 이때 환경변수를 쉽게 편집하기 위해 vi 에디터로 파일에 저장해두면 좋습니다.
# vi admin-openrc.sh
export OS_USERNAME=admin
export OS_PASSWORD=adminpass
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://10.10.15.11:35357/v2.0 |
14. Vi 에디터로 만든 환경변수 설정 파일은 다음과 같이 source로 export할 수 있습니다.
# source admin-openrc.sh |
15. 이제 파라메터 없이 바로 token을 얻어와 보겠습니다.
# keystone token-get +-----------+----------------------------------------------------------------------+
| Property | Value |
+-----------+----------------------------------------------------------------------+
| expires | 2014-06-15T19:00:15Z |
| id | MIIE7QYJKoZIhvcNAQcCoIIE3jCCBNoCAQExCTAHBgUrDgMCGjCCA0MGCSqGSIb3DQEHAa
CCAzQEggMweyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxNC0wNS0yN1QwODoxMzo0Mi
4xNTA0MDUiLCAiZXhwaXJlcyI6ICIyMDE0LTA1LTI3VDA5OjEzOjQyWiIsICJpZCI6ICJwbGFjZWhvbGRlci
IsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogIkFkbWluIFRlbmFudCIsICJlbmFibGVkIjogdHJ1ZSwgIm
lkIjogIjcxNzVlZmQ0ZDIyZTQxYWE4OTAzYjBjYWI0NWZmYWE2IiwgIm5hbWUiOiAiYWRtaW4ifX0sICJzZX
J2aWNlQ2F0YWxvZyI6IFt7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC4xMC4xNS4xMT
ozNTM1Ny92Mi4wIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzEwLj
EwLjE1LjExOjUwMDAvdjIuMCIsICJpZCI6ICIyNGUzMmJkYzBmYTg0NzU1ODk4Y2M5ZWIyZjg5ZTg4NiIsIC
JwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjEwLjE1LjExOjUwMDAvdjIuMCJ9XSwgImVuZHBvaW50c19saW5rcy
I6IFtdLCAidHlwZSI6ICJpZGVudGl0eSIsICJuYW1lIjogImtleXN0b25lIn1dLCAidXNlciI6IHsidXNlcm
5hbWUiOiAiYWRtaW4iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogIjRkZjcwZWJhYWI2YjQxNzg4NzE0MT
c3MmRiZDJhY2EwIiwgInJvbGVzIjogW3sibmFtZSI6ICJtZW1iZXIifSwgeyJuYW1lIjogImFkbWluIn1dLC
AibmFtZSI6ICJhZG1pbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyIzZWVhMm
IwODMyZWM0OTlkOTYyZTRjZjE4NzJlNzJiOSIsICI4MmI0OWU1NjE5ZjU0MzU3YmY1ZjYzN2M1MWRjZmUyZC
JdfX19MYIBgTCCAX0CAQEwXDBXMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVW5zZXQxDjAMBgNVBAcMBVVuc2
V0MQ4wDAYDVQQKDAVVbnNldDEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tAgEBMAcGBSsOAwIaMA0GCSqGSI
b3DQEBAQUABIIBAMzeUbt-hokRop8qGVRN7L1BMHpDkh7UaUAK62ThFSV3ydu2zXR8tMGZcSS3lTxIL-0mrt
oun44p2lX9x+9OPNldPKlC39cgyCOnyFqb5kkdteXuD8JJiFq0klyNPzRtjKr6Vxxb4C3Xjf9tLJnzCuZKYB
I9-F+oad0EOoaolLG-RNmD56AdGq3Qnly8MPi3EWeCIbHqTvXrVwBgOYUSYdUk32qEacw7atjxB1NdRzTpsm
m7I261iEKhFTvBfCwQf6PH0AeNHSwpDIgQtJ6f6dlKJAKyKV1puFxUytymmPoLc3t9-IGB-rRDsOUnESGO3E
i11oQrv+FLGZ+62hGORjI= |
| tenant_id | 7175efd4d22e41aa8903b0cab45ffaa6 |
| user_id | 4df70ebaab6b417887141772dbd2aca0 |
+-----------+----------------------------------------------------------------------+ |
16. 사용자 목록도 확인해 봅니다.
# keystone user-list +----------------------------------+-------+---------+-----------------+
| id | name | enabled | email |
+----------------------------------+-------+---------+-----------------+
| 7bc1bda9d2444b9c92554ff9e0b71e22 | admin | True | admin@email.com |
| 129a943bc94b43379a794ae011a87fe9 | demo | True | demo@email.com |
+----------------------------------+-------+---------+-----------------+ |
17. 사용자가 가지고 있는 롤 목록도 확인해 봅니다.
# keystone user-role-list +----------------------------------+-------+----------------------------------+----------------------------------+
| id | name | user_id | tenant_id |
+----------------------------------+-------+----------------------------------+----------------------------------+
| 02ff77d31ec841b3914db4c3daca4f1c | admin | 7bc1bda9d2444b9c92554ff9e0b71e22 | dbd8df87e5c34536844d915b555061b6 |
+----------------------------------+-------+----------------------------------+----------------------------------+ |
이렇게 해서 Keystone을 설치해 보았습니다. 다음번 포스팅에서는 Glance와 Nova를 설치해 보도록 하겠습니다.
'OpenStack Class' 카테고리의 다른 글
[OpenStack Class] 제48강 CentOS에서 설치해 보는 오픈스택 8편 - Multi node 설치 (7) | 2015.03.10 |
---|---|
[OpenStack Class] 제47강 CentOS에서 설치해 보는 오픈스택 7편 - Multi node 설치 (12) | 2015.02.27 |
[OpenStack Class] 제45강 CentOS에서 설치해 보는 오픈스택 5편 - Multi node 설치 (9) | 2015.02.16 |
[OpenStack Class] 제44강 CentOS에서 설치해 보는 오픈스택 4편 - Multi node 설치 (4) | 2015.02.12 |
[OpenStack Class] 제43강 CentOS에서 설치해 보는 오픈스택 3편 - All-in-One 설치 (15) | 2015.02.10 |
- Total
- Today
- Yesterday
- openstack
- Swift
- 후기
- 레드햇
- 파이썬
- cpu
- 명령어
- command
- 세미나
- Java
- neutron
- 네트워크
- 하둡
- OVN
- 설치
- sdn
- 우분투
- Network
- 오픈쉬프트
- 뉴트론
- 김미경
- 클라우드
- ubuntu
- Redhat
- 컨테이너
- 오픈스택
- NOVA
- Python
- install
- 쿠버네티스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |