공유할 서비스 선택

TECH


TECH

OS [Linux] ansible 환경설정 및 애드혹

페이지 정보

작성자 LeeHyongDong 아이디로 검색 전체게시물 댓글 0건 조회 146회 좋아요 0회 작성일 21-08-24 12:09

본문

본문은 ansible 환경설정 및 애드혹 사용법을 서술하는 글로 ansible에 대한 설명은 아래 링크에서 확인할 수 있다.

http://www.chlux.co.kr/bbs/board.php?bo_table=board02&wr_id=148&sca=OS 


목차 

1. ansible 인벤토리 관리

2. ansible 구성 파일 관리

3. ansible adhoc 사용 방법

4. 테스트 과정 에러 목록 및 해결


1. ansible 인벤토리 관리

  1.1. 인벤토리의 정의

    인벤토리는 ansible에서 관리할 호스트 리스트를 정의한다. 

    호스트는 그룹으로 할당하여 집합적으로 관리할 수 있으며 하위 그룹을 그룹하여 상위 그룹을 생성할수 있다.

    호스트는 여러 그룹의 멤버가 될 수 있으며 인벤토리는 인벤토리에서 정의하는 호스트 및 그룹에 적용하는 변수를 설정할 수 있다.


  1.2. 정적 인벤토리에 관리 대상 호스트 지정

    default 관리 호스트 파일은 /etc/ansible/hosts 이며 인벤토리 위치 설정을 변경하지 않으면 해당 파일을 참조하여 관리한다.

 

    - ansible 파일 

    3536544db6926c4f1b4e6d6c91660469_1629774568_2263.png
    /etc/ansible의 hosts에 설정을 추가하여 관리 대상을 설정한다. 

 

    - 관리대상 설정 

    3536544db6926c4f1b4e6d6c91660469_1629776007_1621.png
    설정은 []안에 group명 하단에 ip혹은 hostname을 추가한다 hostname을 설정할경우 /etc/hosts로 설정이 되어있어야 한다.

    group을 다시 group으로 생성할 수 있으며 :children을 group명 뒤에 붙여줘야 정상적으로 인식한다.

     

    - ping 테스트 

    3536544db6926c4f1b4e6d6c91660469_1629776990_9251.png
    설정이 정상적으로 되어있을 경우 ping테스트 결과가 SUCCES로 출력이 된다. 

    없는 ip인 test3으로 ping테스트를 하면 UNREACHABLE으로 출력이 되며 에러 msg를 출력한다. 

 

2. ansible 구성 파일 

  2.1. ansible의 구성

    ansible 패키지는 /etc/ansible/ansible.cfg에 있는 기본 구성파일을 제공한다. 이 파일은 ansible을 실행할때 다른 구성파일이 없으면 실행된다. 

    ansible 명령어를 실행할때 구성파일이 존재하는 디랙토리에서 ansible 명령어를 실행하면 해당 구성파일을 사용한다. 

    - 기본 구성 파일 위치 

    3536544db6926c4f1b4e6d6c91660469_1629777755_7792.png
    ansible.cfg에 많은 설정값이 있으며 중요 설정값만 환경 구성으로 따로 설정이 가능하다. 

     

    - 자주 사용되는 지시문 

    3536544db6926c4f1b4e6d6c91660469_1629778250_5605.png 

    해당 설정은 자주 사용되는 설정으로 이외에도 다양하게 설정값이 존재한다. 

 

  2.2. ansible 환경 설정

    ansible을 실행할때 ansible.cfg 파일이 현재 디렉터리에 있는 경우 글로벌 설정 대신 사용된다.

    글로벌 환경 설정을 사용해도 되지만 개별 환경설정을 생성하여 사용하는것을 권장하고 있다.
    

    - 현재 사용 config 확인 

    3536544db6926c4f1b4e6d6c91660469_1629785405_1034.png 

    ansible --version을 통해 현재 버전 및 설정을 확인할 수 있다.

    해당 설정에서 config file을 보면 설정파일이 없는 디렉토리에서는 글로벌 환경설정을 사용하지만 

    디렉토리에 ansible.cfg 파일이 있으면 해당 설정파일을 config file로 사용하는것을 확인할 수 있다. 

 

    - ansible.cfg 설정 

    3536544db6926c4f1b4e6d6c91660469_1629785682_7331.png
    환경설정의 예시로 inventory는 호스트 그룹 위치로 인벤토리 파일이나 인벤토리 디렉토리를 지정할수 있다. 

    remote_user = 접속 계정을 변경하는 설정값으로 기본 설정은 root이다. 

    forks = ansible을 실행할때 한번에 몇개의 호스트를 동시에 실행할지 지정하는 옵션이다. 

    ask_pass = ansible 실행과정에 ssh 암호를 요청하게 설정한다. 기본 설정은 false이며 ssh 공개키 인증을 사용하지 않을경우 true로 설정해야한다. 

    become = 접속 계정으로 연결후 자동으로 관리 계정으로 사용자를 전환할지 기본 설정은 false이며 become_user를 설정하지 않으면 root로 연결된다. 

    become_method = 사용자 전환 방식 기본설정은 sudo이며 su로 설정이 가능하다. 

    become_user = 관리 호스트로 전환할 사용자

    become_ask_pass = 사용자 전환 할때 암호를 요청하는지 여부 기본값은 false이며 만약 sudo 혹은 su로 접근할때 암호가 필요할경우 true로 설정해야함 

     

     

