728x90
반응형
SMALL

ansible 8

Ansible Part. 7 (Condition)

Condition 이번엔 조건문에 대해서 알아보자. Ansible에서는 when이라는 키워드를 사용한다. 바로 예제를 보자. - name: Example hosts: all become: true vars: users: - name: john shell: /bin/bash enabled: true - name: alice shell: /bin/sh enabled: false - name: claud shell: /bin/bash enabled: true - name: henry shell: /bin/sh enabled: false - name: jeremy shell: /bin/bash enabled: true - name: may shell: /bin/sh enabled: false tasks: - n..

Ansible Part. 6 (Loop)

Loop Ansible Playbook을 작성할 때도 물론 Loop를 사용할 수 있다. 그리고 Ansible에서 기존 방식과 새롭게 생겨난 방식이 있는데 둘 다 알아보겠지만 앞으로 Deprecated되고 더 이상 사용하지 않게 될 가능성도 있으니 앞으로는 새롭게 생겨난 방식으로 코드를 작성해보자. with_ 아직은 Deprecated 되지 않았지만 추천하지 않는 구 방식인 with_을 살펴보자. - name: Playbook hosts: ubuntu become: true tasks: - name: "Create groups" group: name: "{{ item }}" state: "present" with_items: - backend - frontend - devops 위 코드를 보면 group을..

Ansible Part. 5 (Variables)

Variables Ansible에서 변수를 사용하는 방법은 다양하다. 그 중 몇가지를 알아보는 시간을 가져보자. inventory 파일 다음과 같이 inventory 파일을 작성해보자. ubuntu 그룹에 원하는 변수를 아래처럼 이어 작성하면 된다. [amazon] amazon1 ansible_host=43.202.58.98 ansible_user=ec2-user amazon2 ansible_host=3.38.182.30 ansible_user=ec2-user [ubuntu] ubuntu1 ansible_host=ec2-43-201-253-181.ap-northeast-2.compute.amazonaws.com ansible_user=ubuntu user_name=cwchoiit user_comment=..

Ansible Part. 4 (Handler)

Handler 핸들러는 이벤트 기반으로 동작하는 Task. 예를 들어, 지금까지는 Tasks 내부에 여러 Task를 정의하고 순차적으로 실행이 됐는데, 만약 어떤 Task가 다른 Task에 의존성이 있어야 하는 경우 그 의존성을 만족하여 실행하게 하는 게 쉽지 않다. 이를 해결하는 방법 중 하나가 Handler라고 생각하면 된다. 예시를 들어보자. 만약, 내가 Nginx 서버 설정을 변경했으면 서버 설정이 변경됐으니 Nginx를 재실행해야 변경 사항이 적용되는데 서버 설정을 변경하고 Ansible이 변경을 감지했을 때 재실행하게 하고 싶을 때 Handler를 사용하면 된다. 실습 파일 구조가 다음과 같이 되어 있다. 여기서 default 파일이 Nginx 서버 설정 파일인데 이 파일을 보자. defaul..

Ansible Part. 3 (Playbook)

Playbook Ansible로 무언가를 실행하고 작업할 때 여러 방법이 있다고 했는데 그 중 Adhoc 방법을 다뤄봤고 이번에 다룰 내용이 Playbook이다. Playbook은 YAML 파일로 되어있는데 하나씩 뜯어보자. 우선 디렉토리 구조는 다음과 같다. Inventory 이 파일은 저번 포스팅에서 다룬 인벤토리 관련 파일이다. 이번에는 딱 하나의 파일만 존재한다. [amazon] amazon1 ansible_host=54.180.201.128 ansible_user=ec2-user amazon2 ansible_host=13.124.98.155 ansible_user=ec2-user [ubuntu] ubuntu1 ansible_host=ec2-43-203-218-29.ap-northeast-2.co..

Ansible Part. 2 (Adhoc)

이전 시간에 Inventory 파일들을 만들어보고 알아보았다. 그럼 이 파일을 어떻게 수행하고 어떻게 실행해야 하는걸까? 여러 방법이 있지만 그 중 하나인 Adhoc 방법에 대해 알아보자. Adhoc 쉽게 말하면, ansible이라는 명령어를 통해 수행하는 CLI 방식이라고 생각하면 된다. 형식은 다음과 같이 생겼다. ansible [host-pattern] [-m module] [-a 'module options'] [-i inventory] host-pattern: 그룹명을 의미한다. -m module: Adhoc 명령어를 통해 실행할 ansible 모듈을 의미한다. -a module options: 모듈에 특정 옵션을 부여할 경우 -i inventory: 특정 인벤토리 파일의 경로 ping 모듈 ..

Ansible Part. 1 (Inventory)

이제 서버 형상 관리 도구인 "Ansible"을 사용해보자. Ansible을 사용하기에 있어 가장 먼저 이해해야 하는 개념은 Inventory이다. Inventory 인벤토리란 Ansible을 사용하는 것은 특정 서버에 대해 형상 관리를 하기 위함인데 그렇다는 것은 특정 서버에 대한 정보가 필요하다. 그 정보를 관리하는 파일을 'Ansible'에서는 Inventory라고 한다. 이 Inventory는 그룹 기능을 지원하는데 예를 들어 내가 Linux 운영체제의 배포판 중 하나인 Ubuntu 서버를 3개를 관리하고 있다고 하면 Ubuntu라는 그룹을 만들어서 해당 그룹에 3개의 서버를 모두 할당할 수 있다. 그럼 그룹으로 실행해야 하는 명령어나 상태 체크같은 것들이 가능해지니 효율적인 관리가 될 수 있겠다..

패커(Packer), Ansible 설치 및 설정

Packer란 Packer는 이미지 빌더 도구이다. 여기서 이미지란 Docker나 AWS EC2 Image와 같은 그 이미지를 말한다. AMI 같은 경우 AWS에서 사용할 수 있지만 이 Packer는 이미지를 여러 플랫폼에서 사용할 수 있게 만들어준다. Packer 설치하기 공식 문서를 참조하면 각자의 운영체제에 맞게 설치할 수 있다. Install | Packer | HashiCorp Developer Explore Packer product documentation, tutorials, and examples. developer.hashicorp.com 나는 macOS 사용중이므로 다음 명령어를 통해 설치한다. brew tap hashicorp/tap brew install hashicorp/tap/..

728x90
반응형
LIST