이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

반응형

클라우드/Ansible 21

Ansible 원격지 파일 가져오기 (fetch 모듈)

파일 가져오기 (fetch 모듈) managed node에서 control node로 파일 가져오기 fetch 모듈 사용. playbook 예제 --- - hosts: all remote_user: root become: true tasks: - name: file move to control node fetch: src: /temp/sample.txt dest: ./managedNodeFile.txt flat: yes "src:" 복사할 파일 경로 managed node 경로 "dest:" 붙여넣기할 파일 경로 control node 경로 "flat: yes" flat yes 설정을 하지 않으면 dest 경로에 src 경로전체가 복사됨. playbook 실행 ansible-playbook -i host..

Ansible command(shell) 실행

command(shell) 실행 (shell 모듈) playbook 예제 --- - hosts: all remote_user: root become: true tasks: - name: execute the script shell: ./test.sh args: chdir: /temp executable: /bin/bash "shell:" shell script 실행 "chdir" cd 명령과 동일함. 경로 이동. "executable:" 실행 shell을 변경함. shell 변경하지 않으면 default로 sh shell로 실행됨. playbook 실행 ansible-playbook -i host.ini ./testplaybook Managed node에서 결과 확인 script가 실행되서 sample...

Ansible file 전달 (copy 모듈)

managed node에 file 전달 (copy 모듈) 먼저 sample file을 생성함. test.sh 파일 #!/bin/bash echo "ansible playbook Test!!!!!" > sample.txt playbook 예제 --- - hosts: all remote_user: root become: true tasks: - name: store file to remote server copy: src: /root/ansible_test/temp/test.sh dest: /temp/test.sh "become: true" become은 특정 사용자로 전환(become)할지 여부확인 true 설정 시 sudo 명령과 동일함. 해당 설정 없으면 errno 13 permission denied..

Ansible directory 생성 (file 모듈)

managed node에 directory 생성 (file 모듈) playbook 예제 --- - hosts: all remote_user: root become: true tasks: - name: Creates directory file: path: /temp state: directory "become: true" 옵션 become은 특정 사용자로 전환(become)할지 여부확인 true 설정 시 sudo 명령과 동일함. 해당 설정 없으면 errno 13 permission denied 오류 발생함. "file: " state 사용 시 해당 경로에 directory가 없다면 directory 생성 playbook 실행 ansible-playbook -i host.ini ./testplaybook M..

06. Ansible lookup

Ansible lookup Ansible lookup 이란? Ansible은 다양한 Plugin을 제공하고 있음. plugin 종류는 아래와 같음. Action plugins Become plugins Cache plugins Callback plugins Cliconf plugins Connection plugins Docs fragments Filter plugins Httpapi plugins Inventory plugins Lookup plugins Modules Module utilities Netconf plugins Shell plugins Strategy plugins Terminal plugins Test plugins Vars plugins 이 중 lookup에 대해 알아보겠음. 공식 ..

05. Ansible Role

Ansible Role Ansible Role 이란? Ansible에서는 "Role"을 사용하여 일반적인 방식으로 ansible 코드를 더 쉽게 재사용하는 방법을 제공함. role은 인프라를 프로비저닝하고, 애플리케이션을 배포하는 등의 모든 작업에 대해 변수, 파일, 템플릿 등의 기타 리소스들을 표준화된 디렉토리 구조로 패키징함. 다시 정리하면, role은 쉬운 공유, 휴대성 및 재사용을 위해 특정 구조로 배열된 yaml 작업파일 및 지원 항목들의 모음임. Ansible Role template 생성 1) roles directory를 먼저 생성해줘야함. 2) ansible-galaxy 명령어 사용 ansible-galaxy install [ROLE_NAME] ansible-galaxy install -..

04. Ansible Playbook

Ansible Playbook Playbook 이란? Inventory 파일에서 정의된 Server에서 무엇을 해야할지를 정의한 것이 Playbook임. 즉 자동화 절차를 기술한 코드 파일 코드 Set을 의미함. YAML 포맷으로 표현되며 프로그래밍 언어나 스크립트가 아닌 설정이나 프로세스에 대한 모델에 대한 정의를 표현한 최소한의 문법으로 구성되어있음. playbook의 목표는 호스트의 그룹을 잘 정의된 Ansible내에서 테스크로 불리는 역할(Role)에 매핑해주는 것. Playbook 파일 파일명에 대한 규칙은 없음. 임의의 이름으로 playbook 파일을 생성해서 ansible-playbook 명령으로 실행하면 됨. [명령어] ansible-playbook "playbook 파일 이름" Playb..

03. Ansible inventory

Ansible Inventory inventory 란? 자동화 관리 대상인 Managed Node 즉 Server 목록이 작성되어 있음. Managed Node의 IP address, host 정보, 변수와 같은 정보 저장. Managed Nodes는 그룹화 하여 관리할 수 있음. 그룹은 하위 그룹을 포함할 수 있으며 한 호스트는 여러 그룹에 포함될 수 있음. inventory의 경우 목표가 host를 그룹화 하는 것임. default inventory 파일 경로 /etc/ansible/hosts inventory 파일 변경 ansible-playbook 명령어에서 -i 로 inventory 지정 가능 ex) ansible-playbook test.yml -i managed_server1 -i manag..

02. Ansible 설치

Ansible 설치 목표 CentOS 7.5에 Ansible 설치 0. Ansible 설치 요구 사항 Control Node [Linux/Unix Host] Python2 (2.7이상) or Python 3 (3.5이상) SSH (22포트) 서버 방화벽 또는 ACL Rule 허용 [Windows] 최소 PowerShell 4.0이상 & .NetFramwork 4.0 이상 (3.0버전은 winRM memory hotfix 적용 필요) WinRM (5986 포트) 서버 방화벽 또는 ACL Rule 허용 Windows 2008 R2 SP1 이상 WinRM 활성화 Managed Node [Linux/Unix Host] Python2 (2.6이상) or Python 3 (3.5이상) Python 2.5이전 버전 ..

반응형