공유할 서비스 선택

TECH


TECH

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

페이지 정보

작성자 LeeHyongDong 아이디로 검색 전체게시물 댓글 0건 조회 2,650회 좋아요 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 목록
번호 제목 작성자 작성일 조회수
84 OS OSworker 아이디로 검색 전체게시물 04-20 29
Diagram, Architect 등 서버의 구성에 대해 그림그리실때 무엇을 사용하시나요?

카테고리 : OS

29 0
작성자 : OSworker 24/04/20
83 OS OSworker 아이디로 검색 전체게시물 04-14 56
[교육] RH174 : Managing CentOS Migrations and RHEL Upgrades

카테고리 : OS

56 0
작성자 : OSworker 24/04/14
82 OS OSworker 아이디로 검색 전체게시물 04-03 766
[보안취약점] XZ유틸즈에서 발견된 백도어 `CVE-2024-3094`

카테고리 : OS

766 0
작성자 : OSworker 24/04/03
81 OS OSworker 아이디로 검색 전체게시물 03-30 105
레드햇 자격증 시험을 집에서~ 원하는 곳에서 볼수있는거 알고계셨나요?

카테고리 : OS

105 0
작성자 : OSworker 24/03/30
80 OS OSworker 아이디로 검색 전체게시물 03-24 172
RHEL7 to RHEL8 leapp으로 마이그레이션 하는 방법에 대해~

카테고리 : OS

172 0
작성자 : OSworker 24/03/24
79 OS OSworker 아이디로 검색 전체게시물 03-17 143
Convert2RHEL를 사용하여 CentOS 7.9 에서 RHEL7.9로 전환해보겠습니다.

카테고리 : OS

143 0
작성자 : OSworker 24/03/17
78 OS OSworker 아이디로 검색 전체게시물 02-28 252
RHEL8부터는 네트워크 본딩을 구성하려면 nmcli 유틸리티를 사용해야 합니다. 레드햇 권고입니다.

카테고리 : OS

252 0
작성자 : OSworker 24/02/28
77 OS OSworker 아이디로 검색 전체게시물 02-19 396
[질문] free 메모리에서 Used가 너무 높게 나오는데, ps 명령어에는 사용율이 없습니다.

카테고리 : OS

396 0
작성자 : OSworker 24/02/19
76 OS OSworker 아이디로 검색 전체게시물 02-05 421
1월31일에 발표된 보안취약점 CVE-2024-21626에 대해 알아보겠습니다.

카테고리 : OS

421 0
작성자 : OSworker 24/02/05
75 OS OSworker 아이디로 검색 전체게시물 01-31 438
OS 백업 아직도 3rd part 사용하시나요? 이제는 OS 에 포함된 ReaR 사용해보세요~!

카테고리 : OS

438 0
작성자 : OSworker 24/01/31
Total 84건
게시물 검색

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