Devops

· Devops
오랜만에 동료가 Docker 빌드를 하다가 에러가 나서 잠깐 봐주게 되었는데, 도커파일에서 실행한 명령어 결과들이 나오지 않았다. ( 순식간에 떴다가 사라졌다..) 분명히 기억하기로는 과거에는 도커파일에서 실행하는 명령어 결과를 통해서 디버깅을 하곤 했었는데 말이다. 최신 버전의 도커 버전으로 업데이트되면서 변경된 건가 해서, 구버전의 도커로 다시 수행해 보니 역시 빌드 명령어 결과가 보였다. ( 한번 수행한 태스크는 cache로 스킵되기 때문에 명령어 결과를 다시 보기 위해 --no-cache 명령어 추가하였다.) 최신버전: 25.0.3, 구버전 : 20.10.3 찾아보니 --progress라는 옵션을 통해 명령어 결과를 전달 하는데 버전이 업데이트 올라가면서 기본 설정에서 옵션으로 변경된 듯 하다. ..
· Devops
앤서블의 단점을 꼽자면? Ansible의 장점은 너무나도 많지만, 제가 생각하는 가장 큰 단점은 다른 사람과의 협업이 불편하다고 생각합니다. 왜냐하면 앤서블은 agentless방식으로 ssh로만 동작하기 때문에 버전관리 및 권한관리가 어렵습니다. 플레이북을 Git을 통해 형상관리를 할 수는 있지만, 사용자의 권한을 제약하고 플레이북을 실행을 추적하는 데 있어서 어려움이 존재합니다. 앤서블은 CLI로 동작하기 때문에 사용하는 데 있어서 어느 정도 러닝커브가 있기도 하며 플레이북을 실행시킬 수 있는 서버를 제공해야 합니다. 하지만, 세마포어(Semaphore)라는 앤서블 UI 오픈소스를 사용하면 아래와 같은 기능들로 앤서블의 단점들을 보완할 수 있다고 생각합니다 (뮤텍스와 세마포어의 세마포어가 아님주의) 빌..
· Devops
국내의 경우, 서버를 운영 환경에서 관리하다보면 한국인터넷진흥원에서 등에서 제공하는 보안 취약점 항목들을 마주칠 것입니다. 입사 1년차때가 생각이 납니다. 선임을 도와 CSAP 인증을 진행하고 있었습니다. 수십대의 서버를 다루고 항목이 워낙 많다보니 결국 권한을 잘못 부여하였고, 설정파일을(pwquality.conf)을 잘못 수정하여 SSH 접속이 되지 않는 큰 실수를 해버렸습니다.( chown -R 명령어를 / 하위에 해버렸다.. 다행히 Snapshot이 있어, 복구는 했었다.) 그때, 앤서블을 활용하였다면 시간과 실수를 많이 줄일 수 있었는데 말입니다. 이번주차는 앤서블을 통해 보안설정 및 모니터링을 자동화 실습을 해보도록 하겠습니다.1. 보안설정 자동화1.1 패스워드 변경 주기 설정하기(chage)..
· Devops
앤서블 롤(Roles) 롤은 관리/재사용의 목적으로 "플레이북 내용을 기능 단위로 나눈 모듈 단위를 말합니다. 앤서블 갤럭시를 통해 롤을 공유하고 사용자들이 만든 잘 짜인 롤을 가져올 수도 있습니다. 롤 생성하기 ansible-galaxy 명령어로 롤을 생성하고 확인할 수 있습니다. # 롤 생성 # : ansible-galaxy role init --init-path mkdir roles ansible-galaxy role init --init-path ./roles myrol # 롤 생성 확인 role list --roles-path roles - myrole, (unknown version) tree roles 앤서블 롤의 구조는 다음과 같은 구성요소로 구성되어 있습니다. 앤서블 롤은 용도에 맞게 디..
· Devops
1. 반복문 Ansible Loops 반복문을 사용하면 동일한 모듈을 사용하는 작업을 여러 번 작성하지 않아도 됩니다. ex) 서비스에 필요한 여러 개의 포트를 방화벽에 추가할 때, 1.1 단순 반복문 반복문을 사용하여 ansible.builtin.service 모듈을 통해 여러 개의 서비스를 구동해봅니다. loop 작업을 반복해야 하는 목록을 정의합니다. {{ item }} 해당하는 값을 item 변수로 사용할 수 있습니다. check-services.yml --- - hosts: all tasks: - name: Check sshd and rsyslog state ansible.builtin.service: name: "{{ item }}" state: started loop: - sshd - rsy..
· Devops
가시다님의 주관하시는 앤서블 스터디(a101)의 내용 정리입니다. 앤서블로 시작하는 인프라 자동화 책의 내용이 포함되어 있습니다. Ansible이란? 테라폼과 함께 가장 인기 있는 오픈소스 IT자동화 도구로, IT업무를 코드 기반으로 작성하여 환경이 다르더라도 동일하게 적용될 수 있도록 돕는 역할을 합니다. 2015년 10월 레드햇이 인수하여 개발하고 관리하고 있습니다. 실습을 위해 제어노드(Control Node) 1대와 관리노드(Manged Node) 3대를 구성하고, Ansible 설정과 기본 사용을 해봅니다. Ansible의 다음과 같은 특징이 있습니다. No 에이전트(Agentless) 기존 자동화 도구(Puppet, Chef)와 같이 자동화 관리 대상 서버(Manged Node)에 별도의 에이..
· Devops
개요 Harbor는 오픈소스 이미지 레지스트리로 쿠버네티스와 같은 컨테이너 환경에서 중요한 인프라이니 만큼 가용성이 중요하다. 고객의 Harbor의 가용성 요구사항을 위해 아래 두 가지 방법을 고려하였다. 1. 고가용성(HA) 구성 2. 예비(DR) 하버 구성 첫 번째 방법은 Harbor의 HA(고가용성)을 구성하는 것이다. Harbor는 컨테이너 형태의 docker-compose, Helm chart의 두 가지 설치만을 지원한다. 그렇기 때문에 Harbor에서 내부에서 사용되는 nginx와 같은 stateless 한 서비스들은 레플리카 수를 늘려 쉽게 이중화가 되지만, Harbor가 사용하는 Redis와 Postgres는 HA를 자체적으로 지원하지 않기 때문에 직접 구성하여 External Databa..
· Devops
목표 ArgoCD Image Updater를 이용해서 GitOps가 아닌 RegistryOps CD를 구축합니다. Harbor(Private Registry)와 연동하여 Helm Application을 배포 해봅니다. ECR의 경우 포스팅을 잘해주셔서 아래 글을 참고하시면 될 것 같습니다 https://velog.io/@junsugi/Argo-CD-Image-Updater-사용하기-with.-AWS-EKS#결론 설치 argocd image updater를 설치합니다. kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/argocd-image-updater/stable/manifests/install.yaml # 설치 확인 ..
장성필(hackjap)
'Devops' 카테고리의 글 목록