Ansible을 이용한 스크립트 실행 방법
여러 서버에서 동일한 스크립트를 실행해야하는 상황에서 Ansible을 이용하여 간단하게 진행하는 방법을 설명하려고 합니다.
- Ansible 설치
간단하게 apt install로 설치
sudo apt install ansible
-
접근하고자 하는 서버의 정보를 hosts 파일에 ip또는 host를 등록
-
호스트 서버에 접근을 위한 설정
3-1. public key 생성
아래 명령어로 퍼블릭키를 생성하고 ./ssh 경로에 생성된 id_rsa의 값을 접근하고자 하는 호스트 서버의 authorized_keys에 등록한다
ssh-keygen -t rsa
3-2. private key 지정
AWS의 EC2접근을 위해 패스워드 설정을 하는 경우도 있지만 보안상 pem키를 이용하는 경우가 많음
그럴때는 ansible_ssh_private_key_file 을 이용해서 경로를 지정함
[testsvr:vars]
ansible_ssh_private_key_file = ~/test.pem
[testsvr]
10.10.6.144
- playbook 작성
로컬에 존재하는 스크립트파일을 리모트 서버로 가져가서 실행하는 playbook을 yaml 파일로 작성
---
- name: "Script Start"
hosts: all
become: yes
become_method: sudo
vars:
local_path: /home/ubuntu
remote_path: /home/ubuntu
tasks:
- name: "Script Send"
copy:
src: "{{ local_path }}/script.sh"
dest: "{{ remote_path }}/script.sh"
owner: ubuntu
group: ubuntu
mode: '0755'
- name: "Script run"
ignore_errors: yes
shell:
cmd: |
{{ remote_path }}/script.sh
- playbook 실행
ansible-playbook -i <hosts 경로> <playbook 파일>
위와 같이 작성하고 실행하면 여러서버에서 한번에 스크립트를 실행 시킬 수 있습니다.
Author And Source
이 문제에 관하여(Ansible을 이용한 스크립트 실행 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jiyeon_hong/Ansible을-이용한-스크립트-실행-방법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)