<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Redhat on Joonlog</title><link>https://joonlog.github.io/tags/redhat/</link><description>Recent content in Redhat on Joonlog</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Tue, 04 Nov 2025 09:00:00 +0900</lastBuildDate><atom:link href="https://joonlog.github.io/tags/redhat/index.xml" rel="self" type="application/rss+xml"/><item><title>Ansible Playbook으로 Docker 설치</title><link>https://joonlog.github.io/p/ansible-playbook%EC%9C%BC%EB%A1%9C-docker-%EC%84%A4%EC%B9%98/</link><pubDate>Tue, 04 Nov 2025 09:00:00 +0900</pubDate><guid>https://joonlog.github.io/p/ansible-playbook%EC%9C%BC%EB%A1%9C-docker-%EC%84%A4%EC%B9%98/</guid><description>&lt;blockquote&gt;
&lt;p&gt;RedHat 계열 리눅스에서 Ansible로 도커 설치하는 방법&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="ansible-설정"&gt;Ansible 설정
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;install_docker.yaml&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10대 이상의 리눅스에 도커를 설치하는 playbook&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;span class="lnt"&gt;28
&lt;/span&gt;&lt;span class="lnt"&gt;29
&lt;/span&gt;&lt;span class="lnt"&gt;30
&lt;/span&gt;&lt;span class="lnt"&gt;31
&lt;/span&gt;&lt;span class="lnt"&gt;32
&lt;/span&gt;&lt;span class="lnt"&gt;33
&lt;/span&gt;&lt;span class="lnt"&gt;34
&lt;/span&gt;&lt;span class="lnt"&gt;35
&lt;/span&gt;&lt;span class="lnt"&gt;36
&lt;/span&gt;&lt;span class="lnt"&gt;37
&lt;/span&gt;&lt;span class="lnt"&gt;38
&lt;/span&gt;&lt;span class="lnt"&gt;39
&lt;/span&gt;&lt;span class="lnt"&gt;40
&lt;/span&gt;&lt;span class="lnt"&gt;41
&lt;/span&gt;&lt;span class="lnt"&gt;42
&lt;/span&gt;&lt;span class="lnt"&gt;43
&lt;/span&gt;&lt;span class="lnt"&gt;44
&lt;/span&gt;&lt;span class="lnt"&gt;45
&lt;/span&gt;&lt;span class="lnt"&gt;46
&lt;/span&gt;&lt;span class="lnt"&gt;47
&lt;/span&gt;&lt;span class="lnt"&gt;48
&lt;/span&gt;&lt;span class="lnt"&gt;49
&lt;/span&gt;&lt;span class="lnt"&gt;50
&lt;/span&gt;&lt;span class="lnt"&gt;51
&lt;/span&gt;&lt;span class="lnt"&gt;52
&lt;/span&gt;&lt;span class="lnt"&gt;53
&lt;/span&gt;&lt;span class="lnt"&gt;54
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- name: Install Docker CE on web/was hosts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; hosts: webwas
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; become: &lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; gather_facts: yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; vars:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; conflict_pkgs:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - docker.io
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - docker-doc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - docker-compose
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - docker-compose-v2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - podman-docker
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - containerd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - runc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; docker_pkgs:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - docker-ce
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - docker-ce-cli
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - containerd.io
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - docker-buildx-plugin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - docker-compose-plugin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tasks:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - name: 01. Remove conflicting packages &lt;span class="o"&gt;(&lt;/span&gt;ignore &lt;span class="k"&gt;if&lt;/span&gt; not present&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; package:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name: &lt;span class="s2"&gt;&amp;#34;{{ conflict_pkgs }}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; state: absent
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - name: 02. Install prerequisites
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; package:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name: yum-utils
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; state: present
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; when: &lt;span class="nv"&gt;ansible_os_family&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;RedHat&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - name: 03. Add Docker CE yum repository &lt;span class="o"&gt;(&lt;/span&gt;official&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; yum_repository:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name: docker-ce-stable
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; description: Docker CE Stable - &lt;span class="nv"&gt;$basearch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; baseurl: &lt;span class="s2"&gt;&amp;#34;https://download.docker.com/linux/centos/&lt;/span&gt;&lt;span class="nv"&gt;$releasever&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;$basearch&lt;/span&gt;&lt;span class="s2"&gt;/stable&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; gpgcheck: yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; gpgkey: https://download.docker.com/linux/centos/gpg
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; enabled: yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; when: &lt;span class="nv"&gt;ansible_os_family&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;RedHat&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - name: 04. Install Docker CE packages
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; package:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name: &lt;span class="s2"&gt;&amp;#34;{{ docker_pkgs }}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; state: present
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - name: 05. Enable and start Docker
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; service:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name: docker
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; state: started
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; enabled: yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;task01: 기존 충돌 패키지 제거&lt;/li&gt;
&lt;li&gt;task02: 필수 패키지 설치&lt;/li&gt;
&lt;li&gt;task03: Docker CE 패키지 리포지토리 추가
&lt;ul&gt;
&lt;li&gt;OS 버전에 맞는 리포지토리 자동 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;task04: 도커 설치&lt;/li&gt;
&lt;li&gt;task05: 도커 서비스 시작 및 자동 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Linux 환경에서 Docker 설치 (RedHat/Ubuntu 계열)</title><link>https://joonlog.github.io/p/linux-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-docker-%EC%84%A4%EC%B9%98-redhat/ubuntu-%EA%B3%84%EC%97%B4/</link><pubDate>Mon, 01 Sep 2025 09:00:00 +0900</pubDate><guid>https://joonlog.github.io/p/linux-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-docker-%EC%84%A4%EC%B9%98-redhat/ubuntu-%EA%B3%84%EC%97%B4/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.docker.com/engine/install" target="_blank" rel="noopener"
&gt;https://docs.docker.com/engine/install&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="redhat-계열"&gt;RedHat 계열
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 기존 설치되어있는 컨테이너 런타임 삭제&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; sudo dnf remove &lt;span class="nv"&gt;$pkg&lt;/span&gt; -y&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# docker repo 추가&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum install -y yum-utils
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# docker 설치&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 현재 사용자를 docker 그룹에 추가해서 root 권한 없어도 docker 사용 가능하게 설정&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;usermod -a -G docker &amp;lt;user&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; --now docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="ubuntu-계열"&gt;Ubuntu 계열
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 기존 설치되어있는 컨테이너 런타임 삭제&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; sudo apt-get remove &lt;span class="nv"&gt;$pkg&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# docker repo 설정&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get install ca-certificates curl
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;install -m &lt;span class="m"&gt;0755&lt;/span&gt; -d /etc/apt/keyrings
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod a+r /etc/apt/keyrings/docker.asc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# docker repo 추가&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;deb [arch=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;dpkg --print-architecture&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;. /etc/os-release &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;UBUNTU_CODENAME&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;$VERSION_CODENAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; stable&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# docker 설치&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 현재 사용자를 docker 그룹에 추가해서 root 권한 없어도 docker 사용 가능하게 설정&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;usermod -a -G docker &amp;lt;user&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; --now docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><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><item><title>RHCSA 8 후기</title><link>https://joonlog.github.io/p/rhcsa-8-%ED%9B%84%EA%B8%B0/</link><pubDate>Tue, 31 Dec 2024 09:00:00 +0900</pubDate><guid>https://joonlog.github.io/p/rhcsa-8-%ED%9B%84%EA%B8%B0/</guid><description>&lt;p&gt;&lt;img src="https://joonlog.github.io/p/rhcsa-8-%ED%9B%84%EA%B8%B0/RHCSA8Review1.png"
width="1040"
height="801"
srcset="https://joonlog.github.io/p/rhcsa-8-%ED%9B%84%EA%B8%B0/RHCSA8Review1_hu_97ed4acb428f63c9.png 480w, https://joonlog.github.io/p/rhcsa-8-%ED%9B%84%EA%B8%B0/RHCSA8Review1_hu_d5c2e150c6aa131c.png 1024w"
loading="lazy"
alt="RHCSA8Review1.png"
class="gallery-image"
data-flex-grow="129"
data-flex-basis="311px"
&gt;&lt;/p&gt;
&lt;p&gt;작년에 본 시험에 대해 이제야 후기를 남긴다&lt;/p&gt;
&lt;p&gt;당시 나는 이제 막 인프라로 진로를 튼 상황이었기 때문에 첫 목표를 RHCSA 취득으로 정했다.&lt;/p&gt;
&lt;p&gt;내 리눅스 실력은 기본 명령어만 약간 아는 정도였고 서비스 구축은 할 줄 몰랐다.&lt;/p&gt;
&lt;p&gt;udemy 강의(&lt;a class="link" href="https://www.udemy.com/course/unofficial-linux-redhat-certified-system-administrator-rhcsa-8/?couponCode=KEEPLEARNING" target="_blank" rel="noopener"
&gt;https://www.udemy.com/course/unofficial-linux-redhat-certified-system-administrator-rhcsa-8/?couponCode=KEEPLEARNING&lt;/a&gt;)를 들으면서 기본 지식을 쌓았고, 문제들은 다른 블로그들을 전부 뒤져봤다.&lt;/p&gt;
&lt;p&gt;영어로 되어 있지만 요즘은 크롬 확장 프로그램 trancy 사용하면 한글로 더 편하게 볼 수 있을 것이다.&lt;/p&gt;
&lt;p&gt;RHCSA가 절대적인 난이도로 보면 취득한 자격증 중에 가장 난이도가 낮지만, 난 이 시험이 가장 어려웠다. 1번 탈락하여 재시험 보기도 했고.&lt;/p&gt;
&lt;p&gt;원래는 재시험 기회가 없었지만, 2023년부터 정책이 바뀐건지 retake 기회가 1번 주어졌고, 여기서 합격할 수 있었다.&lt;/p&gt;
&lt;p&gt;자격증 유효 기간은 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;&lt;strong&gt;여권 준비 필수&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;시험 장소는 에티버스러닝이었는데, 칸막이가 쳐진 작은 방에 2명이 시험 볼 수 있게 되어 있었다. 입장해서 준비된 노트북에 로그인을 하면 감독관이 채팅으로 말을 걸어온다. 준비된 웹캠에 여권을 보여주고 웹캠을 가지고 방 안을 꼼꼼히 살펴보도록 요구한다.&lt;/p&gt;
&lt;p&gt;이후 시험을 시작하고 VM으로 된 노드 2개를 가지고 작업하면 된다.&lt;/p&gt;
&lt;h3 id="유의사항"&gt;유의사항
&lt;/h3&gt;&lt;p&gt;모든 문제 풀이들은 재부팅 후에도 동작해야 한다.&lt;/p&gt;
&lt;p&gt;예를 들어 httpd 서비스를 기동했다면, systemctl start httpd만 해선 안되고 반드시 enable 까지 해줘야 한다. 그래서 start와 enable을 같이 해주는 systemctl enable &amp;ndash;now httpd를 사용하면 좋다.&lt;/p&gt;
&lt;p&gt;서비스 이외에도 디스크 마운트, podman 문제도 마찬가지다. 따라서 문제를 다 풀었다면 노드들을 재부팅하고 잘 동작하는지 확인해야 한다.&lt;/p&gt;
&lt;h3 id="출제-문제"&gt;출제 문제
&lt;/h3&gt;&lt;p&gt;RHCSA : &lt;a class="link" href="https://www.redhat.com/ko/services/training/ex200-red-hat-certified-system-administrator-rhcsa-exam?section=%EA%B0%9C%EC%9A%94" target="_blank" rel="noopener"
&gt;https://www.redhat.com/ko/services/training/ex200-red-hat-certified-system-administrator-rhcsa-exam?section=개요&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;작년에는 RHCSA 8버전으로 시험을 봤었고 지금은 아마 9버전으로만 볼 수 것이다. 그때가 8에서 9로 넘어가는 과도기였는데 9버전 후기들로 파악할 수 있는 문제가 많지 않아 8버전으로 시험을 봤었다. 문제가 크게 바뀌진 않은 것 같지만 2~3문제정도에서 사용하는 서비스가 아예 달랐던 것으로 기억한다.&lt;/p&gt;
&lt;p&gt;구버전 문제기도 하고, 문제 풀이들은 다른 블로그에도 많으니 어떤 문제가 나왔는지 정도만 공유하겠다.&lt;/p&gt;
&lt;p&gt;루트 비밀번호 초기화&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;부팅 프로세스 rd.break로 인터럽트&lt;/li&gt;
&lt;li&gt;/sysroot 마운트 후 /sysroot 루트로 설정 후 비번 재설정&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;yum repository 구성&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;문제에서 주어지는 baseurl을 가지고 repo파일 생성&lt;/li&gt;
&lt;li&gt;dnf repolist all로 설정 됐는지 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ip, gateway, dns등 네트워크 인터페이스 구성&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;nmtui 사용&lt;/li&gt;
&lt;li&gt;NetworkManager 서비스 재시작&lt;/li&gt;
&lt;li&gt;nmcli con show, nmcli dev status 같은 명령어로 잘 설정 됐는지 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;hostname 설정&lt;/p&gt;
&lt;p&gt;cronjob 생성&lt;/p&gt;
&lt;p&gt;user/group 관리 명령어&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;user에 group 추가, user nologin 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;파일/디렉토리 권한 명령어&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;파일/디렉토리 user:group 권한 설정&lt;/li&gt;
&lt;li&gt;setgid 같은 파일/디렉토리 특수권한 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;chrony 설정&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;timedatectl 사용&lt;/li&gt;
&lt;li&gt;chrony.conf 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;grep 후 리다이렉션 명령어&lt;/p&gt;
&lt;p&gt;selinux 켜져있고 82번 포트로 httpd 동작중일 때 오류 해결&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;semanage port 명령어로 http프로토콜 82포트 허용&lt;/li&gt;
&lt;li&gt;방화벽에도 82포트 등록&lt;/li&gt;
&lt;li&gt;httpd, firewall 재시작&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;디스크 생성 후 마운트&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fdisk로 디스크 붙이고 vg, lv, ext4 초기화, 마운트 작업&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;swap 파티션 만들고, 재부팅하면 자동으로 on 되게 설정&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fdisk, fstab, swapon 작업&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;del&gt;vdo 구축&lt;/del&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RHCSA 9 에는 안나오는 걸로 알고 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;del&gt;autofs 구축&lt;/del&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RHCSA 9 에는 안나오는 걸로 알고 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;podman 루트리스 방식으로 호스트의 디렉터리와 연결된 컨테이너를 재부팅 후 자동으로 실행되게 설정&lt;/p&gt;
&lt;p&gt;쉘 스크립트 파일 작성&lt;/p&gt;
&lt;h3 id="참고-블로그"&gt;참고 블로그:
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://not-to-be-reset.tistory.com/491" target="_blank" rel="noopener"
&gt;https://not-to-be-reset.tistory.com/491&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://blog.naver.com/PostView.naver?blogId=asd7005201&amp;amp;logNo=222412331243&amp;amp;parentCategoryNo=&amp;amp;categoryNo=15&amp;amp;viewDate=&amp;amp;isShowPopularPosts=true&amp;amp;from=search" target="_blank" rel="noopener"
&gt;https://blog.naver.com/PostView.naver?blogId=asd7005201&amp;logNo=222412331243&amp;parentCategoryNo=&amp;categoryNo=15&amp;viewDate=&amp;isShowPopularPosts=true&amp;from=search&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://whitestudy.tistory.com/83" target="_blank" rel="noopener"
&gt;https://whitestudy.tistory.com/83&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://blog.naver.com/moonlitare/222418066071" target="_blank" rel="noopener"
&gt;https://blog.naver.com/moonlitare/222418066071&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>