안녕하세요, 금일 CKA에 이어 CKAD시험을 쳤습니다

 

udemy강의 를 구매해서 봤는데 CKA랑 겹치는게 90%이상이였어요...괜히 구매했습니다 환불하고 싶지만 그래도 강의덕을 봤으니 구매 유지 결정

 

결론만 말씀드리면 CKA를 좋은 점수로 합격하신분들은 별도의 강의 구매없이 + 프로브,job,cronjob 정도만 스터디 하시고 바로 시험보시면 쉽게 붙을 수 있을 것 같습니다

 

시험은 CKA와 동일하게 2시간이며 19문제가 나옵니다

 

주의해야 할 점 은 CKA보다 지문내용이 아주 복잡 해졌습니다 CKA처럼 짧은 지문(명령어 한줄로 끝내는문제)는 2문제 정도밖에 없었어요

 

지문이 너무 길어 크롬확장기능 번역기로 번역하면서 풀었습니다

 

복잡도랑 배점은 비례하지 않으니 잘 살펴보세요 저같은경우는 제일 복잡하고 긴 문제가 2점짜리여서 포기했습니다 ㅋㅋ

 

대충 기억하자면 기존에 있는 pod에 접속하기 위해 haproxy pod를띄우고 proxy를 통한 haproxypod -> svc -> pod 접근 구성 하는거였는데 난생 첨보는거고 너무 복잡했고 배점도 2점뿐이라 그냥 깔끔하게 포기 했습니다

 

나머지 18문제는 다 그냥저냥 풀만했구요 프로브 문제가 3개정도 나왔던거 같습니다

 

하나는 프로브 1개 설정하기

 

두번째는 프로브2개 설정하기

 

세번째는 프로브가 잘못 설정되어있어 계속 restart하는 pod의 대한 트러블 슈팅 이였습니다

 

job은 cronjob을 이용하는걸로 1문제 나왔습니다

 

이외에 클러스터 업그레이드 뺴놓고는 좀 복잡해졌을뿐이지 CKA와 공부 범위는 동일 합니다

 

그런데 CKAD가 9월28일부로 변경된다고 합니다 helm도 추가되고 전체적인 범위조정이 있다고 하네요..

 

보실분들은 그전에 보시는게 좋을 듯 합니다

 

CKA와 마찬가지로 20분정도 남겨놓고 검토까지 완료하여 시험을 종료 했습니다

 

결과 나오면 업데이트 하겠습니다

 

감사합니다

 

안녕하세요, CKA 시험 후기를 남깁니다

 

최근 CKA는 시험시간 2시간에 합격점수는 66%로 변경되었습니다(CKAD와 동일)

 

금일 시험을 봤고 아직 결과는 나오지 않았으나 기억하는게 많을때 작성하는게 좋을것 같아...

 

접수 방법이나 결제 방법에 대해서는 별도의 언급을 안하겠습니다

 

시험 준비는 udemy 강의 13000원으로 할인 할때 구매해서 보면서 공부 했습니다 이것만 다 보고 이해하시고 연습문제 푸실수 있으면 거의 100% 합격이지 않을까 싶네요

 

그리고 여러 블로그에서 나온대로 kubernetes.io 에서 각 항목별 즐겨찾기 해두기가 시간절약에 아주 도움이 됩니다

 

그냥 문서 말고 문서내 yaml파일 이나 필요부분 링크 클릭후 즐겨찾기 하면 북마크 클릭하면 바로 yaml이나 해당 항목에 떠서 시간 절약에 아주 좋습니다 꼭 미리 다 북마크 해두세요

 

또 크롬내 번역기 사용이 가능하나 기본 번역기는 전체 페이지 통 번역 밖에 없으므로 확장기능중 구글 번역을 설치하세요

 

해당 기능이 있으면 선택한 텍스트부분만 번역하여 팝업을 띄울 수 있습니다

 

아래는 시험 내용 입니다

 

버전은 1.20.1 이였습니다

 

시험 시작 15분전부터 my portal내 exam 버튼이 활성화 됩니다

 

그러나 저는 정각+1분까지 감독관이 준비되지 않아 기다렸습니다

 

감독관이 준비되면 livechat으로 여러가지 요구사항과 주의사항을 알려줍니다

 

먼저 시험장소의 4개의 벽면을 차례로 웹캡으로 보여줘야 합니다

 

책상위에도 보여줘야 합니다 처음에 설명할때 투명 컵에 담긴 액체는 가능한줄 알고 takeout잔에 컵홀더만 때서 가져갔는데요.. 커피처럼 투명하지 않은 액체는 안된다고 해서 급하게 원샷하고 치웠습니다

 

책상 밑에도 보여줘야 합니다

 

그리고 ID카드를 요구하는데 저는 영문면허증을 준비했습니다

 

이게 되는지 안되는지 알아본다고 10분정도 소요 되었구요

 

감독관은 피드백이 굉장히 느렸습니다 뭐하나 물어보면 2분정도 후에 답변 했어요

 

준비만 30분정도 하고 시험이 시작됬습니다 준비시간은 시험시간에 들어가지 않습니다

 

총 19개의 문제가 나왔고 2시간이 주어졌습니다

 

크롬브라우저의 번역기능 사용해도 됩니다 별다른 얘기 없었습니다

 

etcd백업 문제외에는 특정 context를 사용하라고 지문의 맨 처음에 나왔고 그냥 복붙하시면 됩니다

 

문제는 아래와 같습니다(기억나는것만 적습니다)

 

1. etcd 백업과 복원

 

2. 주어진 내용대로 POD생성

 

3. 주어진 내용대로 Multi Container POD생성

 

4. 현재 노드중에 POD의 배치가 가능한 노드의 갯수 파일에 입력

 

5. Control Plane노드의 k8s 버전을 1.20.0 에서 1.20.1로 업그레이드 하기(워커는 하면 안됨)

 

6. Network Policy를 생성하여 주어진 조건의 통신을 허용하기

 

7. Service Account와 Cluster Role을 생성하여 Cluster Role Binding 하기

 

8. sidecar를 이용하여 POD 모니터링

 

9. 주어진 내용으로 PV를 생성

 

10. 주어진 내용대로 PVC를 생성하고 이 PVC를 사용하는 POD를 만들기, 그 후 PVC를 Extend 하기

 

11. CPU사용률이 제일 높은 POD의 이름을 파일로 기록 하기

 

12. 주어진 조건대로 Ingress를 생성하고 확인하기

 

13. 이미 생성되어있는 Deployment의 replicas를 수정하기

 

14. Nodeport로 서비스를 생성하기

 

15. 특정 POD의 로그중 특정 내용만 파일로 기록 하기

 

16. Not Ready상태의 NODE를 확인하고 트러블슈팅하기 ( 저의 경우엔 kubelet이 stop & disable 되어 있었습니다)

 

17. 주어진 조건대로 POD를 생성하기(노드셀렉터 이용)

 

18. 특정 노드의 POD를 비우고 스케쥴 되지 않도록 하시오

 

19. 특정 Label을 가지고 잇는 POD들을 파일로 기록 하기

 

 

남은시간이 정확히 분으로 안나오고 막대로 나와서 불편했습니다..

 

다 풀고 한번 검증 한다음 남은시간이 20분정도 있었는데 더 볼게 없어 시험종료 버튼을 누르고 완료 했습니다

 

