오늘 회사에서 드디어 기다리고 기다리던 노트북을 받았습니다.


노트북에는 당연히 RED HAT 7 데스크탑이 설치되어 있구요~!! 그런데, Root 패스워드를 몰라서 한참 삽질을 하다가, 다른 분의 도움으로 Root 패스워드를 설정했습니다. 잊어버리지 말자!! 적어놔야죠!! 그래서, 한번 적어보았습니다.


그래서 오늘 포스팅 내용은 "RED HAT 7에서 ROOT 패스워드를 잊어버렸을경우 패스워드 재설정하는 방법"입니다.


1. 시스템을 재부팅합니다.


2. 재부팅되면서 아래와 같은 GRUB 메뉴가 나오면 키보드에서 알파벳 'e'를 클릭합니다. 

RHEL 7  - Reset root password
RHEL 7 – Reset root password


3. 그러면 아래와 같이 설정창이 나옵니다. 이때 "linux16"이 시작되는 라인 끝에 "rd.break console=tty1" 를 입력합니다. 그리고, Ctrl + x 버튼을 클릭하여 시스템을 재부팅합니다.

Edit the grub menu
Edit the grub menu

4. 재부팅이 되면서 아래와 같이 “switch-root” 라는 프롬프트를 확인할 수 있습니다.

Emergency mode RHEL 7
Emergency mode RHEL 7

5. "rd.break"를 사용하여 시스템을 부팅했으면 /sysroot의 read-only 모드를 read/write 모드로 아래와 같이 전환합니다.

switch_root:/# mount -o remonut,rw /sysroot 


6. 전환이 완료되면 이번에는 chroot 명령어를 이용하여 /sysroot로 변경합니다.

switch_root:/# chroot /sysroot 


7. 이제 root 패스워드를 아래와 같이 설정합니다. 

sh-4.2# passwd root

New password: ************

Retype new password: ************

passwd:all authentication tokens updated successfully. 


8. RHEL7 같은 경우에는 기본적으로 SELinux가 활성되어 있습니다. 그러므로 ".autorelabel" 이라는 이름을 생성해야 합니다.

sh-4.2# touch /.autorelabel 


9. 생성이 완료되면 커맨드 창이 "exit" 명령어를 이용하여 빠져나옵니다.

sh-4.2# exit 


10 . 시스템이 재부팅되면서 SELinux가 relabel 된후 다시 재부팅이 됩니다.

11. 시스템이 다시 재부팅되면, 이제 새로운 root 패스워드로 로그인을 할 수 있습니다. 


참조 URL : http://www.unixarena.com/2015/04/how-to-reset-the-root-password-on-rhel-7.html

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
블로그 이미지

naleejang

내가 알고 있는 것들, 살아가면서 느낀것들을 표현해 보고 싶다.

안녕하세요~!! 

정말 오랜만에 블로그에 글을 올려봅니다.

오늘은 개정판 내용 중 어떤 내용을 올릴까 하고 고민을 하다가 설치편은 어떤 버전을 설치하느냐에 따라 조금씩 방법도 다르고, 공식 문서를 활용하면 쉽게 설치 방법을 확인할 수 있기 때문에 이번 시간부터는 오픈스택을 어떻게 사용하면 되는지에 대한 내용을 다루고자 합니다.


프로젝트 및 사용자 생성하기

개발 부서에서 운영 부서로 오픈스택을 요청하는 경우는 신규 개발 프로젝트를 시작해야 하거나 연구 프로젝트가 시작되었을 경우일 것입니다. 운영 부서에서 인스턴스를 일일이 생성해서 개발 부서에 넘겨주기에는 일이 많고 번거롭습니다. 그래서 운영 부서에서는 오픈스택에 프로젝트를 생성하고 사용자를 추가해 개발 부서에 해당 계정 정보를 주면 개발 부서에서 직접 인스턴스를 생성할 수 있습니다. 운영 부서가 가장 먼저 해야 하는 일인 프로젝트 및 사용자 생성을 해 보겠습니다.

 

프로젝트 생성하기

프로젝트는 쉽게 말해 부서명이나 그룹명이라고 볼 수 있습니다. 요청이 들어온 개발 부서명은 개발 1팀이고, 이를 영문으로 쉽게 표기해 Developer 1이라는 프로젝트를 생성해 보겠습니다.

 

1.      가장 먼저 대시보드에 접속합니다. 대시보드에 접속할 때는 관리자 권한인 admin으로 로그인합니다. 그러면 다음과 같은 프로젝트 페이지를 가장 먼저 볼 수 있습니다.


2.      [+ 프로젝트 생성]을 클릭합니다. 그러면 다음과 같이 프로젝트 생성 팝업창이 뜨는데, 생성할 프로젝트 이름과 설명을 입력합니다. 여기서는 [이름]에 개발 1팀의 영문명인 developer1, [설명]에는 Developer 1 Team이라고 입력했습니다. 이름과 설명은 상황에 맞게 해당 값으로 입력하면 됩니다. 


