• ansible 명령어에서 사용할 옵션들

1. -i (--inventory-file) → 적용될 호스트들에 대한 파일

  • 8.8.8.8 IP를 list 파일에 저장하면, 8.8.8.8에만 ansible 명령을 내림

    $ cd ~
    
    # 인벤토리 파일에 8.8.8.8 저장
    $ echo -e "8.8.8.8" > list
    $ cat list
    8.8.8.8
    
    # list 파일에 적힌 8.8.8.8에만 ping을 실행 (8.8.8.8은 테스트 IP)
    $ ansible all -i ~/list -m ping -k
    SSH password:
    8.8.8.8 | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        },
        "changed": false,
        "ping": "pong"
    }

2. -m (--module-name) → 모듈을 선택

  • ping은 ping 명령어가 아니라 python 모듈
  • 이미 사용자가 만들어 놓은 모듈을 사용하던가, 아니면 스스로 직접 만들어서 사용 가능

3. -k (--ask-pass) → 패스워드를 물어보도록 설정

  • ssh 접속할 때 암호가 있어야 접속이 가능

  • 암호가 저장되어 있지 않기 때문에 -k 옵션을 사용하지 않는 경우 ssh 접근이 안되어서 fail 발생

    # -k 옵션 사용 X -> 암호가 없기 때문에 ssh 접속에 실패하여 명령어 실행 X
    $ ansible all -m ping
    8.8.8.8 | UNREACHABLE! => {
        "changed": false,
        "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).",
        "unreachable": true
    }
    
    # -k 옵션 사용 -> 암호를 입력하여 ssh 접속 가능 (명령어 실행)
    $ ansible all -m ping -k
    SSH password:
    8.8.8.8 | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        },
        "changed": false,
        "ping": "pong"
    }

4. -K (--ask-become-pass) → 관리자로 권한 상승

  • root 계정을 사용하는 경우 사용 X
  • 유저 계정을 사용하는 경우 특정 명령어는 관리자 권한 상승이 필요

5. --list-hosts → 적용되는 호스트들을 확인

  • 명령어를 실행하기 전에 적용받을 호스트들을 확인 가능

  • 그룹에 따라 달라짐으로 실수를 방지하기 위해 미리 확인 필요

    # all은 모든 호스트들을 의미 -> 전체 호스트 확인 가능
    $ ansible all -m ping --list-hosts
      hosts (1):
        8.8.8.8
    
    # nginx 그룹에 적용된 호스트들을 확인 가능
    $ ansible nginx -m ping --list-hosts
      hosts (1):
        8.8.8.8
    
    # list 파일에 있는 호스트만 확인 가능
    $ ansible all -i ~/list -m ping --list-hosts
      hosts (1):
        8.8.8.8

+ Recent posts