24시간 이내로 시험 결과를 보내준다고 하네요

 

 

시험종료 후 정확히 22시간 후 먼저 합격했다는 메일이 오고 결과메일이 또오고 뱃지관련 메일이 왔습니다

 

약간 불안한 부분도 있었지만 점수를 봐서는 무난하게 합격 한것 같네요

 

 

안녕하세요, Centos의 Stream OS정책이 발표된지 어느덧 8개월이 지났습니다

이것은 Centos8의 지원종료일이 4개월 남았다는것을 의미하기도 합니다

저는 개인적으로 Redhat계열의 OS를 선호 합니다 그래서 꾸준하게 Centos를 사용해 왔구요..

정책 발표이후 Rocky Linux와 같이 Centos의 대체제가 바로 발표 되었지만 많은 분들이 Centos 꼴 나는거 아니야? 하면서 ubuntu로 전환을 하시기도 했습니다

그러나 역시나 많은 분들이 Redhat의 안정성과 Redhat의 날리지베이스를 활용할 수 있다는 점때문에 대체제를 고민하며 관망하고도 있습니다 이제는 선택을 할때가 됬습니다 지원종료일이 4개월밖에 남지 않았거든요..

최근 Rocky Linux가 GA 릴리즈 되어 저는 Rokcy Linux로의 전환을 결정 하였습니다 과거의 Centos 정책을 따르는것과 Centos의 창시자가 다시 만들었다는점, AWS와 네이버가 스폰서 한다는점 등이 저의 결정에 영향을 주었습니다

이 포스트는 저같은 결정을 하신분들에게 OS 재설치 없이 Centos8 to Rocky Linux로의 스위칭을 가이드 합니다


먼저 포스팅에 사용한 OS는 Centos8 lastest 버전입니다(8.4.2105) 또한 프로덕션 환경을 재현하기 위해 minimal 설치나 cloud 이미지를 사용하지 않고 Server With GUI 패키지를 설치 하였습니다

작업에 사용한 스크립트는 Rocky Linux재단의 제품이지만 100% 안정성을 보장하지 않으므로 작업전 Full Backup과 충분한 장애 대처 시나리오를 준비하신 후 작업 하시기 바랍니다

 

저는 이전에 rhel to oel rhel to centos 등의 여러 OS switching 경험이 있습니다

 

모두 수동으로 패키지를 reinstall하고 수행했지만 이러한 작업들이 자동으로 수행되도록 스크립트를 만들어 제공해주어 해당 스크립트를 통해 작업을 진행 해 보겠습니다

 

 

[root@switch ~]# rpm -qa |wc -l
1382

cat /etc/centos-release
CentOS Linux release 8.4.2105

작업 대상 CentOS에는 현재 총 1382개의 패키지가 설치 되어 있습니다

 

 

모든 패키지에는 Packager와 Build Host, Vendor에 Centos에 대한 정보가 들어가 있습니다

 

아래 예시로 bash 패키지를 확인 해 봅니다

[root@switch ~]# rpm -qi bash
Name        : bash
Version     : 4.4.19
Release     : 14.el8
Architecture: x86_64
Install Date: Fri 23 Jul 2021 04:43:31 PM KST
Group       : Unspecified
Size        : 6861620
License     : GPLv3+
Signature   : RSA/SHA256, Wed 13 Jan 2021 12:21:35 AM KST, Key ID 05b555b38483c65d
Source RPM  : bash-4.4.19-14.el8.src.rpm
Build Date  : Tue 12 Jan 2021 05:27:45 PM KST
Build Host  : x86-01.mbox.centos.org
Relocations : (not relocatable)
Packager    : CentOS Buildsys <bugs@centos.org>
Vendor      : CentOS
URL         : https://www.gnu.org/software/bash
Summary     : The GNU Bourne Again shell
Description :
The GNU Bourne Again shell (Bash) is a shell or command language
interpreter that is compatible with the Bourne shell (sh). Bash
incorporates useful features from the Korn shell (ksh) and the C shell
(csh). Most sh scripts can be run by bash without modification.

최종 스위칭이 완료되면 모두 rocky linux에서 packaging 한 패키지가 설치되어야 합니다

 

 

이제 스위칭을 진행 합니다

 

rocky linux github에서 제공하는 switch 스크립트를 사용 할 것 입니다

 

https://github.com/rocky-linux/rocky-tools/tree/main/migrate2rocky

 

GitHub - rocky-linux/rocky-tools

Contribute to rocky-linux/rocky-tools development by creating an account on GitHub.

github.com

 

해당 스크립트를 이용하려면 공식 rocky linux repo와 연결이 가능하여야 합니다

 

폐쇠망 사용자라면 폐쇠망 내에 rocky linux repo서버를 구성하고 스크립트내 repo주소를 수정하여 작업 하시기 바랍니다

 

 

스크립트를 내려 받습니다

[root@switch ~]# wget https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
--2021-08-12 12:36:32--  https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.110.133, 185.199.111.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 30835 (30K) [text/plain]
Saving to: ‘migrate2rocky.sh’

migrate2rocky.sh                                   100%[================================================================================================================>]  30.11K  --.-KB/s    in 0.009s  

2021-08-12 12:36:33 (3.27 MB/s) - ‘migrate2rocky.sh’ saved [30835/30835]

 

도움말을 확인 합니다

 

[root@switch ~]# bash migrate2rocky.sh 
Usage: migrate2rocky.sh [OPTIONS]

Options:
-h Display this help
-r Convert to rocky
-V Verify switch
   !! USE WITH CAUTION !!

 

-r 옵션을 주고 수행 합니다

 

[root@switch ~]# bash migrate2rocky.sh -r

Removing dnf cache
Preparing to migrate CentOS Linux 8 to Rocky Linux 8.

Determining repository names for CentOS Linux 8.

 

수행하면 먼저 깔려있는 패키지와 rocky repo에 패키지를 비교 합니다

 

현재 시스템에 enabled 되어있는 모든 repo를 체크하므로 불필요하거나 OS  repo 외에는 disable 하고 사용하세요

 

첫번째로 업데이트가 필요한 패키지가 업데이트 됩니다

Running dnf update before we attempt the migration.
Last metadata expiration check: 0:01:03 ago on Thu 12 Aug 2021 12:45:30 PM KST.
Dependencies resolved.
=================================================================================================================
 Package                                       Arch    Version                                   Repo        Size
=================================================================================================================
Installing:
 kernel                                        x86_64  4.18.0-305.12.1.el8_4                     baseos     5.9 M
 kernel-core                                   x86_64  4.18.0-305.12.1.el8_4                     baseos      36 M
 kernel-modules                                x86_64  4.18.0-305.12.1.el8_4                     baseos      28 M