3.     다른 탭도 함께 살펴보겠습니다. [프로젝트 멤버] 탭에서는 사용자 목록을 확인할 수 있습니다. 프로젝트를 생성할 때 기존에 등록된 사용자를 추가할 경우라면 모든 사용자 목록에서 해당 사용자를 프로젝트 멤버로 추가할 수 있습니다. 하지만 여기서는 아직 사용자를 생성하지 않았으므로 그냥 넘어 갑니다.


4.      [프로젝트 그룹] 탭을 살펴보겠습니다. 규모가 작은 프로젝트라면 프로젝트가 하나뿐이지만, 프로젝트 규모가 크다면 작은 단위의 프로젝트가 모여 큰 프로젝트가 될 수 있습니다. 또한, 관련 있는 프로젝트를 모아둘 수도 있습니다. 이때 사용하는 것이 바로 프로젝트 그룹입니다. 프로젝트 그룹 역시 생성 전이므로 그냥 넘어갑니다.


5.      [Quota] 탭을 살펴보겠습니다. 여기서는 생성하고자 하는 프로젝트에서 사용할 수 있는 가상 자원을 설정할 수 있습니다. 이때 하드웨어 자원에 맞게 할당하지 않으면 인스턴스 생성 시 자원이 없어 실패할 수도 있습니다. 프로젝트 정보를 입력하고 멤버, 그룹, Quota 정보를 확인했으면 [프로젝트 생성]을 클릭합니다.

 

6.      앞에서 설정한 프로젝트명으로 프로젝트가 생성된 것을 확인할 수 있습니다.

 

7.      이번에는 생성한 프로젝트 정보를 확인해 보겠습니다. 프로젝트 목록에서 앞에서 생성한 developer1을 클릭합니다. 그러면 다음과 같이 developer1 프로젝트의 상세 정보를 확인할 수 있으며, 오른쪽 콤보박스에서 프로젝트에 해당하는 작업들을 할 수 있습니다.


8.      [프로젝트 편집]을 선택하면 다음과 같은 프로젝트 편집창이 뜹니다.

 

사용자 생성하기

프로젝트를 생성하면 사용자를 생성해야 합니다. 개발 1팀의 요청자를 사용자로 생성할 수도 있고, 프로젝트명과 같은 이름으로 사용자를 생성할 수도 있습니다. 사용자를 생성해 보겠습니다.

 

1.     관리자 대시보드의 왼쪽 메뉴에서 [인증] > [사용자]를 선택하면 다음과 같은 사용자 목록을 확인할 수 있습니다. 서비스를 위해 이미 생성되어 있는 서비스용 사용자 정보를 확인할 수 있습니다.

2.      [+ 사용자 생성]을 클릭하면 다음과 같은 사용자 생성 창이 뜹니다. 그러면 사용자 정보를 입력합니다. 여기서는 제가 개발 1팀의 개발자라 생각하고 제 개인 정보를 입력했습니다. 사용자 이름에는 사용자 ID를 입력하고, 설명은 간단하게 작성합니다. 그리고 이메일 정보와 비밀번호, 비밀번호 확인을 입력하고, 좀 전에 생성한 프로젝트를 최초 프로젝트에서 선택합니다. 그리고 역할을 선택하는데, 관리자가 아닌 일반 사용자는 Member로 선택한 후 [사용자 생성]을 클릭합니다. 


3.      사용자가 정상적으로 생성되면 [사용자] 메뉴를 선택해 목록을 확인할 수 있습니다.


4.      [그룹] 메뉴를 살펴보겠습니다. 그룹은 비슷한 프로젝트나 관련이 있는 프로젝트를 별도로 모아 좀 더 관리하기 쉽게 해줍니다. 여기서는 이미 nonadmins 그룹과 admins 그룹이 생성되어 있습니다.


5.     [역할]에서는 오픈스택 서비스를 위한 역할들이 이미 생성되어 있습니다. Service는 오픈스택 서비스를 위한 역할이며, admin은 관리자 역할입니다. Member_member_는 일반 사용자를 위한 역할이며, Heat_stack_ownerheat_stack_userHeat 서비스를 위한 역할입니다. ResellerAdmin은 미터링 서비스인 ceilometer를 위한 역할입니다. 이렇게 오픈스택에는 각각의 서비스를 구동하기 위한 역할들이 있습니다.

 

6.     프로젝트를 생성하고 사용자를 생성했으면 로그인 테스트를 해 봐야 합니다. Admin 계정으로 로그인한 대시보드를 로그아웃하고 다음과 같이 방금 생성한 사용자 아이디와 패스워드로 로그인해 봅니다.

 

7.     로그인을 하면 다음과 같이 한눈에 요약된 현재 자원 사용 정보와 사용량을 확인할 수 있습니다.

 

커맨드 명령어 사용하기

