한명의 사용자는 여러개의 프로젝트에 참여할 수 있다.
오픈스택(팩스택) 설치하는 과정
사전 조건 : 안정적인 네트워크 속도, 충분한 CPU, RAM
CentOS를 ServerwithGUI 버전으로 설치 (NIC은 NAT로 구성)
설치 이후
# 오픈스택을 팩스택으로 설치하기 위해 오픈스택 패키지 저장소 등록
yum -y install centos-release-openstack-rocky
# 팩스택 설치
yum -y install -y openstack-packstack
aws는 이용자 입장이고, 오픈스택 → 설치 → 관리자 (클라우드 서비스에 대한 추가적인 개발, 변경)
설정 파일 확인 및 설치 시작
packstack --gen-answer-file=answer.txt
vi answer.txt
MariaDB는 y로 꼭 되어 있어야 한다.
glance : Image service
cinder : Block storage service
manila : NFS 서비스 같은 Shared File System
nova : compute service
neutron : networking service
horizon : Dashboard service
swift : object storage service
ceilometer : metric service (과금 관련해서 연결하면 됨)
heat : orchestration service
aws에서의 CloudFormation = stack = compose = terraform → IaC
heat 서비스는 aws와 연계가 가능
```bash
packstack --answer-file=answer.txt
```
DB에 root/test123이 등록되어 있음
keystone admin을 admin/test123으로, demo는 demo/demo로
이 정보들이 keystone에 등록이 되기 때문에 로그인 할 수 있었던 것
설치 후 확인하면 keystonerc_admin keystonerc_demo 이 생성되어 있다.
```bash
[root@localhost ~(logged)]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD='test123'
export OS_REGION_NAME=RegionOne
export OS_AUTH_URL=http://211.183.3.111:5000/v3
export PS1='[\u@\h \W(logged)]\$ '
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
```
```bash
[root@localhost ~(logged)]# source keystonerc_demo
[root@localhost ~(keystone_demo)]# source keystonerc_admin
[root@localhost ~(logged)]#
```
- admin으로 들어와서 user list를 확인
```bash
[root@localhost ~(logged)]# openstack user list
+----------------------------------+------------+
| ID | Name |
+----------------------------------+------------+
| 0af3f6db47a249fd92c9b4ee94648fc9 | heat_admin |
| 1b33418d637d407eb15c866ec3337977 | neutron |
| 26e2077d06454ec68b08722a8fc324f3 | heat-cfn |
| 27e9c8357bbe47ea89eb3a98a675b02e | demo |
| 327feb443acc4995b4dfd7081a67d4da | admin |
| 3dcac9f5697045f1abac33fd468a4b0a | glance |
| 463316affb0e432b9d82414e43180f05 | swift |
| 550fc5b578204594a84b0d91a1123943 | gnocchi |
| 5ec57fac6ba941c29abcb6b312bf9169 | placement |
| 9e3d487ef2d84bc78e875424c85b5013 | cinder |
| c0484b2bcc084174a19762161d5cdf1d | ceilometer |
| c0e0042432e4432bbb4def3ad72c6037 | aodh |
| dc38b779594f47aebf3a1b92263f0f38 | heat |
| fe9afbba44d24387b3d5bb278a309626 | nova |
+----------------------------------+------------+
```
- 네트워크 리스트 확인
```bash
[root@localhost ~(logged)]# openstack network list
+--------------------------------------+---------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+---------+--------------------------------------+
| 41a701f6-6292-4259-9742-2194edddf1f5 | public | 65176501-0f3f-4ad4-a850-d0a76bcab59f |
| bf48a80f-76e3-4f5d-94a4-5e3ea47f8166 | private | 1498916c-5995-4ee5-bad0-84607e1073f8 |
+--------------------------------------+---------+--------------------------------------+
```
- show : 상세정보 봄
```bash
[root@localhost ~(logged)]# openstack network show private
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2022-09-13T14:57:47Z |
| description | |
| dns_domain | None |
| id | bf48a80f-76e3-4f5d-94a4-5e3ea47f8166 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | None |
| is_vlan_transparent | None |
| mtu | 1450 |
| name | private |
| port_security_enabled | True |
| project_id | e4225d77f4fd4ad9a766e8d8f7e35a6e |
| provider:network_type | vxlan |
| provider:physical_network | None |
| provider:segmentation_id | 17 |
| qos_policy_id | None |
| revision_number | 3 |
| router:external | Internal |
| segments | None |
| shared | False |
| status | ACTIVE |
| subnets | 1498916c-5995-4ee5-bad0-84607e1073f8 |
| tags | |
| updated_at | 2022-09-13T14:57:51Z |
+---------------------------+--------------------------------------+
```
[root@localhost ~(logged)]# vi /etc/keystone/keystone.conf
2836번째 줄 expiration=3600초를 60*60*8=28800으로 변경
- 웹서비스도 TIMEOUT이 있다.
```bash
[root@localhost ~(logged)]# vi /etc/openstack-dashboard/local_settings
```
794째 줄의 SESSION_TIMEOUT = 28800으로 변경
이후 reboot
패스워드 생성시 랜덤한 패스워드를 자동으로 생성하고 싶다면?
```bash
[root@localhost ~]# openssl rand -hex 10
9633692e1dbb743a51ef
```