Upgrading:
 NetworkManager                                x86_64  1:1.30.0-10.el8_4                         baseos     2.6 M
 NetworkManager-adsl                           x86_64  1:1.30.0-10.el8_4                         baseos     141 k
 NetworkManager-bluetooth                      x86_64  1:1.30.0-10.el8_4                         baseos     167 k
 NetworkManager-config-server                  noarch  1:1.30.0-10.el8_4                         baseos     128 k
 NetworkManager-libnm                          x86_64  1:1.30.0-10.el8_4                         baseos     1.8 M
 NetworkManager-team                           x86_64  1:1.30.0-10.el8_4                         baseos     146 k
 NetworkManager-tui                            x86_64  1:1.30.0-10.el8_4                         baseos     328 k
 NetworkManager-wifi                           x86_64  1:1.30.0-10.el8_4                         baseos     186 k
 NetworkManager-wwan                           x86_64  1:1.30.0-10.el8_4                         baseos     173 k
 bash                                          x86_64  4.4.20-1.el8_4                            baseos     1.5 M
 bind-export-libs                              x86_64  32:9.11.26-4.el8_4                        baseos     1.1 M
 bind-libs                                     x86_64  32:9.11.26-4.el8_4                        appstream  174 k
 bind-libs-lite                                x86_64  32:9.11.26-4.el8_4                        appstream  1.2 M

수동으로 작업시 버전변경을 최소화 하고 싶다면 해당작업을 마지막에(reinstall된 패키지를 제외하고) 수행하는것이 좋습니다

 

보통 직접 작업시 해당 작업을 마지막에 수행하여 업그레이드가 꼭 필요한 패키지만 업그레이드 하도록 합니다

 

꼭 필요한 패키지는 취약점 패치로 인해 원버전이 사라져 reinstall 이 불가능한 패키지입니다

 

 

 

 

 

두번째로는 logo와 gpgkey, release 패키지등이 centos에서 rocky로 대체 되어 집니다

 

> > > ================================================================================
 Package                 Arch      Version              Repository         Size
================================================================================
Installing:
 rocky-backgrounds       noarch    84.5-8.el8           rockyappstream    330 k
 rocky-gpg-keys          noarch    8.4-32.el8           rockybaseos        11 k
 rocky-indexhtml         noarch    8.0-0.el8            rockybaseos       266 k
 rocky-logos             x86_64    84.5-8.el8           rockybaseos       328 k
 rocky-release           noarch    8.4-32.el8           rockybaseos        20 k
 rocky-repos             noarch    8.4-32.el8           rockybaseos        13 k
Removing:
 centos-backgrounds      noarch    85.8-1.el8           @appstream         23 M
 centos-gpg-keys         noarch    1:8-2.el8            @anaconda         3.3 k
 centos-indexhtml        noarch    8.0-0.el8            @anaconda         505 k
 centos-linux-release    noarch    8.4-1.2105.el8       @anaconda          25 k
 centos-linux-repos      noarch    8-2.el8              @anaconda          26 k
 centos-logos            x86_64    85.8-1.el8           @baseos           716 k

Transaction Summary
================================================================================

 

두번째 작업이 완료되면 다음으로 패키지 reinstall이 진행 됩니다

 

reinstall대상 패키지는 현재 버전과 동일한 버전의 rocky linux 패키지가 있을때 수행 됩니다

 

현재의 환경을 유지한채 대상 패키지들이 reinstall 됩니다

 

대부분의 패키지들이 reinstall 되고 제일 시간이 오래 소요 됩니다

  Running scriptlet: setup-2.12.2-6.el8.noarch                           5/2699 
  Reinstalling     : filesystem-3.8-3.el8.x86_64                         6/2699 
  Reinstalling     : urw-base35-fonts-common-20170801-10.el8.noarch      7/2699 
  Reinstalling     : xkeyboard-config-2.28-1.el8.noarch                  8/2699 
  Reinstalling     : tzdata-2021a-1.el8.noarch                           9/2699 
  Downgrading      : gnu-free-fonts-common-20120503-18.el8.noarch       10/2699

 

 

커널은 새로운 버전의 rokcy kernel이 설치 됩니다

 

버전을 유지하고 싶거나 수동으로 작업시 아래 방법을 참조하세요

 

yum 사용시 현재 running kernel은 삭제하거나 reinstall 할 수 없습니다

 

새로운버전의 커널을 설치하거나 rpm명령어를 이용하여 삭제하고 재설치 할 수 있습니다

 

 

# rpm -e --nodeps kernel-4.18.0-305.3.1.el8.x86_64.rpm

# yum install -y kernel-4.18.0-305.3.1.el8.x86_64.rpm

 

최종작업이 완료되면 아래와 같은 메시지가 출력 됩니다

 

Complete!
Subscription Manager found on system.
If you're converting from a subscription-managed distribution such as RHEL then
you may no longer need subscription-manager or dnf-plugin-subscription-manager.
While it won't hurt anything to have it on your system you may be able to safely
remove it with:

"dnf remove subscription-manager dnf-plugin-subscription-manager".

Take care that it doesn't remove something that you want to keep.

The subscription-manager dnf plugin may be enabled for the benefit of
Subscription Management. If no longer desired, you can use
"subscription-manager config --rhsm.auto_enable_yum_plugins=0" to block this
behavior.

Generating grub configuration file ...
File descriptor 3 (/dev/pts/2) leaked on vgs invocation. Parent PID 567534: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/2) leaked on vgs invocation. Parent PID 567534: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 567534: /usr/sbin/grub2-probe
File descriptor 3 (/dev/pts/2) leaked on vgs invocation. Parent PID 567534: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/2) leaked on vgs invocation. Parent PID 567534: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 567534: /usr/sbin/grub2-probe
File descriptor 3 (/dev/pts/2) leaked on vgs invocation. Parent PID 569854: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/2) leaked on vgs invocation. Parent PID 569854: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 569854: /usr/sbin/grub2-probe
File descriptor 3 (/dev/pts/2) leaked on vgs invocation. Parent PID 569854: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/2) leaked on vgs invocation. Parent PID 569854: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 569854: /usr/sbin/grub2-probe
Adding boot menu entry for EFI firmware configuration
done
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0001,0004,0002,0000,0003
Boot0000* UiApp
Boot0002* UEFI QEMU QEMU HARDDISK 
Boot0003* EFI Internal Shell
Boot0004* CentOS Linux
Boot0001* Rocky Linux

Done, please reboot your system.



A log of this installation can be found at /var/log/migrate2rocky.log

재부팅 하면

 

위와같이 rokcy linux 커널이 기본으로 선택되어 있습니다

 

 

로고도 rocky로 잘 변경 되었습니다

 

 

최종적으로 패키지를 확인 합니다

 

[root@switch ~]# rpm -qa |wc -l
1372
[root@switch ~]# rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE} - %{BUILDHOST}\n' | grep centos.org$
kernel-core-4.18.0-305.12.1.el8_4 - kbuilder.bsys.centos.org
kernel-core-4.18.0-305.3.1.el8 - kbuilder.bsys.centos.org
kernel-4.18.0-305.12.1.el8_4 - kbuilder.bsys.centos.org
kernel-modules-4.18.0-305.3.1.el8 - kbuilder.bsys.centos.org
kernel-4.18.0-305.3.1.el8 - kbuilder.bsys.centos.org
kernel-modules-4.18.0-305.12.1.el8_4 - kbuilder.bsys.centos.org

 

아직 builhost가 centos 인 패키지가 남아있으나 위에 설명드린대로 kernel입니다. 삭제하면 됩니다

 

[root@switch ~]# rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE} - %{BUILDHOST}\n' | grep centos.org$ > remove
[root@switch ~]# yum remove `cat remove` -y
No match for argument: -
No match for argument: kbuilder.bsys.centos.org
Dependencies resolved.
============================================================================================================================================================================================================
 Package                                           Architecture                              Version                                                     Repository                                    Size