대부분은 대시보드를 이용해 프로젝트를 생성하고 사용자를 생성하면 됩니다. 하지만 때로는 커맨드 명령어를 이용해 기존의 프로젝트 정보나 사용자 정보를 삭제하거나 수정할 수도 있습니다. 여기서는 커맨드 명령어로 어떻게 프로젝트를 생성하고, 사용자를 생성하는지 알아보겠습니다.

 

[주요 명령어] 프로젝트 생성

openstack project create --domain [DOMAIN_NAME] --description [DESCRIPTION] [PROJECT_NAME]

 

[주요 명령어] 사용자 생성

openstack user create --domain [DOMAIN_NAME] --password-prompt [USER_NAME]

 

[주요 명령어] 사용자 역할 및 프로젝트 설정

openstack role add --project [PROJECT_NAME] --user [USER_NAME] [ROLE_NAME]

 

1.      먼저 관리자 계정을 인증하기 위한 adminrc.sh 파일을 다음과 같이 확인하고 export합니다. 이때 만일 adminrc.sh 파일이 없다면 다음과 같이 생성하면 됩니다.

nalee@controller:~$ cat adminrc.sh

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=openstack

export OS_AUTH_URL=http://192.168.56.101:35357/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

nalee@controller:~$ . adminrc.sh

 

2.      개발 1팀은 앞에서 이미 생성했으므로 이번에는 개발 2팀을 프로젝트로 생성해 보겠습니다. openstack project create 명령어를 이용해 도메인에는 defaultdescription에는 개발 2팀을 표현하는 “Development 2 Team”을 입력하고 마지막으로 development2라는 프로젝트명을 입력합니다. 그러면 다음과 같이 프로젝트가 생성됩니다.

nalee@controller:~$ openstack project create --domain default --description "Developer 2 Team" developer2

+-------------+----------------------------------+

| Field       | Value                            |

+-------------+----------------------------------+

| description | Developer 2 Team               |

| domain_id   | default                          |

| enabled     | True                             |

| id          | 698df06c46344730a1c1ab0aafd16a0b |

| is_domain   | False                            |

| name        | developer2                     |

| parent_id   | default                          |

+-------------+----------------------------------+

 

3.      프로젝트가 생성되었으면 이번에는 openstack user create 명령어를 이용해 janghj라는 사용자 계정을 생성해 보겠습니다. 이번에도 도메인은 default로 설정하고 패스워드를 프롬프트로 받기 위해 --password-prompt라는 옵션을 추가합니다. 그리고 janghj라는 사용자명을 입력합니다. 그러면 다음과 같이 패스워드를 입력하라는 프롬프트가 뜹니다. 이때, 설정하고자 하는 패스워드를 입력하고 [Enter]를 누르면 다음과 같이 사용자 계정이 생성됩니다. 책에서는 ‘janghjpass’로 패스워드를 설정했습니다.

nalee@controller:~$ openstack user create --domain default --password-prompt janghj

User Password: <패스워드 입력><엔터>

Repeat User Password: <패스워드 입력><엔터>

+-----------+----------------------------------+

| Field     | Value                            |

+-----------+----------------------------------+

| domain_id | default                          |

| enabled   | True                             |

| id        | 7af2ec0b1d4247da840954948411c9d9 |

| name      | janghj                           |

+-----------+----------------------------------+

 

4.      프로젝트와 사용자 계정이 생성되었으면 생성한 사용자 계정에 역할을  설정해야 합니다. 어떤 규칙들이 있는지 우선 openstack role list 명령어를 이용해 확인합니다. 여기서는 Member 역할을 사용하겠습니다.

nalee@controller:~$ openstack role list

+----------------------------------+------------------+

| ID                               | Name             |

+----------------------------------+------------------+

| 2df60b4750c14a91afedb2890a26325f | service          |

| 7fbd68e1466041dba647d6bb52153b70 | ResellerAdmin    |

| 98fbd6d7c431481793b14849984fdd0d | heat_stack_owner |

| 9fe2ff9ee4384b1894a90878d3e92bab | _member_         |

| a6cbca2a1afd4075b53497f37510952a | Member           |

| a96b25230fbf42b8b599f07aa1de25ac | heat_stack_user  |

| aa3864c4e01247e188275f493fdd82fd | admin            |

| ccaf3e4d5ed2431d8c9abf88b3ed06e4 | anotherrole      |

+----------------------------------+------------------+

 

5.      openstack role add 명령어를 이용해 앞에서 생성한 프로젝트와 사용자명을 입력합니다. projectdevelopment2를 입력하고, userjanghj를 입력합니다. 마지막으로 roleMember를 입력합니다. 그러면 생성한 사용자 계정에 프로젝트와 역할까지 모두 설정되었습니다.

nalee@controller:~$ openstack role add --project developer2 --user janghj Member

 

6.      이번에는 인증을 위한 스크립트 파일을 만들어 보겠습니다. 기존의 adminrc.sh 파일을 cp 명령어를 이용해 janghjrc.sh 이름으로 복사합니다. 그리고 janghjrc.sh 파일을 vi 에디터로 열어 OS_PROJECT_NAME, OS_USERNAME, OS_PASSWORD를 다음과 같이 앞에서 설정한 값으로 변경합니다. 저장된 janghjrc.sh 파일을 export합니다.

