<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rhce on Joonlog</title><link>https://joonlog.github.io/tags/rhce/</link><description>Recent content in Rhce on Joonlog</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Sun, 05 Jan 2025 09:00:00 +0900</lastBuildDate><atom:link href="https://joonlog.github.io/tags/rhce/index.xml" rel="self" type="application/rss+xml"/><item><title>RHCE9 후기</title><link>https://joonlog.github.io/p/rhce9-%ED%9B%84%EA%B8%B0/</link><pubDate>Sun, 05 Jan 2025 09:00:00 +0900</pubDate><guid>https://joonlog.github.io/p/rhce9-%ED%9B%84%EA%B8%B0/</guid><description>&lt;p&gt;&lt;img src="https://joonlog.github.io/p/rhce9-%ED%9B%84%EA%B8%B0/RHCE9Review1.png"
width="1040"
height="804"
srcset="https://joonlog.github.io/p/rhce9-%ED%9B%84%EA%B8%B0/RHCE9Review1_hu_5618ff86a2d4d9f5.png 480w, https://joonlog.github.io/p/rhce9-%ED%9B%84%EA%B8%B0/RHCE9Review1_hu_a60c89ea1cb8debf.png 1024w"
loading="lazy"
alt="RHCE9Review1.png"
class="gallery-image"
data-flex-grow="129"
data-flex-basis="310px"
&gt;&lt;/p&gt;
&lt;p&gt;올해 초에 들은 클라우드 교육 과정 중 Ansible이 있었는데, 기왕 RHCSA를 가지고 있는 거 RHCE까지 따기로 했다. 아마 RHCSA를 취득해놓은 상태가 아니라면 굳이 RHCE까지는 따려고 하지 않았을 것 같다. RHCSA와 마찬가지로 1번의 retake 기회가 있고, 자격증 유효 기간은 3년이다.&lt;/p&gt;
&lt;h3 id="할인-쿠폰"&gt;할인 쿠폰
&lt;/h3&gt;&lt;p&gt;시험 비용이 꽤 비싼 편인데, 할인 쿠폰도 많이 없고 할인율도 15%로 크진 않다.&lt;/p&gt;
&lt;p&gt;이 쿠폰은 RedHat 시험에 합격하면 나오는 쿠폰으로 1달? 3달? 동안 3명까지 쓸 수 있다. 그래서 종종 사람들이 커뮤니티에 공유하기도 하는데, 나는 redhat reddit에서 주워서 사용했다.&lt;/p&gt;
&lt;p&gt;redhat discount reddit으로 검색하면 쿠폰 공유하는 게시물을 찾을 수 있을 것이다.&lt;/p&gt;
&lt;h3 id="공부-방법-및-기간"&gt;공부 방법 및 기간
&lt;/h3&gt;&lt;p&gt;나에게는 RHCE가 RHCSA보다 쉽게 느껴졌다. 문제 자체도 더 심화된 리눅스 문제가 나오는 게 아닌, RHCSA 문제에 Ansible 문법만 더한 정도였다. 만약 RHCSA를 가지고 있고, 어떤 교육이든 강의든 Ansible을 배워 봤다면 쉽게 취득할 수 있을 거라고 생각한다. 하루 4시간씩 2주 정도 공부했던 것 같다.&lt;/p&gt;
&lt;h3 id="시험-환경"&gt;시험 환경
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;여권 준비 필수&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;시험 장소는 에티버스러닝이었는데, 칸막이가 쳐진 작은 방에 2명이 시험 볼 수 있게 되어 있었다. 입장해서 준비된 노트북에 로그인을 하면 감독관이 채팅으로 말을 걸어온다. 감독관 요구에 따라 웹캠에 여권을 보여주고 방 안을 검사 맡으면 된다.&lt;/p&gt;
&lt;p&gt;시험 시간은 4시간으로 매우 긴 편이다. ansible로 여러 노드를 제어해야 되기 때문이다. 연습을 충분히 했다면, 꼼꼼하게 풀고 에러도 거의 없을 때를 기준으로 2시간 반 정도면 전부 풀 수 있다.&lt;/p&gt;
&lt;h3 id="시험-팁"&gt;시험 팁
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;모든 문제 풀이들은 재부팅 후에도 동작해야 한다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;채점할 때 모든 노드를 재부팅 후 채점하기 때문에 service가 enable 되어 있는지, 디스크가 마운트되어 있는지, 파일들이 정상적으로 생성되었는지 잘 체크해야 한다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;doc를 보면서 풀어라.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ansible은 설치 시에 docs가 내장되어 있다. 문제 풀기 전 내가 사용할 모듈의 docs를 확인하는 습관을 들인다면 오류를 줄일 수 있을 것 이다. 나는 모든 문제를 doc를 열고 보면서 풀었다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ansible-doc &amp;lt;모듈명&amp;gt;&lt;/code&gt;으로 문서를 열고 &lt;code&gt;/EXAMPLES&lt;/code&gt;를 통해 예시 검색&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;alias 지정이 시간 단축이 도움이 된다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;자주 입력해야 하는 &lt;code&gt;ansible&lt;/code&gt;, &lt;code&gt;ansible-playbook&lt;/code&gt;, &lt;code&gt;ansible-playbook --syntax-check&lt;/code&gt;, &lt;code&gt;ansible-doc&lt;/code&gt; 등의 명령어들을 &lt;code&gt;~/.bashrc&lt;/code&gt;에 &lt;code&gt;alias ans='ansible'&lt;/code&gt;, &lt;code&gt;alias anp=’ansible-playbook’&lt;/code&gt;과 같이 지정해 놓으면 좋다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ansible-navigator 사용 가능하다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;RHCE9 버전부터 사용 가능한 걸로 알고 있다. 내 경우엔 ansible-navigator로 배우지 않아 navigator가 더 어색해서 쓰지 않았지만, 처음부터 navigator을 쓰는 걸로 배웠다면 tui 환경이니 더 직관적으로 쉬울 것 같다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;변수는 inventory에 직접 지정하는 게 더 빠를 때가 있다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;문제에서 ip와 같은 각 노드마다 고정된 변수를 가지고 ansible 작업을 해야할 때, 팩트와 매직 변수에서 필요한 변수를 찾기 어렵다면, 노가다식으로 inventory 각 노드에 변수를 직접 지정하는게 빠르다.&lt;/p&gt;
&lt;p&gt;어떻게든 문제를 푸는 게 더 중요하다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;팩트, 매직 변수에서 필요한 정보를 어떻게 찾는지 연습해야 한다.&lt;/p&gt;
&lt;p&gt;팩트 검색 예시: &lt;code&gt;ansible localhost -m setup -a 'filter=ansible_devices'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;매직변수 검색 예시: &lt;code&gt;ansible localhost -m debug -a 'var=hostvars[&amp;quot;ansible1.example.com&amp;quot;]'&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="출제-문제"&gt;출제 문제
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Ansible 설치 및 구성&lt;/li&gt;
&lt;li&gt;Repository 구성&lt;/li&gt;
&lt;li&gt;컬렉션 설치&lt;/li&gt;
&lt;li&gt;패키지 설치&lt;/li&gt;
&lt;li&gt;rhel-system-roles 사용&lt;/li&gt;
&lt;li&gt;Role 생성 및 사용&lt;/li&gt;
&lt;li&gt;Ansible Galaxy로 Role 설치&lt;/li&gt;
&lt;li&gt;Ansible Galaxy로 Role 사용&lt;/li&gt;
&lt;li&gt;파티션 생성 및 사용
&lt;ul&gt;
&lt;li&gt;when 조건 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;hosts 파일 생성
&lt;ul&gt;
&lt;li&gt;매직변수 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;파일 배포
&lt;ul&gt;
&lt;li&gt;inventory 변수 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;웹 컨텐츠 디렉터리 배포
&lt;ul&gt;
&lt;li&gt;파일 생성 후 setype이 httpd_sys_content_t와 같이 웹서버 디렉터리 맞는지 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;하드웨어 리포트 배포
&lt;ul&gt;
&lt;li&gt;팩트 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ansible vault 생성&lt;/li&gt;
&lt;li&gt;사용자 계정 생성
&lt;ul&gt;
&lt;li&gt;위에서 생성한 vault 사용&lt;/li&gt;
&lt;li&gt;패스워드에 password_hash 걸었는지 체크&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;vault 키 변경&lt;/li&gt;
&lt;li&gt;cronjob 생성&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>