============================================================================================================================================================================================================
Removing:
 kernel                                            x86_64                                    4.18.0-305.3.1.el8                                          @anaconda                                      0  
 kernel                                            x86_64                                    4.18.0-305.12.1.el8_4                                       @baseos                                        0  
 kernel-core                                       x86_64                                    4.18.0-305.3.1.el8                                          @anaconda                                     67 M
 kernel-core                                       x86_64                                    4.18.0-305.12.1.el8_4                                       @baseos                                       67 M
 kernel-modules                                    x86_64                                    4.18.0-305.3.1.el8                                          @anaconda                                     22 M
 kernel-modules                                    x86_64                                    4.18.0-305.12.1.el8_4                                       @baseos                                       22 M

Transaction Summary
============================================================================================================================================================================================================
Remove  6 Packages

Freed space: 177 M
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                    1/1 
  Erasing          : kernel-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                                1/6 
  Running scriptlet: kernel-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                                1/6 
  Erasing          : kernel-4.18.0-305.3.1.el8.x86_64                                                                                                                                                   2/6 
  Running scriptlet: kernel-4.18.0-305.3.1.el8.x86_64                                                                                                                                                   2/6 
  Erasing          : kernel-modules-4.18.0-305.3.1.el8.x86_64                                                                                                                                           3/6 
  Running scriptlet: kernel-modules-4.18.0-305.3.1.el8.x86_64                                                                                                                                           3/6 
  Erasing          : kernel-modules-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                        4/6 
  Running scriptlet: kernel-modules-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                        4/6 
  Running scriptlet: kernel-core-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                           5/6 
  Erasing          : kernel-core-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                           5/6 
  Running scriptlet: kernel-core-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                           5/6 
  Running scriptlet: kernel-core-4.18.0-305.3.1.el8.x86_64                                                                                                                                              6/6 
  Erasing          : kernel-core-4.18.0-305.3.1.el8.x86_64                                                                                                                                              6/6 
  Running scriptlet: kernel-core-4.18.0-305.3.1.el8.x86_64                                                                                                                                              6/6 
  Verifying        : kernel-4.18.0-305.3.1.el8.x86_64                                                                                                                                                   1/6 
  Verifying        : kernel-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                                2/6 
  Verifying        : kernel-core-4.18.0-305.3.1.el8.x86_64                                                                                                                                              3/6 
  Verifying        : kernel-core-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                           4/6 
  Verifying        : kernel-modules-4.18.0-305.3.1.el8.x86_64                                                                                                                                           5/6 
  Verifying        : kernel-modules-4.18.0-305.12.1.el8_4.x86_64                                                                                                                                        6/6 
Installed products updated.

Removed:
  kernel-4.18.0-305.3.1.el8.x86_64            kernel-4.18.0-305.12.1.el8_4.x86_64 kernel-core-4.18.0-305.3.1.el8.x86_64 kernel-core-4.18.0-305.12.1.el8_4.x86_64 kernel-modules-4.18.0-305.3.1.el8.x86_64
  kernel-modules-4.18.0-305.12.1.el8_4.x86_64

Complete!

 

최종 확인을 합니다

 

[root@switch ~]# rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE} - %{BUILDHOST}\n' | grep -v rockylinux.org$
gpg-pubkey-6d745a60-60287f36 - localhost
gpg-pubkey-2f86d6a1-5cf7cefb - localhost
epel-release-8-11.el8 - buildhw-x86-09.iad2.fedoraproject.org
gpg-pubkey-8483c65d-5ccc5b19 - localhost
gpg-pubkey-836f4beb-5fc97e5e - localhost
gpg-pubkey-3e1ba8d5-558ab6a8 - localhost
python3-cssselect-0.9.2-10.el8 - buildvm-14.phx2.fedoraproject.org
gpg-pubkey-307ea071-603d1059 - localhost
python3-beautifulsoup4-4.6.3-2.el8.1 - buildvm-aarch64-20.arm.fedoraproject.org
gpg-pubkey-621e9f35-58adea78 - localhost


[root@switch ~]# cat /etc/redhat-release 
Rocky Linux release 8.4 (Green Obsidian)
[root@switch ~]# cat /etc/rocky-release
Rocky Linux release 8.4 (Green Obsidian)

위와같이 rockylinux 패키지가 아닌것은 gpgkey와 epel 패키지 뿐이며 모든 패키지가 rockylinux에서 패키징한 패키지로 재 설치 되었습니다

 

 

이번에 시험버전이 다 업그레이드 되어 출제 문제가 기존과 완전히 달라짐..

 

과거 덤프는 하나도 안맞고 레드햇 공식 사이트 학습 포인트

 

  • 디렉터 기반 배포를 이해하고 이를 사용하여 작업
    • Identity 환경 파일을 사용하여 언더클라우드에 연결
    • Identity 환경 파일을 사용하여 오버클라우드에 연결
    • 템플릿 파일, 환경 파일 및 기타 리소스를 사용하여 OpenStack 환경에 관한 정보 획득
    • 컨테이너화된 서비스 사용
  • OpenStack 도메인 설정
    • 프로젝트 생성
    • 그룹 생성
    • 사용자 생성
    • 할당량 관리
  • 리소스 생성
    • 가상 머신 플레이버 생성
    • 오버클라우드에 기존 이미지 추가
    • 보안 그룹 생성
    • 키 페어 생성
  • 네트워킹 설정
    • 네트워크를 생성하여 프로젝트에 할당
    • 네트워크 라우터 설정
    • 소프트웨어 정의 네트워크 설정
    • Open Virtual Networks 사용
  • 유동 IP 주소 설정
    • 유동 IP 주소를 사용하도록 인스턴스 설정
    • 유동 IP 주소를 통해 액세스할 수 있도록 서비스 설정
  • 블록 스토리지 관리
    • 블록 스토리지 볼륨 생성
    • 블록 스토리지 볼륨을 인스턴스에 연결
    • 스토리지 볼륨 스냅샷 사용
  • Red Hat® Ceph Storage 사용
    • Ceph Storage 설정
    • Ceph Storage 모니터링
    • Ceph Storage 문제 진단 및 해결
  • 오브젝트 스토리지 사용
    • Swift 컨테이너 생성
    • Swift 컨테이너 활용
  • 공유 스토리지 사용
    • 공유 파일 시스템 생성
    • 공유 파일 시스템을 사용하도록 인스턴스 설정
  • 인스턴스 관리
    • 인스턴스 시작
    • 인스턴스를 지정된 프로젝트 및 네트워크와 연결
    • 키 페어를 사용하여 인스턴스에 연결
    • 배포 중 인스턴스 설정
  • Heat 스택 생성
    • Heat 템플릿 생성
    • 손상된 Heat 템플릿 진단 및 수정
    • Heat 스택 시작
  • 이미지 사용
    • 기존 이미지 수정
    • 커스터마이징된 이미지를 생성하여 플레이버 연결
    • 커스터마이징된 이미지에서 인스턴스 시작
    • 두 번째 컴퓨팅 노드에서 인스턴스 시작
  • OpenStack 서비스 사용
    • Identity 서비스 토큰 관리
    • RabbitMQ에서 추적 활성화
    • Ceilometer를 사용하여 통계 표시

위에 있는것들이 그대로 시험에 나온다

 