nalee@controller:~$ cp adminrc.sh janghjrc.sh

nalee@controller:~$ vi janghjrc.sh

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=developer2

export OS_USERNAME=janghj

export OS_PASSWORD=janghjpass

export OS_AUTH_URL=http://192.168.56.101:35357/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

nalee@controller:~$ . janghjrc.sh

 

7.      인증이 제대로 되는지 다음과 같은 명령어를 실행해 봅니다. 

nalee@controller:~$ openstack image list

+--------------------------------------+---------------------------------+--------+

| ID                                   | Name                            | Status |

+--------------------------------------+---------------------------------+--------+

| 76c25957-c3cd-4371-8df3-d5cd205d168f | cirros-0.3.4-x86_64-uec         | active |

| dd6d3899-6a98-4548-889d-ad3aa7bb8cf2 | cirros-0.3.4-x86_64-uec-ramdisk | active |

| e11dfa22-4c48-4ddb-a475-6e37b9283b6a | cirros-0.3.4-x86_64-uec-kernel  | active |

+--------------------------------------+---------------------------------+--------+


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
블로그 이미지

naleejang

내가 알고 있는 것들, 살아가면서 느낀것들을 표현해 보고 싶다.

안녕하세요~!!


정말 오랜만에 블로그에 글을 써보는것 같습니다. 

사실은 그동안 너무나도 많은 일들이 저에게 일어나서, 블로그를 관리하고 글을 쓸 마음의 여유도, 시간도 없었습니다. 


지난 겨울부터 그동안 작업해오던 책을 마무리해야 했었기 때문에 오픈스택과 클라우드에 대한 최신 기술 트렌드를 살펴보고, 이해하고, 정리를 했습니다. 그리고, 각종 세미나와 프로젝트들을 소화 해야만 했었고, 3년동안 끌고 왔던 오픈스택 한국 커뮤니티의 새로운 대표 선출을 진행 해야만 했었습니다. 그래서, 더욱더 시간이 없었는지도 모르겠습니다. 



저는 아직도 많이 부족한 사람입니다. 

모르는 분야도 많고, 하고 싶은 것도 많고,경험해 싶은 것도 많은.. 그래서 아직은 많이 부족한 직장맘입니다. 그래도, 꿈많은 사춘기 10대 소녀와 같은 마음으로 살고 있습니다.


저는 고마운 분들이 참 많습니다.

가깝게는 옆에서 항상 힘이 되고, 응원해 주는 우리 딸, 아이와 살림을 맡아 도와주시는 시어머니, 정신적 멘토이자 인생의 동반자인 울 신랑, 그리고, 기타 다른 가족들~~

많은 지원을 아끼지 않으셨던 ASD Korea 이선웅 대표님 그리고 직장 동료들!

함께 오픈스택 한국 커뮤니티를 운영하고 고생했던 운영진들!

오랜동안의 꿈을 이룰수 있도록 도와주었던 오픈스택 파운데이션 멤버들!

늘 항상 옆에서 보이지 않은 곳에서 응원을 보내주시던 지인들!


이런 분들로 인해 새로운 곳에서 새로운 도전을 시작하게 되었습니다.

정말 많은분들로부터 축하인사를 받았습니다. 축하인사를 받을정도로 정말 좋은 곳에서 좋은 동료들과 함께 일을 하게 되었구나! 라는것을 느꼈습니다.


아직은 많이 부족합니다.

하지만, 많은 분들이 보내주시는 응원만큼 더 많이 성장하도록 노력하겠습니다.

감사합니다. 정말 많이 감동받았고, 정말 많이 기쁘고, 행복했습니다.


앞으로도 

항상 지켜봐 주시고, 응원해 주시고, 많이 많이 도와주세요~!!


감사합니다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'Life' 카테고리의 다른 글

[Life] New Start for Dream! and Work! with RedHat  (1) 2017.03.08
OpenStack Austin Summit 2016을 다녀와서  (2) 2016.05.05
Start-up에서 일한다는 건  (0) 2016.03.04
[Life]한해를 정리하며  (8) 2015.12.10
감사의 편지~!!  (0) 2015.08.14
Self-learnt developer Nalee Jang~!!  (0) 2015.08.14
블로그 이미지

naleejang

내가 알고 있는 것들, 살아가면서 느낀것들을 표현해 보고 싶다.


PackStack Mitaka 패키지와 PackStack 설치


네트워크 IP 설정를 완료하면 SSH 클라이언트 툴 또는 명령어를 이용해서 해당 네트워크 IP로 접속합니다. 앞에서 192.168.56.102로 할당 받았으므로 SSH 접속 시 192.168.56.102로 접속합니다. 접속한 후 PackStack을 설치를 위해 설치할 버전의 레파지토리 rpm을 받아와야 합니다. 우리는 Mitaka를 설치할 예정이므로 Mitaka 패키지를 받아오겠습니다.