3.ansible adhoc 사용 방법

  3.1. 애드혹 명령이란

    애드혹 명령은 추후 재사용을 위하여 별도의 파일로 저장하지 않고 한번의 ansible 작업을 신속하게 실행하는 방법이다. 

    애드혹 명령은 신속한 테스트 및 변경이 쉽다 

 

  3.2. 애드혹 명령 실행 

    - ping 모듈 테스트 

    3536544db6926c4f1b4e6d6c91660469_1629791633_0678.png
    ansible <hostsgroup명> -m <module>  -a "<module options>" 

    예시용 애드혹으로 ping 모듈을 사용하면 해당 그룹에 있는 호스트에 ping테스트를 진행한다. 

 

    - command 테스트

    3536544db6926c4f1b4e6d6c91660469_1629940176_2741.png 

    -m 옵션을 넣지 않을경우 command 모듈이 사용되며 -a  옵션에 "실행 명령어"로 사용할수 있다.

 

     이 외에도 다양한 모듈이 있으며 대표적인 모듈만 설명드리겠습니다.

    - 자주 쓰이는 모듈 

    3536544db6926c4f1b4e6d6c91660469_1629941130_3946.png 

    상세한 설명은 http://docs.ansible.com/ansible/latest/modules/modules_by_category.html 에서 확인할 수 있습니다.

 

4. 테스트 과정 에러 목록 및 해결 

  4.1. ssh-copy-id 미 실행

    - 에러 메시지

    3536544db6926c4f1b4e6d6c91660469_1631851685_4914.png 

    ssh를 통해 host에 접근하는데 패스워드를 요청해서 해당 서버에 접근 실패 해결 방법은 2개의 방법이 있다.

    ◎ 공개키 이용        

        ssh-keygen 명령어로 공개키를 생성후 ssh-copy-id 명령어로 해당 서버에 전달

    ◎ ansible.cfg 파일 수정

        ansible 설정 파일에 ask_pass = true 설정 추가하여 ansible 사용할때 접근 계정의 패스워드를 입력할수있다.

   

  4.2. 리스트에 없는 호스트

    - 에러 메시지

    3536544db6926c4f1b4e6d6c91660469_1631854166_4764.png 

    ansible 호스트 파일에 없어서 발생하는 에러 메시지

 

  4.3. "Missing sudo password"
    - 에러 메시지

    3536544db6926c4f1b4e6d6c91660469_1631854351_7655.png 

    해당 메시지가 발생하는 원인은 admin 계정이 wheel 그룹에 속해있지 않거나 sudo 접근 단계에서 password를 요청해서 발생한 원인이다.

    

    - 151 서버 sudoers 설정

    3536544db6926c4f1b4e6d6c91660469_1631854442_1402.png 

    해당 파일을 수정해 wheel 그룹은 sudo 명령어를 사용할때 password를 요청하지 않게 변경

 

    sudo를 사용할때 password를 요청하지 않을경우 보안이 취약해지기 때문에 해당 설정을 변경하지 않고 ansible 명령어를 사용할때 password를 요청하게 설정이 가능하다.

 

    - 현재 설정 및 결과

    3536544db6926c4f1b4e6d6c91660469_1631854889_5223.png 

    해당 패스워드 입력은 모든 서버 접근에 사용하며 다른 패스워드가 있을경우 그룹을 나눠 실행해야 한다.

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
100 OS LeeHyongDong 아이디로 검색 전체게시물 10-20 13
[Linux] NFS 동작 아키텍쳐 및 포트 변경

카테고리 : OS

13 0
작성자 : LeeHyongDong 21/10/20
99 Middleware 미들웨어 아이디로 검색 전체게시물 10-20 14
(Kubernetes-5) 신규VM 생성, kubectl 설치 후 접속 방법

카테고리 : Middleware

14 0
작성자 : 미들웨어 21/10/20
98 Middleware 미들웨어 아이디로 검색 전체게시물 10-05 50
(Kubernetes-4) docker 설치 & 삭제하기

카테고리 : Middleware

50 0
작성자 : 미들웨어 21/10/05
97 OS LeeHyongDong 아이디로 검색 전체게시물 09-28 54
[Linux] ansible 플레이북 작성 및 실행

카테고리 : OS

54 0
작성자 : LeeHyongDong 21/09/28
96 Middleware 미들웨어 아이디로 검색 전체게시물 09-23 77
(Kubernetes-3) prometheus & Grafana 활용하여 모니터링 구성하기

카테고리 : Middleware

77 0
작성자 : 미들웨어 21/09/23
95 Middleware 미들웨어 아이디로 검색 전체게시물 09-06 131
(Kubernetes-2) 오라클 클라우드로(무료 VM) 쿠버네티스 (OKE) 생성 및 Nginx 기동

카테고리 : Middleware

131 0
작성자 : 미들웨어 21/09/06
94 Middleware 미들웨어 아이디로 검색 전체게시물 08-26 171
(Kubernetes-1) Kubernetes 아키텍처 흐름도 와 개념 정리

카테고리 : Middleware

171 0
작성자 : 미들웨어 21/08/26
열람중 OS LeeHyongDong 아이디로 검색 전체게시물 08-24 147
열람중
[Linux] ansible 환경설정 및 애드혹

카테고리 : OS

147 0
작성자 : LeeHyongDong 21/08/24
92 ETC Leesangwoo 아이디로 검색 전체게시물 08-24 111
[ MariaDB ] MariaDB Replication

카테고리 : ETC

111 0
작성자 : Leesangwoo 21/08/24
91 Middleware 미들웨어 아이디로 검색 전체게시물 08-11 249
(weblogic 활용-2) 리눅스에 VNC 설치 하여 UI모드로 Weblogic 콘솔모드 접속

카테고리 : Middleware

249 0
작성자 : 미들웨어 21/08/11
Total 100건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top