진짜 위에 내용이 그대로 시험에 나옴..해당 내용들 할줄 알면 시험 합격 할수 있음

 

취소선 한것 빼고는 내가본 시험에 나왔다

 

 

 

 

몇일전까지 잘 사용하던 건데 갑자기 아래 메시지가 출력되며 되지 정상 작동하지 않음

 

 

Traceback (most recent call last):
  File "get-pip.py", line 24226, in <module>

    main()
  File "get-pip.py", line 199, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    from pip._internal.cli.main import main as pip_entry_point
  File "/tmp/tmpNRWN7c/pip.zip/pip/_internal/cli/main.py", line 60
    sys.stderr.write(f"ERROR: {exc}")
          
                         ^
SyntaxError: 
invalid syntax

분명 잘 되던건데?....

 

pip 설치시 https://bootstrap.pypa.io/get-pip.py 파일을 내려받아 bootstrap을 진행한다

 

그런데 몇일전(정확히는 모르겠음) 에 해당 파일이 python3전용으로 변경됨...

 

해서 에러가 났다

 

python2 주소는 https://bootstrap.pypa.io/2.7/get-pip.py

 

스크립트나 소스에 해당 파일을 내려받는 부분을 수정해주니 그다음부턴 잘 작동됨.

 

개인적으로 사용하는 노트북은 manjaro 리눅스를 쓰는데 5.9커널 업데이트 후 블루투스 마우스가 계속 끈겨서 페어링을 다시 해줘야되는 상황이 발생..

 

리부팅이나 절전모드 해제시마다 반복되어 트러블 슈팅 시도

 

아래 원인을 찾음

 

 

Problems with all BLE devices on kernel 5.9+

Starting with v5.9, the kernel Bluetooth stack tries to use link-layer privacy on BLE connections. If the device works after pairing but does not survive a reboot or suspend, it is probably because of this.

To workaround [1] this issue, open /var/lib/bluetooth/<adapter mac>/<device mac>/info, remove the following lines, and restart bluetooth.service:

[IdentityResolvingKey] Key=...

x11 포워딩시 X11 forwarding request failed on channel 0 메시지 나오고 포워딩 안됨

[root@testpc ~]$ ssh -X root@192.168.7.x
root@192.168.7.x's password:
X11 forwarding request failed on channel 0

위와 같이 포워딩 실패 메시지 떨어짐

 

디버그 진행

 