1.     레드햇에서 제공하는 RDO공식 문서(https://www.rdoproject.org/install/quickstart/)를 참조하여 아래와 같이 레파지토리 RPM을 설치합니다.

[root@centos ~]# yum install -y https://www.rdoproject.org/repos/rdo-release.rpm

Loaded plugins: fastestmirror

rdo-release.rpm                                                                  | 5.3 kB  00:00:00    

Examining /var/tmp/yum-root-mFGmE5/rdo-release.rpm: rdo-release-mitaka-2.noarch

Marking /var/tmp/yum-root-mFGmE5/rdo-release.rpm to be installed

Resolving Dependencies

--> Running transaction check

---> Package rdo-release.noarch 0:mitaka-2 will be installed

--> Finished Dependency Resolution

                                                          1/1

Installed:

  rdo-release.noarch 0:mitaka-2                                                                        

 

Complete!

[root@centos ~]#

 

Tip===

[Q&A] Packstack을 이용하여 다른 버전의 오픈스택은 어떻게 설치하나요?

RDO PackStack은 레드햇에서 제공하는 공식 사이트(https://www.rdoproject.org/install/quickstart/)에 방문하여 설치 문서를 확인하고 설치하면 가장 최신의 오픈스택을 설치할 수 있습니다.


만일 설치하고자 하는 오픈스택 버전이 RDO 공식 설치 문서에 안내되어 있는 경우와 다른 때는 아래와 같이 패도라 오픈스택 레파지토리 사이트(https://repos.fedorapeople.org/repos/openstack/)에 방문하면, 현재 설치가능한 오픈스택 버전을 모두 확인할 수 있습니다.


설치하고자 하는 오픈스택의 버전을 선택하고 들어가면 아래와 같이 업데이트 된 PRM 목록을 확인할 수 있습니다. 이때 가장 최근에 업데이트 된 버전에서 마우스 오른쪽 버튼을 클릭하면 아래와 같이 서브 메뉴가 나옵니다. 이때, [다른 이름으로 링크 저장]을 클릭합니다.

 

복사한 URL은 아래와 같이 붙여넣고 실행을 하면 해당 레파지토리가 설치됩니다.

[root@centos ~]# yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-mitaka/rdo-release-mitaka-3.noarch.rpm

Loaded plugins: fastestmirror

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

rdo-release-mitaka-3.noarch.rpm                                                      | 5.4 kB  00:00:00    

Examining /var/tmp/yum-root-SW9UDz/rdo-release-mitaka-3.noarch.rpm: rdo-release-mitaka-3.noarch

Marking /var/tmp/yum-root-SW9UDz/rdo-release-mitaka-3.noarch.rpm to be installed

Resolving Dependencies

--> Running transaction check

---> Package rdo-release.noarch 0:mitaka-3 will be installed

--> Finished Dependency Resolution

Installed:

  rdo-release.noarch 0:mitaka-3                                                                             

 

Complete!

[root@centos ~]#

 

====

 

2.     레파지토리 설치가 완료되었으면 이번에는 yum update 명령어를 이용하여 시스템 업데이트를 합니다.

[root@centos ~]# yum update -y

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: ftp.daumkakao.com

 * extras: mirror.oasis.onnetcorp.com

 * updates: centos.mirror.cdnetworks.com

Resolving Dependencies

--> Running transaction check

---> Package NetworkManager.x86_64 1:1.0.0-14.git20150121.b4ea599c.el7 will be updated

---> Package NetworkManager.x86_64 1:1.0.6-29.el7_2 will be an update

---> Package NetworkManager-libnm.x86_64 1:1.0.0-14.git20150121.b4ea599c.el7 will be updated

---> Package NetworkManager-libnm.x86_64 1:1.0.6-29.el7_2 will be an update

---> Package NetworkManager-team.x86_64 1:1.0.0-14.git20150121.b4ea599c.el7 will be updated

---> Package NetworkManager-team.x86_64 1:1.0.6-29.el7_2 will be an update

---> Package NetworkManager-tui.x86_64 1:1.0.0-14.git20150121.b4ea599c.el7 will be updated

---> Package NetworkManager-tui.x86_64 1:1.0.6-29.el7_2 will be an update

  yum.noarch 0:3.4.3-132.el7.centos.0.1                                                                

  yum-plugin-fastestmirror.noarch 0:1.1.31-34.el7                                                      

  zlib.x86_64 0:1.2.7-15.el7                                                                           

 

Complete!

 

3.     업데이트까지 완료했으면 아래와 같이 Packstack을 설치합니다.

[root@centos ~]# yum install -y openstack-packstack

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: ftp.daumkakao.com

 * extras: mirror.oasis.onnetcorp.com

 * updates: centos.mirror.cdnetworks.com

Resolving Dependencies

--> Running transaction check

---> Package openstack-packstack.noarch 0:8.0.0-1.el7 will be installed

--> Processing Dependency: openstack-packstack-puppet = 8.0.0-1.el7 for package: openstack-packstack-8.0.0-1.el7.noarch

Dependency Installed:

  PyYAML.x86_64 0:3.10-11.el7                           jbigkit-libs.x86_64 0:2.0-11.el7              

  libtiff.x86_64 0:4.0.3-14.el7                         libwebp.x86_64 0:0.3.0-3.el7                  

  libyaml.x86_64 0:0.1.4-11.el7_0                       openstack-packstack-puppet.noarch 0:8.0.0-1.el7

  openstack-puppet-modules.noarch 1:8.0.4-1.el7         pyOpenSSL.noarch 0:0.15.1-1.el7               

  python-docutils.noarch 0:0.11-0.2.20130715svn7687.el7 python-enum34.noarch 0:1.0.4-1.el7            

  python-idna.noarch 0:2.0-1.el7                        python-ipaddress.noarch 0:1.0.7-4.el7         

  python-netaddr.noarch 0:0.7.18-1.el7                  python-pillow.x86_64 0:2.0.0-19.gitd1c6db8.el7

  python-ply.noarch 0:3.4-10.el7                        python-pycparser.noarch 0:2.14-1.el7           

  python2-cffi.x86_64 0:1.5.2-1.el7                     python2-cryptography.x86_64 0:1.2.1-3.el7     

  python2-pyasn1.noarch 0:0.1.9-6.el7.1                 ruby.x86_64 0:2.0.0.598-25.el7_1              

  ruby-irb.noarch 0:2.0.0.598-25.el7_1                  ruby-libs.x86_64 0:2.0.0.598-25.el7_1         

  rubygem-bigdecimal.x86_64 0:1.2.0-25.el7_1            rubygem-io-console.x86_64 0:0.4.2-25.el7_1    

  rubygem-json.x86_64 0:1.7.7-25.el7_1                  rubygem-psych.x86_64 0:2.0.0-25.el7_1         

  rubygem-rdoc.noarch 0:4.0.0-25.el7_1                  rubygems.noarch 0:2.0.14-25.el7_1             

 

Complete!

[root@centos ~]#

 

4.     Packstack 설치가 완료되면 아래와 같은 명령어로 설치가 정상적으로 이루어졌는지 확인할 수 있습니다. 또한 어떤 종류의 옵션들이 있는지 해당 옵션들의 설명도 함께 확인할 수 있습니다.

[root@centos ~]# packstack -h | less

Usage: packstack [options] [--help]

 

Options:

  --version             show program's version number and exit

  -h, --help            show this help message and exit

  --gen-answer-file=GEN_ANSWER_FILE

                        Generate a template of an answer file.

  --answer-file=ANSWER_FILE

                        Runs the configuration in non-interactive mode,

                        extracting all information from theconfiguration file.

                        using this option excludes all other options

  --install-hosts=INSTALL_HOSTS

                        Install on a set of hosts in a single step. The format

                        should be a comma separated list of hosts, the first

                        is setup as a controller, and the others are setup as

                        compute nodes.if only a single host is supplied then

                        it is setup as an all in one installation. An

                        answerfile will also be generated and should be used

                        if Packstack needs to be run a second time

  --allinone            Shorthand for --install-hosts=<local ipaddr>

                        --novanetwork-pubif=<dev> --novacompute-privif=lo

                        --novanetwork-privif=lo --os-swift-install=y --nagios-

                        install=y , this option can be used to install an all

                        in one OpenStack on this host

  -t TIMEOUT, --timeout=TIMEOUT

                        The timeout for puppet Exec calls

 

5.     이번에는 오픈스택 설치시 환경설정을 하기 위한 환경파일을 만들어 보도록 하겠습니다. Packstack에는 위에서 확인했던 것처럼 다양한 옵션들이 있는데 그 중에 --gen-answer-file 옵션을 이용하면 아래와 같이 환경설정 파일을 만들수 있습니다. 환경설정 파일명은 본인의 취향대로 다른 이름으로 사용할 수 있으며, 여기서는 answers.txt 라는 이름을 사용하였습니다.

[root@centos ~]# packstack --gen-answer-file ~/answers.txt

Packstack changed given value  to required value /root/.ssh/id_rsa.pub

[root@centos ~]# ll

합계 52

-rw-------. 1 root root  1312  5 18 15:42 anaconda-ks.cfg

-rw-------. 1 root root 49061  5 19 18:05 answers.txt

[root@centos ~]#

 

6.     이번에는 환경설정을 한번 해 보도록 하겠습니다. 위에서 생성된 환경설정 파일 answers.txt 파일을 vi 편집기를 이용해 아래 나열되어 있는 항목들의 값을 변경해 줍니다. 독자분들의 편의를 위하여 원 환경설정 파일에 영문으로 설명되어 있는 주석을 한글로 쉽게 설명하였습니다.

[root@centos ~]# vi answers.txt

 

# 기본으로 설정되는 패스워드입니다. 여기서는 openstack을 사용해 보도록 하겠습니다.

CONFIG_DEFAULT_PASSWORD=openstack

 

# 여기서는 오브젝트 스토리지 서비스인 Swift는 설치하지 않겠습니다. 그러므로, 값을 n으로 설정합니다.

CONFIG_SWIFT_INSTALL=n

 

# 오케스트레이션 서비스는 설치할 예정입니다. 값을 y로 설정합니다.

CONFIG_HEAT_INSTALL=y

 

# 컨트롤러 호스트 IP는 관리용 IP를 설정합니다.

# 따라서, VirtualBox에서 가상서버 생성시 설정했던 호스트 전용 네트워크인 enp0s8IP를 입력합니다.

CONFIG_CONTROLLER_HOST=192.168.56.102

 

# 컴퓨트 서비스를 설치할 노드의 IP를 나열합니다.

# 여기서는 설치할 노드가 한대뿐이 없으므로, 하나만 입력합니다.

CONFIG_COMPUTE_HOSTS=192.168.56.102

 

# 기존 네트워크 서비스인 nava networkSDN이 가능한 네트워크 서비스인

# neutron 서비스를 설치할 노드의 IP를 입력합니다.

CONFIG_NETWORK_HOSTS=192.168.56.102

 

# 이미지나 블록 스토리지 서비스와 같은 스토리지 서버 IP를 입력합니다.

CONFIG_STORAGE_HOST=192.168.56.102

 

# 데이터 프로세싱 서비스인 Sahara 노드 IP를 입력합니다.

# 우리가 설치할 노드는 한대뿐이 없으므로 여기서는 동일한 IP를 입력합니다.

CONFIG_SAHARA_HOST=192.168.56.102

 

# 메시지 서비스를 할 노드의 IP를 입력합니다.

CONFIG_AMQP_HOST=192.168.56.102

 

# 마리아 DB를 설치할 노드의 IP를 입력합니다. 이때 만일 CONFIG_MARIADB_INSTALL

# y로 설정하지 않았다면 마리아 DB가 설치되어 있는 데이터베이스 서버 IP를 입력합니다.

CONFIG_MARIADB_HOST=192.168.56.102

 

# ‘Admin’ 사용자의 패스워드를 입력합니다. 원래는 랜덤한 값이 들어가 있으나,

# 사용하기 편리하게 하기 위해서 쉬운 패스워드로 변경해 줍니다. 여기서는 openstack이라고 변경했습니다.

CONFIG_KEYSTONE_ADMIN_PW=openstack

 

# 'Demo' 사용자의 패스워드 역시 사용하기 쉬운 패스워드로 입력합니다.

CONFIG_KEYSTONE_DEMO_PW=openstack

 

# LDAP를 사용할 예정이라면 해당 URL을 입력해 줍니다. 여기서는 모든 IP를 관리용 IP로 변경해 주었습니다.

CONFIG_KEYSTONE_LDAP_URL=ldap://192.168.56.102

 

# 외부 통신을 위한 L3 에이전트와 연결할 Open vSwitch의 브리지명을 입력합니다.

CONFIG_NEUTRON_L3_EXT_BRIDGE=br-enp0s3

 

# 로드 밸런싱 서비스를 설치할지 여부를 설정합니다. 여기서는 y로 변경해 줍니다.

CONFIG_LBAAS_INSTALL=y

 

# 방화벽 서비스 설치 여부를 설정합니다. 여기서는 y로 설정했습니다.

CONFIG_NEUTRON_FWAAS=y

 

# ML2 드라이버 타입을 설정합니다. 다음에 나오는 타입 중 하나를 입력하면 됩니다.

# 여기서는 vlan을 사용하도록 하겠습니다. ['local', 'flat', 'vlan', 'gre', 'vxlan']

CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vlan

 

# 네트워크 타입을 설정합니다. 다음에 나오는 타입 중 하나를 입력하면 됩니다.

# 여기서는 위에서 설정한 ML2 드라이버 타입와 같은 타입을 설정합니다. ['local', 'vlan', 'gre', 'vxlan']

CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vlan

 

# 테넌트 네트워크로 제공할 물리 네트워크의 이름과 VLAN 태크 범위를 입력합니다.

# <physical_network>:<vlan_min>:<vlan_max>

CONFIG_NEUTRON_ML2_VLAN_RANGES=physnet1:1:1000

 

# 물리 네트워크와 연결할 Open vSwitch 브리지명을 입력합니다.

# <physical_network>:<ovs_bridge>

# Example: physnet1:br-eth1,physnet2:br-eth2,physnet3:br-eth3

CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-enp0s3

 

# Open vSwitch의 브리지와 연결할 인터페이스 명을 입력합니다.

# 만일 이때 매핑을 잘못 했다면, 다음 명령어를 이용하여 수정할 수 있습니다.

# packstack --allinone --os-neutron-ovs-bridge-mappings=ext-net:br-ex --os-neutron-ovs-bridge-interfaces

# =br-ex:eth0

CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-enp0s3:enp0s3

 

# 오케스트레이션 클라우드포메이션 설치 여부를 설정합니다.

CONFIG_HEAT_CFN_INSTALL=y

 

# 플로팅 IP 범위를 입력합니다.

# 이때 입력하는 플로팅 IP 범위는 enp0s3 IP와 같은 대역의 IP 범위를 입력합니다.

CONFIG_PROVISION_DEMO_FLOATRANGE=192.168.0.0/24

 

# MongoDB를 설치할 노드 IP를 입력합니다.

CONFIG_MONGODB_HOST=192.168.56.102

 

# REDIS를 설치할 마스터 노드 IP를 입력합니다.

CONFIG_REDIS_MASTER_HOST=192.168.56.102

 

7.     환경설정이 완료되었으면 새로 설정한 환경설정 파일을 이용해 아래와 같이 PackStack을 실행합니다. 그리고, 3~40분 정도 기다립니다. 설치 완료가 되면 아래와 같이 오픈스택 데쉬보드 접속정보, Nagios 접속정보 및 설치 로그 파일 경로 등을 확인할 수 있습니다.

[root@centos ~]# packstack --answer-file ./answers.txt

Welcome to the Packstack setup utility

 

The installation log file is available at: /var/tmp/packstack/20160519-182327-iJWRlx/openstack-setup.log

 

Installing:

Clean Up                                             [ DONE ]

Discovering ip protocol version                      [ DONE ]

Setting up ssh keys                                  [ DONE ]

Preparing servers                                    [ DONE ]

Applying 192.168.56.102_nagios.pp

Applying 192.168.56.102_nagios_nrpe.pp

192.168.56.102_nagios.pp:                            [ DONE ]           

192.168.56.102_nagios_nrpe.pp:                       [ DONE ]           

Applying Puppet manifests                            [ DONE ]

Finalizing                                           [ DONE ]

 

 **** Installation completed successfully ******

 

Additional information:

 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.

 * Warning: NetworkManager is active on 192.168.56.102. OpenStack networking currently does not work on systems that have the Network Manager service enabled.

 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.56.102. To use the command line tools you need to source the file.

 * To access the OpenStack Dashboard browse to http://192.168.56.102/dashboard .

Please, find your login credentials stored in the keystonerc_admin in your home directory.

 * To use Nagios, browse to http://192.168.56.102/nagios username: nagiosadmin, password: 8b30b217dca54f01

 * Because of the kernel update the host 192.168.56.102 requires reboot.

 * The installation log file is available at: /var/tmp/packstack/20160520-162729-MMdzYo/openstack-setup.log

 * The generated manifests are available at: /var/tmp/packstack/20160520-162729-MMdzYo/manifests

[root@centos ~]#

 

TIP===

[Q&A] 경고(Warning) 메시지가 뜨는데 괜찮은건가요?

설치가 완료된 후 마지막에 경고(Warning) 메시지가 뜹니다. 내용을 보니 오픈스택 네트워크 서비스는 네트워크 매니저(Network Manager)가 활성화된 시스템에서는 동작을 하지 않는다고 나와 있습니다. 그럼, 네트워크 매니저 서비스가 실행되고 있는지 확인해 보겠습니다.


1.     우선, 실행 중인 프로세스 중에 네트워크 매니저(NetworkManager)가 실행되고 있는지 ps -ef 명령어를 이용하여 grep으로 프로세스 실행 상태를 확인합니다. 이때 만일 아래와 같이 네트워크 매니저가 실행되고 있다면 해당 서비스를 중단시켜야 합니다.

[root@centos ~]# ps -ef | grep NetworkManager

root       854     1  0 08:48 ?        00:00:02 /usr/sbin/NetworkManager --no-daemon

root     13256 12505  0 14:48 pts/0    00:00:00 grep --color=auto NetworkManager

root     20972   854  0 09:33 ?        00:00:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-enp0s8.pid -lf /var/lib/NetworkManager/dhclient-1dca40ee-3e58-4ce9-8dd7-3c26e1727e9e-enp0s8.lease -cf /var/lib/NetworkManager/dhclient-enp0s8.conf enp0s8

 

2.     systemctl 명령어를 이용하여 네트워크 매니저 실행을 중단합니다.

[root@centos ~]# systemctl stop NetworkManager

 

3.     네트워크 매니저가 제대로 중단되었는지 확인하려면 ps –ef 명령어를 이용하여 다시 프로세스 실행을 확인하면 됩니다.

[root@centos ~]# ps -ef | grep NetworkManager

root     13502 12505  0 14:49 pts/0    00:00:00 grep --color=auto NetworkManager

root     20972     1  0 09:33 ?        00:00:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-enp0s8.pid -lf /var/lib/NetworkManager/dhclient-1dca40ee-3e58-4ce9-8dd7-3c26e1727e9e-enp0s8.lease -cf /var/lib/NetworkManager/dhclient-enp0s8.conf enp0s8

[root@centos ~]#

 

===

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
블로그 이미지

naleejang

내가 알고 있는 것들, 살아가면서 느낀것들을 표현해 보고 싶다.

티스토리 툴바