일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
- pvcreate
- HTTPD
- docker
- chmod
- 랜카드인식불량
- permission
- M365필터
- docker network
- yum
- newbingai
- ansible
- swapon
- tar
- lvcreate
- journalctl
- nmcli
- 리다이렉션
- firewalld
- docker image
- Kubernetes
- mount
- chatGPT
- ssh
- 프로세스
- MSBing
- vagrant kubernetes
- vgcreate
- 날짜변경
- 엑셀파일명변경
- 같은폴더
- Today
- Total
becool
20210709 (금) 설치 후 기초 #4 본문
볼륨 생성
(openstack) volume create --size 1 demo_vol
(openstack) server add volume demo_vm demo_vol → 인스턴스에 생성된 볼륨 연결
(openstack) volume list → 연결 확인
+--------------------------------------+----------+--------+------+----------------------------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+----------+--------+------+----------------------------------+
| 6350a73b-12c1-4f64-a93b-e34db1fe5067 | demo_vol | in-use | 1 | Attached to demo_vm on /dev/vdb |
+--------------------------------------+----------+--------+------+----------------------------------+
(openstack)
프로젝트 생성
(openstack) project create demo_pro
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | |
| domain_id | default |
| enabled | True |
| id | 1d76156d6fcd41c7801086ff8491812a |
| is_domain | False |
| name | demo_pro |
| parent_id | default |
| tags | [] |
+-------------+----------------------------------+
사용자 생성
(openstack) user create --project demo_pro --password 1234 demo_user01
→ 1234 로 패스워드 지정
(openstack) user create --project demo_pro --password-prompt demo_user01
User Password:
→ 대화창을 통해 패스워드 입력 생성
역할 생성
(openstack) role list
(openstack) role add --project demo_pro --user testuser _member_ → test유저를 demo_pro프로젝트에 _member_ 역할로 할당
삭제
(openstack) user delete user01
(openstack) user delete testuser
(openstack) project list
+----------------------------------+-----------+
| ID | Name |
+----------------------------------+-----------+
| 1d76156d6fcd41c7801086ff8491812a | demo_pro |
| 2322e7c1cfe7492c8b190399947f7d17 | services |
| db34cac2b137433db130d3be9d7dd96f | project01 |
| f21117852a8c4b8282852213e79b96c6 | admin |
+----------------------------------+-----------+
(openstack) project delete demo_pro
(openstack) server list -c Name -c Networks --all-project
+---------+-----------------------------------+
| Name | Networks |
+---------+-----------------------------------+
| demo_vm | 1netnet=192.168.100.11, 10.0.2.32 |
| 1vm | 1netnet=192.168.100.12, 10.0.2.30 |
+---------+-----------------------------------+
(openstack) server delete demo_vm
(openstack) server delete 1vm
(openstack) router list -c Name -c Status
+------+--------+
| Name | Status |
+------+--------+
| 1rt | ACTIVE |
+------+--------+
(openstack) router remove subnet 1rt 1pubsub
(openstack) router remove subnet 1rt 1netsub
(openstack) router delete 1rt
→ 라우터 삭제시, 서브넷 제거 후 라우터 삭제
(openstack) network delete 1pubnet
(openstack) network delete 1netnet
→ 라우터 삭제 후 (내/외부)네트워크 삭제
(openstack) security group list
+--------------------------------------+----------+------------------------+----------------------------------+
| ID | Name | Description | Project |
+--------------------------------------+----------+------------------------+----------------------------------+
| 225d008d-3cec-4659-9566-11f1b0a90cc1 | default | Default security group | 2322e7c1cfe7492c8b190399947f7d17 |
| 3172cc2f-cb99-4036-8301-5c8d5efeeaf9 | ssh_demo | | 39f938aa2d184996bd6164e74865b72f |
| 5a186f6c-0ba9-4f95-9b95-70d7439abb9f | demo_sg | demo_sg | f21117852a8c4b8282852213e79b96c6 |
| 64b8bc0a-2c6f-4aee-99a2-710884871c23 | default | Default security group | f21117852a8c4b8282852213e79b96c6 |
| bb2c708f-d3e8-4571-aecc-49d5042c9a2a | default | Default security group | 39f938aa2d184996bd6164e74865b72f |
| bbd2a1a0-057a-4dbc-8e8c-eb6108981c4c | default | Default security group | db34cac2b137433db130d3be9d7dd96f |
| f8654ce2-9e68-4aac-9e05-9dc2a2286e0b | default | Default security group | |
+--------------------------------------+----------+------------------------+----------------------------------+
(openstack) security group delete demo_sg
(openstack) security group delete ssh_demo
(openstack) keypair delete demo_key
(openstack) volume delete demo_vol
(openstack) flavor delete demo_flavor
(openstack) image delete demo_image
-----------------------------------삭제완료-----------------------------------
https://www.redhat.com/ko/topics/openstack
※ 오픈스택 배포 방식 (설치 방식) 1) 직접 하나하나 설치 : 공부/경험용으로만 좋음 2) packstack / devstack : 별도의 배포도구를 사용한 것으로 대화형/파일 등을 이용하여 편리 → 확장성 및 지원이 나쁘므로 실제환경에 부적합 → Flat 구성 ( controller / compute / network / storage 노드 ) 3) Triple O : openstack on openstack → Under Cloud / Over Cloud U : 물리적인 시스템(노드)들을 관리해주는 시스템(플랫폼) →director 라는 이름의 allinone 시스템으로 구성 O : 사용자들에게 서비스를 제공해 줄 물리적인 시스템(노드) 들 배포 관리가 쉬움 구성이 복잡, 물리적인 시스템이 더 많이 필요. 4) Kolla : 컨테이너 기술(docker)을 이용하는 방식 오픈스택 관련 서비스들이 컨테이너로 실행하는 방식 안정성을 확보 5) Ansible / puppet … : 배포 도구, ansible을 많이 사용 |
Keystone 인증 서비스
사용자가 작업 실행 시 권한을 확인해주고 인증해주는 서비스
서비스의 카탈로그를 관리 ( 서비스 endpoint )
프로젝트, 사용자, 역할에 대한 설정
Catalog : 서비스 엔드포인트의 집합
endpoint : API 요청 시 사용할 주소
1) LDAP 서버에서 사용자 생성
2) 오픈스택에서 사용자 생성
3) 오픈스택에서 역할 설정
도메인? : Keystone API v3 에서 지원하는 기능
v2까지는 default 도메인만 사용
모든 리소스들의 최상위 개념 (프로젝트와 사용자들의 집합)
독립적인 가상화 환경 (데이터 센터)
프로젝트 : v2 까지는 테넌트라는 이름으로 사용됨
사용자 별로 역할을 할당해서 접근제어에 사용되는 단위
각 리소스들의 집합 (cpu/ram ... instance / volume ... )
프로젝트 별로 리소스의 할당량을 지정
사용자 : 로그인 및 인증 대상
그룹 : 사용자들의 집합
역할 : 사용자/그룹 에 대한 권한을 설정
토큰 : 사용자의 권한을 확인해주는 도구 (권한의 집합)
---
[root@controller ~]# grep -i mariadb_pw answers.txt → answers 에서 mariadb_pw 검색 -i :대소문자 구분없는 옵션
CONFIG_MARIADB_PW=533914ad02a946b9
[root@controller ~]# mysql -u root -p
Enter password:
[root@controller ~]# yum list installed |grep centos-release
centos-release-openstack-queens.noarch → queens 버전
[root@controller ~]# yum provides /etc/keystone/
[root@controller ~]# ls -l /etc/keystone/fernet-keys/
total 8
-rw-------. 1 keystone keystone 44 Jun 27 2020 0
-rw-------. 1 keystone keystone 44 Jun 27 2020 1
[root@controller ~]# grep -v -e '^#' -e '^$' /etc/keystone/keystone.conf → 주석이 없는 열 검색
[token]
expiration=3600
provider=fernet → 토큰 형식
driver=sql → db 에서 구동
revoke_by_id=True
[tokenless_auth]
[trust]
[unified_limit]
[ssl]
enable=False
P155 참고
[root@controller ~(keystone_admin)]# openstack token revoke^C
[root@controller ~(keystone_admin)]# openstack token revoke TOKEN^C
[root@controller ~(keystone_admin)]# openstack domain create
usage: openstack domain create [-h] [-f {json,shell,table,value,yaml}]
[-c COLUMN] [--max-width <integer>]
[--fit-width] [--print-empty] [--noindent]
[--prefix PREFIX] [--description <description>]
[--enable | --disable] [--or-show]
<domain-name>
[root@controller ~(keystone_admin)]# openstack domain create test_domain
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | |
| enabled | True |
| id | 9d6262b6c3a54818a8d27d5fb4edee53 |
| name | test_domain |
| tags | [] |
+-------------+----------------------------------+
[root@controller ~(keystone_admin)]# openstack domain list
+----------------------------------+-------------+---------+--------------------+
| ID | Name | Enabled | Description |
+----------------------------------+-------------+---------+--------------------+
| 9d6262b6c3a54818a8d27d5fb4edee53 | test_domain | True | |
| b4821699d48e4e67b9cbac7062e04360 | heat | True | |
| default | Default | True | The default domain |
+----------------------------------+-------------+---------+--------------------+
[root@controller ~(keystone_admin)]# openstack project create --domain test_domain test_project
→ 프로젝트 생성시 속할 도메인을 지정해줄 수 있음, 각 도메인은 독립적이므로 각각의 도메인에 중복되는 이름을 각각 생성할 수 있음.
[root@controller ~(keystone_admin)]# openstack project list --demain test_domain
→ 형태로 특정 도메인에 속한 프로젝트만을 볼 수 있음
P158 참고
(openstack) project create --domain test_domain test_project
(openstack) role add
usage: role add [-h] [--domain <domain> | --project <project>] → 도메인
[--user <user> | --group <group>]
[--group-domain <group-domain>] → 그룹 도메인
[--project-domain <project-domain>] → 프로젝트 도메인
[--user-domain <user-domain>] [--inherited] → 유저 도메인
[--role-domain <role-domain>] → 역할 도메인
(openstack) role create user
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | None |
| id | a72be6b21472423aa29d6193e9d7abef |
| name | user |
+-----------+----------------------------------+
(openstack) role list
+----------------------------------+------------------+
| ID | Name |
+----------------------------------+------------------+
| 4e74e6e7c1634e2ca6240f8973f9811f | ResellerAdmin |
| 828320ad3801437daaf1de5aeb00c8c5 | heat_stack_user |
| 9dc9ac888e824df98498234f4276eb6e | heat_stack_owner |
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| a72be6b21472423aa29d6193e9d7abef | user |
| c14dc0dea02a4aeebf02ccb48b13b920 | SwiftOperator |
| e475bb6f095d47bdaa9ce2b15e08a4f9 | admin |
+----------------------------------+------------------+
(openstack) role add --project test_project --user test_user _member_
(openstack) role assignment list --fit-width
(openstack) role assignment list --names
+------------------+-----------------------+-----------------+--------------------------+--------+-----------+
| Role | User | Group | Project | Domain | Inherited |
+------------------+-----------------------+-----------------+--------------------------+--------+-----------+
| _member_ | test_user@test_domain | | test_project@test_domain | | False |
| admin | glance@Default | | services@Default | | False |
| admin | heat@Default | | services@Default | | False |
| admin | swift@Default | | services@Default | | False |
| admin | neutron@Default | | services@Default | | False |
| admin | heat-cfn@Default | | services@Default | | False |
| admin | aodh@Default | | services@Default | | False |
| admin | nova@Default | | services@Default | | False |
| ResellerAdmin | ceilometer@Default | | services@Default | | False |
| admin | ceilometer@Default | | services@Default | | False |
| admin | cinder@Default | | services@Default | | False |
| admin | gnocchi@Default | | services@Default | | False |
| heat_stack_owner | admin@Default | | admin@Default | | False |
| _member_ | admin@Default | | admin@Default | | False |
| admin | admin@Default | | admin@Default | | False |
| admin | placement@Default | | services@Default | | False |
| _member_ | | group01@Default | admin@Default | | False |
| admin | heat_admin@heat | | | heat | False |
| admin | admin@Default | | | | False |
+------------------+-----------------------+-----------------+--------------------------+--------+-----------+
※ inherited ? 패런츠 프로젝트, 차일드 프로젝트 등으로 계층적구조로 사용할때 설정하는 영역
상위 프로젝트 리소스 / 하위 프로젝트 리소스 할당 : 현재 각각 설정했을때 인스턴스 개수가 초과될 때 오류가 발생하므로 미리 염두에 두고 작업해야함.
(openstack) quota set (프로젝트 할당량)
usage: quota set [-h] [--class] [--properties <properties>]
[--server-groups <server-groups>] [--ram <ram>] → 서버 그룹
[--key-pairs <key-pairs>] [--instances <instances>] → 인스턴스 갯수
[--fixed-ips <fixed-ips>]
[--injected-file-size <injected-file-size>]
[--server-group-members <server-group-members>] → 서버 그룹 멤버
[--injected-files <injected-files>] [--cores <cores>]
[--injected-path-size <injected-path-size>]
[--per-volume-gigabytes <per-volume-gigabytes>] → 볼륨마다 사이즈
[--gigabytes <gigabytes>] → 전체 프로젝트 누적 볼륨 사이즈 할당
[--backup-gigabytes <backup-gigabytes>]
[--snapshots <snapshots>] [--volumes <volumes>]
[--backups <backups>] [--l7policies <l7policies>]
[--subnetpools <subnetpools>] [--vips <vips>]
[--ports <ports>] [--subnets <subnets>]
[--networks <networks>] [--floating-ips <floating-ips>]
[--secgroup-rules <secgroup-rules>]
[--health-monitors <health-monitors>] → 로드밸런서 헬스모니터 할당량
[--secgroups <secgroups>] [--routers <routers>]
[--rbac-policies <rbac-policies>]
[--volume-type <volume-type>]
<project/class>
대시보드 GUI 환경에서 인증 > 프로젝트 > 프로젝트 편집> 할당량 과 동일한 내용
대시보드에 없는 메뉴 --server-groups 서버그룹 : 인스턴스를 만들때에 서버위치 그룹 --server-group-members 서버그룹멤버 : 각각의 그룹에 몇개의 멤버를 소속 시킬 수 있는지 |
1 quota_test 이름의 프로젝트 생성
2 할당량 조정해서 생성여부 확인
1) vcpus 1 instance 1 설정 후 인스턴스 생성 실습
flavor 에서 cpu 1로 되어있는 것을 이용해 인스턴스 생성이 후 하나 더 만들어 보기.
인스턴스 삭제 후 cpu 2로 인스턴스 생성 시도
2) keypair volume network 개수 제한 후 생성 해보기
3) volume 사이즈를 3G 제한 후 생성
▶ admin 사용자로 할것.
1 사용자를 생성 newuser 에게 _member_ 역할을 할당
2 newuser를 이용하여 리소스 생성 확인 (명령어로 파일 만들기)
(openstack) project create quota_test
(openstack) quota set --cores 1 --instance 1 quota_test
(openstack) user create --project quota_test --password-prompt newuser
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| default_project_id | 8542c503ef2a41e0a61bd677c628df47 |
| domain_id | default |
| enabled | True |
| id | 3366cdd1090a4c35aabcc5b5833d86ec |
| name | newuser |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
(openstack) role add --project quota_test --user newuser _member_ → 멤버에게 newuser를 추가하고, 프로젝트를 quota_test 할당량을 적용
[root@controller ~(newuser)]# cat keystonerc_admin > newuserrc → newuserrc 리소스파일을 생성
[root@controller ~(keystone_admin)]# vim newuserrc
unset OS_SERVICE_TOKEN
export OS_USERNAME=newuser
export OS_PASSWORD='PASSWORD'
export OS_REGION_NAME=RegionOne
export OS_AUTH_URL=http://10.0.2.10:5000/v3
export PS1='[\u@\h \W(newuser)]\$ '
export OS_PROJECT_NAME=newuser
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
[root@controller ~(newuser)]# openstack server create --image img1 --flavor m1.medium 2server → 인스턴스 생성
Quota exceeded for cores: Requested 2, but already used 0 of 1 cores (HTTP 403) (Request-ID: req-0ad4d27e-b697-4404-99dc-6ad01e1eb4df)
→ 코어 갯수 때문에 인스턴스 생성 불가 (할당량 - quota_test 에 의해)
[root@controller ~(newuser)]# openstack user show
The request you have made requires authentication. (HTTP 401) (Request-ID: req-71292de0-64d8-4556-bcbc-3baa51ea6c98) → 어드민 사용자가 아니므로 user show 명령어 권한이 없음
[root@controller ~(newuser)]# source keystonerc_admin → 어드민사용자로 전환 후
[root@controller ~(keystone_admin)]# openstack user show newuser → newuser 정보 확인
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| default_project_id | 8542c503ef2a41e0a61bd677c628df47 |
| domain_id | default |
| enabled | True |
| id | 3366cdd1090a4c35aabcc5b5833d86ec |
| name | newuser |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
(openstack) quota set --key-pairs 10 --volumes 2 --networks 2 --per-volume-gigabytes 3 quota_test
(openstack) flavor create --vcpus 1 --ram 1024 --disk 2 quotaflavor → --project 옵션 없음
[root@controller ~(keystone_admin)]# openstack image create --disk-format qcow2 --file cirros-0.5.2-x86_64-disk.img
--project quota_test 1qimg → --project 옵션 있음
어드민으로 생성 후 newuser로 되는지 확인
'openstack' 카테고리의 다른 글
20210713 (화) 리눅스 브릿지 (0) | 2021.07.13 |
---|---|
20210712 (월) 서비스 개념 설명 (0) | 2021.07.12 |
20210708(목) 설치 후 기초#3 (0) | 2021.07.08 |
20210707 (수) 설치 후 기초#2 (0) | 2021.07.07 |
20210706 (화) 설치 후 기초#1 (0) | 2021.07.06 |