[root@testpc ~]$ ssh -X root@192.168.7.x -v
OpenSSH_8.3p1, OpenSSL 1.1.1g  21 Apr 2020
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to 192.168.7.x [192.168.7.x] port 22.
debug1: Connection established.
debug1: identity file /home/root/.ssh/id_rsa type 0
debug1: identity file /home/root/.ssh/id_rsa-cert type -1
debug1: identity file /home/root/.ssh/id_dsa type -1
debug1: identity file /home/root/.ssh/id_dsa-cert type -1
debug1: identity file /home/root/.ssh/id_ecdsa type -1
debug1: identity file /home/root/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/root/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/root/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/root/.ssh/id_ed25519 type -1
debug1: identity file /home/root/.ssh/id_ed25519-cert type -1
debug1: identity file /home/root/.ssh/id_ed25519_sk type -1
debug1: identity file /home/root/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/root/.ssh/id_xmss type -1
debug1: identity file /home/root/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.3
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4
debug1: match: OpenSSH_7.4 pat OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7* compat 0x04000002
debug1: Authenticating to 192.168.7.x:22 as 'root'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:3I4Bo9LcxDzfrqX5pV1eMQ4K0dWf/31112ZzMIIeOEA
debug1: Host '192.168.7.x' is known and matches the ECDSA host key.
debug1: Found key in /home/root/.ssh/known_hosts:31
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /home/root/.ssh/id_rsa RSA SHA256:I8Ize5vPim2Q0WNnKr57G49uBrfRUu4PjePPfTyytzo
debug1: Will attempt key: /home/root/.ssh/id_dsa
debug1: Will attempt key: /home/root/.ssh/id_ecdsa
debug1: Will attempt key: /home/root/.ssh/id_ecdsa_sk
debug1: Will attempt key: /home/root/.ssh/id_ed25519
debug1: Will attempt key: /home/root/.ssh/id_ed25519_sk
debug1: Will attempt key: /home/root/.ssh/id_xmss
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/root/.ssh/id_rsa RSA SHA256:I8Ize5vPim2Q0WNnKr57G49uBrfRUu4PjePPfTyytzo
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/root/.ssh/id_dsa
debug1: Trying private key: /home/root/.ssh/id_ecdsa
debug1: Trying private key: /home/root/.ssh/id_ecdsa_sk
debug1: Trying private key: /home/root/.ssh/id_ed25519
debug1: Trying private key: /home/root/.ssh/id_ed25519_sk
debug1: Trying private key: /home/root/.ssh/id_xmss
debug1: Next authentication method: password
root@192.168.7.x's password:
debug1: Authentication succeeded (password).
Authenticated to 192.168.7.x ([192.168.7.x]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: exec
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Remote: No xauth program; cannot forward with spoofing.
X11 forwarding request failed on channel 0
Last login: Tue Jun  2 16:18:51 2020 from 192.168.0.x

debug1: Requesting X11 forwarding with authentication spoofing.

debug1: Remote: No xauth program; cannot forward with spoofing.

 

xauth 프로그램이 없어서 발생 한 문제

 

#yum install -y xorg-x11-xauth

 

이후 접속하면 debug1: Requesting X11 forwarding with authentication spoofing.

 

메시지 뜨며 잘 된다

RHCSA와 시험 환경은 비슷함 레드햇깔린 PC에 system1,system2가 있고 시험문제는 system1만 하는것도 있고 system1,2둘다 하는것도 있으니 지문을 잘 읽어야함

 

한가지 팁을 주자면 dns서버 주소에 대한 정보는 아무것도 없음...근데 dns쿼리가 필요함(웹서버설정,yumrepo설정등)

 

시험 정보에도 dns서버에 대한 정보는 주지 않음, 티밍,ipv4주소,ipv6주소만 주고 yum 서버의 주소는 도메인으로 제공...

 

처음에는 헐 뭐지? 했는데 시험pc의 dns서버 주소를 확인하여 vm에 적용하니 잘 되었다...(/etc/resolv.conf)

 

이것이 의도 한것인지 단순 시험출제 오류인지는 모르겠음...

 

시험문제 이전에 사전정보에 ipv4주소,mask,yum repo주소,example.com에 대한 아이피 대역 정보, ipt44.com(주소는 기억안나서 임의로 지정,차단할 도메인)에 대한 아이피대역 정보 들이 주어짐

 

기본적으로 server with gui깔려있으며 그래픽모드로 전환하기위해 yum repo설정 후 servier with gui를 깔 필요는 없음 그냥 isolate 그래피컬타겟 하면됨

 

기본적으로 selinux는 enforcing 상태, firewall은 enable 상태이며 이것을 끄거나 비활성화 해서는 안됨

 

시험문제 정확한건 쓸수 없고 큰 틀만 나열하자면

 

network설정 =  team디바이스 생성하고 ipv4,ipv6 주소를 수동으로 설정하기,방화벽에서 특정 주소 막고 포트포워드 하고

file share = NFS(krb5인증 사용,일반사용)해서 2가지가 나왔고 SMB(일반사용,multiuser사용) 해서 이것도 2가지 나옴

smtp = smtp relay 서버 구성하는것

아파치 설정 = 이건 3가지 나왓는데 일반호스트,v호스트,ssl 설정

db = mariadb dump파일을 받아 복원하고 해당 table에 특정값 조회후 주관식으로 쓰기

 

기억나는건 이정도고 중요한건 사전정보를 잘 읽어야 함 거기에 모든 필요한 정보가 있음.

 

예를들어 NFS문제의 경우 xxx.xxx.com 에서 접근이 가능하여야하지만 ooo.ooo.com에서는 접근 할수 없어야 한다는 조건이 달림

 

해당 도메인에 주소대역(ex 10.17.10.0/16)은 사전정보에 다 써있으며 본인은 방화벽+설정파일을 적절히 사용했음

 

exportfs에 10.17.10.0/16(rw)로 넣고 방화벽에서 차단할 대역을 rich rule drop으로 등록함

 

기본적으로 이러한 문제가 많기때문에 방화벽 사용법은 필수로 숙지하고 가야하며 firewall-config(gui)사용해도 무방함

 

또한 samba설정시 context의 변경, 아파치 설정시 기본포트 아닌 다른 포트의 사용 요구등이 있기때문에 selinux에 대한 사용방법도 숙지해야 함(semanage)

 

또한가지 주의할 점은 시험의 채점은 재부팅 후 이루어 진다

 

서비스가 대부분 설치가 되있는데 설치&시작&활성화로 외우다보니 설치되있네? 이러고 시작&활성화를 빼먹는 경우가 있음..

 

본인은 문제중 한개의 활성화를 빼먹어서 0점처리... 꼭 systemctl enable service && systemctl start service 하고 시작하길 바람..

 

아무리 설정이 완벽해도 enable안하면 0점

 

작동만 된다면 부분점수가 있으니 꼭 신경 쓰세요 작동안하면 아무리 잘해도 0점 작동만하면 설정한 부분에 대해서는 부분점수 있음

 

공부는 인터넷에 돌아다니는 문제 후기들을 봤고 외울건 외우고 이해할수 있는건 이해하는 식으로 공부했음

 

가장 중요한건 외우는걸 줄이는거고 이를 위해서는 manual이나 doc help등을 이용하여 해당값이 어디 들어있는지만 알고 있으면 상세한 옵션값은 외우질 않아도 되니 많이 도움이 됨

 

예를들면 team 디바이스 생성시 필요한 runner 가 {"runner": {"name": "activebackup"} 이건데 이거 외우실??? 물론 외울수도 있지만 기억공간의 낭비.... man teamd.conf 하면 runner항목에 해당값이 들어있고 그거 그대로 복붙해서 쓰면 됨

 

{"runner": {"name": "activebackup"} 로 외울 걸 teamd.conf로 외우니 쉽게 외울 수 있고 대부분의 값들이 이러한 매뉴얼이나 /usr/share/doc 혹은 --help등에 있으니 필요없는걸 외우느라 고생하지 말고 잘 활용 하면 됨

 

또한가지 팁은 아파치 설정할때 vhost외울필요 없음.. /usr/share/doc/httpd-버전/에 들어가면 vhost예제 파일있음으로 해당 파일 보고 그대로 하면됨

 

저런거 써도 외워야 할게 많으니 쓸대 없는 외우기만 줄여도 반은 성공...

 

시험은 금요일날 봣고 결과메일은 월요일날 왔음.

 

300점 만점에 210점 이상이면 PASS

 

 

번역 문젠지는 모르겠는데 지문이 이해가 안가는것도 있었고 rhcsa에 비하면 난이도도 높고 외울것도 많고 시간은 부족함..

 

게다가 시험비가 인상되어(이제 42만원) 한번 떨어지면 피눈물 나니 준비 잘해서 한번에 붙길 바랍니다..

 

7버전에서는 할당하면 자동으로 올라왔던거 같은데??

 

6버전에서는 스토리지에서 할당해도 fdisk 에서 안뜨는 경우가 있음 이경우에 하는 방법

 

원래 안뜨는건지 다른 이유가 있는건지 6버전은 안쓴지가 오래되서 모르겠다...아시는분 있으면 좀 알려주세요

 

먼저 scan할 host번호를 알아야함.. fc의 경우 어느 포트인지 알아야 그 포트 지정하여 scan할수 있음

 

여러가지 방법이 있는데 기존에 할당된 디스크가 있는 경우에는 아래의 방법으로 빠르게 할수 잇음

 

#cat /proc/scsi/scsi

 

현재 잡힌 디스크의 host넘버가 나옴

 

Host: scsi3 Channel: 00 Id: 00 Lun: 00

  Vendor: WDC WD30 Model: EACS-00567      Rev:

  Type:   Direct-Access                    ANSI  SCSI revision: 02

 

이런식으로..위에 예시는 3번

 

해당 호스트 넘버 알았으면 아래 명령어로 scan수행

 

# echo "- - -" > /sys/class/scsi_host/host3/scan

 

해당 채널 전체를 rescan하므로 문제가 없다면 위에 명령어로 디스크가 인식 된다.

 

이후 fdisk -l 하여 신규 디스크 확인

 

sg3_utils 패키지가 설치 되어있다면 rescan-scsi-bus.sh 실행하면 그냥 모든 scsi 호스트 리스캔 진행 함

수정중

 

내가봣던 시험내용중 기억나는것 최대한 비슷하게 썻으며 좀더 쉽게 풀수 잇는 팁 포함.

 

 

시험은 레드햇이 깔린 PC로 보며 깔린 레드햇안에 가상시스템(vm)에 시험내용을 적용하면 됩니다

 

메인PC는 root로그인이 불가

 

햇갈리는 옵션은 외울필요없고 man페이지나 --help 이용하세요~~

 

시험은 종각역 솔데스크 학원에서 봤고 저는 300점 만점에 300점 으로 합격했습니다

 

시험은 토요일날 봤고 월요일 오후에 결과 메일이 왔습니다

 

결과 메일링크타고 들어가서 본인의 레드햇 계정에 서티를 add해주면 자격증 확인이 바로 가능합니다

 

 

 

 

0.root패스워드를 xxx로 설정하시오

 

grub 메뉴에서 아무키나 눌러 카운터를 멈춘 후 해당 메뉴에서 e키누름


linux16으로 시작하는 줄에 방향키를 이용하여 커서를 갖다 대고 end키를 눌러 맨 뒷줄로 커서 이동,


이후 한칸 띄우고 rd.break 입력, Ctrl+x로 부팅 시작


부팅이 완료되면 기존 root는 /sysroot 으로 ro(읽기전용)마운트 된 상태입니다


첫번째로 /sysroot를 rw로 리마운트 해줍니다


mount -o remount,rw /sysroot


remount=마운트 해제없이 재 마운트


rw=읽기,쓰기


이후 /sysroot를 /로 만들어 줍니다


chroot /sysroot


그다음 passwd 명령어를 이용하여 passwd 변경


이후 변경된 passwd파일의 컨텍스트 값을 se리눅스에서 다시 라벨링 하기 위해 아래 파일을 만듭니다


touch /.autorelabel


이후 exit 두번 입력하시면 자동으로 재부팅되며 변경된 passwd로 로그인이 가능합니다

(컨텍스트 라벨 작업이 시간 소요됨,어느버전에서는 label 작업을 퍼센티지로 알려주지만 어느버전에서는 아무런 메시지도 안나타나므로 다운이 아니니까 기다리세요)

 

0.네트워크 설정(ip,mask,gw,dns 주소를 줫고 해당내용 설정하는것) 인터페이스는 eth0하나만 있었음.

 

nmcli,nmtui,gui,config파일 직접수정 4가지 방법중에 아무거나 편한방법으로 하시면 됩니다

 

0.호스트네임 설정

 

제시하는 hostname을 hostnamectl set-hostname {name} 으로 설정

 

0.yum repo구성

 

repo 서버 주소를 제시하여 주며 네트워크가 정상 설정 되어있어야함

 

repo파일 설정값 외우기가 귀찬으므로 아래의 방법 추천

 

#yum-config-manager --add-repo={url}

 

위에 명령어 수행하면 넣은 url주소로 자동으로 repo파일 만들어짐, gpgcheck=0 만 추가로 넣으면 구성 끝!

 

이후 yum repolist all 로 넣은 repo 가 정상적으로 enable 되어있는지, 패키지는 잘보이는지 확인

 

0번은 시험문제가 아니고 사전 준비사항?구성사항 식으로 써있던거고 해당 사항이 충족되지 않으면 시험문제 진행 자체가 불가함,

 

부팅하면 기본적으로 multiuser.target=tui모드 임, xwindow 깔려있으므로 쓰고싶으면 startx 나 systemctl isolate graphical.target 명령어 이용하여 gui 사용하면됨.

 

본인은 걍 systemctl set-default graphical.target 하고씀.. 왜냐하면 문제 풀고 재부팅을 많이 해야 하기때문에

 

근데 실제로 gui쓸일이 없어서 쓸사람만 하세요..아래 1번 문제도 그냥 시험pc에서 ssh -X 주고 하면 됨

 

 

1.LDAP 계정 인증을 받도록 구성하시오

 

서버주소,dn name,TLS사용유무,인증 방식,인증서 주소 모두 제시하여 주며 시험보는 PC 에서 ssh -X 명령어를 이용하여 vm에 접속,

 

이후 yum install authconfig-gtk 로 gui authconfig 도구 설치,

 

#authconfig-gtk

 

명령어로 gui 인터페이스로 인증을 수행하면 되며 단순히 제시된 값을 넣는 수준, 이후 apply 단 kerberos 인증의 경우 krb 패키지 설치해야함, gui 진행시 설치하라는 창이 나오고 클릭만하면 자동으로 설치됨

 

getent passwd {user} 넣어 잘 되나 확인

 

이후 제시한 user,passwd 이용하여 ssh 접속 테스트 도 해보세요

 

2. test lv의 용량을 250M로 수정하고 해당 파일시스템도 확장하세요,단 파일시스템안에 내용에는 영향이 없어야 합니다

 

vg에 남은용량이 있었고 lv용량만 수정해주면 됫었음..

 

#lvextend -L 250M -r /dev/mapper/vg-lv

 

-L은 용량을 지정, -r 은 파일시스템 resize도 같이 수행

 

-r을 안줫을시 lv용량만 늘어나며 파일시스템은 xfs_growfs(xfs) 나 resize2fs(ext4) 명령어 이용하여 따로 해줘야함

 

그냥 -r 만 주면 위에 명령어 한줄로 끝

 

3. groupvg를 만들고 sharelv를 만들어 /mnt/share 에 영구 마운트 하시오

 

단 vg pe사이즈는 8mb 여야하며 sharelv의 크기는 100개의 pe여야 합니다 또한 vfat포맺이어야 합니다

 

파티션관련된 내용은 없었으나 fdisk -l 해보니 이미 3개의 파티션이 있었음,디스크는 로컬 한개

 

차후에 다른 문제가 나올수도 있으니 확장파티션으로 만듬(차후에 swap관련 문제가 또나와서 확장으로 안만들었음 갈아 엎었어야함)

 

확장 파티션 만든후 넉넉잡아 1G 파티션 하나 생성. lvm code(8e) 사용중인 디스크이므로 파티션 작업후 partprobe 필수

 

#pvcreate /dev/vda5

 

로 해당 파티션에 pv생성

 

#vgcreate -s 8 groupvg /dev/vda5

 

로 pe사이즈 8,pv하나쓰는 vg생성 (-s 옵션이 pe사이즈 지정해줌)

 

#lvcreate -n sharelv -l 100 groupvg

 

위에 명령어 -n은 lv이름 지정 -l 은 사이즈를 pe갯수로 지정할떄 사용

 

만들어진 lv는 mapper를 통해 자동 mapped되니 fdisk -l 로 경로 확인, 보통은 /dev/mapper/{vgname}-{lvname} 으로 됨

 

만들어진 lv를 vfat 포맺 하기

 

#mkfs.vfat /dev/mapper/groupvg-sharelv

 

xfs나 ext4의 경우 mkfs.뒤에 수정하면 됨

 

포맷 후 fstab 수정

 

blkid써서 나오는 UUID로 해도 되고 mapper써도 되고..

 

장치명으로 fstab 등록시 감점이 있다고함(강사피셜) 그러나 lvm의 경우 장치명이 아니므로(장치명 ex:sda sdb 등) 변경될 가능성이 없음. 그래서 /dev경로를 지정해주어도 감점 없었음

 

본인은 mapper 명으로 썻음

 

mkdir /mnt/share

 

vi /etc/fstab

 

/dev/mapper/groupvg-sharelv /mnt/share vfat default 0 2

 

값 넣은 후 mount -a 수행하여 에러 여부 및 df -h 로 마운트 된것 확인

 

 

4. 512m의 스왑 파티션을 만들고 영구 마운트 하시오,단 기존의 파티션 정보나 스왑파일 정보가 손상되어서는 안됩니다

 

3번에서 확장이 아니고 일반 파티션 만들었으면 4개 풀차서 이문제 진행 불가, 다행이 확장 만들어서 512m파티션 하나 만들었음 코드는 82(swap) 이역시 사용중인 디스크이므로 파티션 작업후 partprobe 필수

 

 

#mkswap /dev/vda6

 

명령어로 해당 파티션 swap으로 만들기

 

fstab 등록( 위에 설명한대로 장치명 쓰면 감점이 있다고 하니 blkid 써서 UUID로 하세요)

 

UUID=58013e4a-11c0-4195-8fd8-e4b33e5b17d6 swap      swap     defaults        0 0

 

혹시나 우선순위 설정하는 문제가 나오면 defaults,pri=1 이렇게 하면 됨 높을수록 우선이며 기본값은 -1인가 -2라 1로 넣어주면 우선순위가 올라갑니다

 

이후 swapon -a 마운트

 

swapon -s 로 확인

 

5.manager 그룹을 만드시오

보조그룹이 manager인 harry유저를 만드시오

sara계정도 보조그룹이 manager 입니다

manager 권한이 없는 sarah 계정을 만드시오 sarah는 로그인이 불가능하여야 합니다

모든 계정의 패스워드는 test여야 합니다

 

그냥 말장난이고 계정관리 개념 있으시면 어떻게 바뀌어서 나오든 쉬운 문제입니다

 

#groupadd manager

 

#useradd -G manager harry

 

#useradd -G manager sara

 

#useradd -s /sbin/nologin sarah

 

패스워드는 일일히 치기 귀찬고 확인도 쉽지 않으니 아래의 방법 추천

 

echo test | passwd --stdin harry

 

echo test | passwd --stdin sara

 

echo test | passwd --stdin sarah

 

6.그룹간 공유하는 폴더를 생성하시오

 

폴더는 /share/test 이며 manager 그룹에 속한 harry, sara 유저가 읽고 쓰기(실행도)가 가능해야 합니다

 

다른 모든 유저는 아무런 권한도 없어야 하며 root는 예외입니다

 

또한 uid 642를 가진 harry2 계정도 manager그룹에 속해야 합니다

 

또한 이폴더에서 생성되는 파일에 소유자 또한 manager여야만 합니다

 

말이 좀 이상하긴한데 기억나는대로 썻음...

 

#mkdir -p /share/test (폴더생성)

 

#chgrp manager /share/test    (test폴더에 그룹소유자 변경)

 

#chmod 070 /share/test 그룹에 rwx권한 주고 나머지는 뻄

 

#chmod g+s /share/test setgid 설정 (이걸 해놓으면 root가 파일을 만들어도 해당 폴더내에서는 소유그룹이 manager로 생성됨)

 

#useradd -u 642 -G manager harry2 위에 제시한 정보로 계정 생성

 

7./etc/fstab 파일을 /var/tmp/fstab 으로 복사 한후 권한 설정을 하시오

 

harry 유저와 sarah 유저는 해당 파일을 읽고 쓸수 있고

 

sara 유저는 아무런 권한도 없어야 합니다

 

현재 또는 미래의 모든 유저들은 읽기 권한이 있어야합니다

 

보면 chmod 하나로 설정이 안되는거고 acl써야합니다

 

#setfacl -m u:harry:rw- /var/tmp/fstab

 

#setfacl -m u:sarah:rw- /var/tmp/fstab

 

#setfacl -m u:sara:--- /var/tmp/fstab

 

#setfacl -m o::r-- OR #chmod o:r-- /var/tmp/fstab

 

최종 getfacl /var/tmp/fstab 으로 확인

 

이것도 말이 엄청 꼬여서 나오는데 그냥 차근하게 읽어보고 설정을 하면 됩니다

 

8. harry 유저가 매일 14시23분에 수행하는 echo test 반복작업을 등록하시오

 

crontab 문제 입니다

 

crontab -eu harry

 

23 14 * * * /usr/bin/echo test

 

해주시면 됩니다

 

분 시 일 월 요일 순이며 안전을 위해 명령어 Full Path를 적어주시면 좋겠죠??

 

9. server.example.com 으로 시간을 동기화하는 클라이언트 설정을 하시오

 

chrony 안깔려 있으면 설치 하시면 되고 깔려있으면

 

/etc/chrony.conf 열어서 서버 수정하면 됩니다

 

pool server.example.com iburst

 

확인은 chronyc 실행하고 sources -v 로 확인

 

10. test유저가 소유한 파일을 찾아서 /root/find 폴더로 복사하시오

 

#mkdir /root/find 폴더 생성

 

#find / -user test -type f -exec cp -rp {} /root/find/ \;

 

파일을 찾으래서 타입도 줫습니다 폴더도 있었는데 그건 당연히 복사 안됫겠죠?? 감점이 없는걸 보니 지문에서 요구한 사항만 만족하면 되는것 같습니다

 

혹시 몰라서 저는 p옵션도 줫구요 p옵션안주면 복사된 파일은 root:root 이고 p를 주면 test:test 입니다

 

11. /sys/xxx 파일의 strat 가 포함된 라인을 /root/strat.txt 파일로 생성하시오

단 원본 파일이 손상되어서는 안되며 strat.txt 파일에 빈칸이 있어선 안되고 모든 줄은 원본파일 내용의 복사본이여야 합니다

 

간단합니다..

 

grep strat /sys/xxx > /root/strat.txt

 

저희 경우 해당 파일에 administrator 이런식의 줄이 엄청 많았고 해당 줄 모두 strat.txt 에 들어 갔습니다

 

혹시 띄어쓰기가 있거나하면 단어 따옴표 붙히세요 'st st' 식

 

12.  해당 저장소에서 커널을 찾아 업데이트 하시오 (주소는 제시해줌)

 

업데이트한 커널로 기본 부팅이 되어야하고 기존 커널도 삭제해서는 안됩니다

 

여러가지 방법이 있습니다

 

저는 wget {url}로 커널을 받은 후

 

 

yum localinstall {받은파일이름}.rpm 으로 설치 했습니다

 

이후 systemctl로 리붓하면 새로운 커널이 1번 과거커널이 2번 grub메뉴 자동 수정되어 있습니다

 

부팅후 yum list kernel로 2개 모두 존재하는지 확인

 

13. selinux 모드를 enforcing으로 변경하시오

 

기본모드는 permissive 였습니다

 

/etc/selinux/config 파일을 열어 SELINUX=permissive 를 SELINUX=enforcing 으로 수정 (오타조심,오타내면 정상부팅안됨)

 

이후 재부팅하셔도 되고 setenforce=1 로 enforcing 모드로 바꾸셔도 됩니다 테스트 하시려면 재부팅 추천~~

 

14.1번에서 설정한 ldap (test6이라 가정)유저로 로그인시 home폴더를 자동으로 마운트 하게 하시오

 

nfs공유중인 서버의 폴더는 server6:/usr/test6 이며 /mnt/test6으로 자동마운트 되야합니다

 

#yum install -y autofs nfs-utils 설치 ( 저의 경우엔 둘다 깔려있었음)

 

/etc/auto.master.d/xxx.autofs 파일 생성, 확장자는 꼭 autofs여야함

 

직접경로 지정을 위해 파일내용 추가

 

/- /etc/nfs.auto

 

/- 직접경로

 

/xxx/xxx 간접경로

 

/etc/nfs.auto파일을 열어 실제 마운트 옵션등을 설정

 

/mnt/test6 -rw,sync server6:/usr/test6

 

만약 여러개를 설정해야된다면(ex test1~10까지 모두)

 

autofs에 상대경로를 지정 /- = /mnt/

 

nfs.auto파일에

 

* -rw,sync server6:/usr/&

 

해주시면 됩니다

 

이후 systemctl start autofs

 

systemctl start nfs-secure

 

systemctl enable autofs

 

systemctl enable nfs-secure

 

autofs 랑 nfs-secure실행하시고 자동실행되게 enable도하세요 안그럼 재부팅하면 작동안함~~

 

df -ah 로 autofs 설정 올라와 있는것 확인.

 

이후 su - test6 해서 홈폴더 잘 보이나 확인

 

재부팅해서 한번더 확인!

 

15. /USR 폴더의 내용을 /root/usr.tar.bzip2 아카이브로 생성하시오, 단 bzip으로 압축되어야 합니다

 

tar -jcvf /root/usr.tar.bzip2 /usr

 

jcvf를 주시면 tar로 묶으면서 bzip으로 압축까지 한방에 합니다..

 

file /root/usr.tar.bzip2 명령어로 bzip2 로 압축된 파일인지 한번더 확인

 

햇갈리면 man tar

 

 

 

 

 

+ Recent posts