2018년 1월 1일 월요일

[Ansible] Plugin 살펴 보기 3편 (Connection)


connection에 대한 이미지 검색결과
생각보다 다루는데 오래오래 걸리네요 :)
하하하;; 이걸 하루만에 다 하려고 했다니~!


4. Connection (tag : 누구나 쓸수 있지만, 필요할 때만 쓰게됨)

그러면 다음 주제 Connection 을 다루어 볼까요?
기본적으로 Connection 자체를 수정할 일은 거의 없습니다.
( 쓸 곳이 별로 없다 ??)
쓸모가 없다에 대한 이미지 검색결과

왜냐하면, 기본으로 제공하는 connection은 ssh로 (옛날 옛날에는 paramiko) 를 그대로 이용하여 22번 포트로 현재의 계정 정보를 들고 접속하기 때문입니다.

network port number에 대한 이미지 검색결과

보통 이 구성으로 수행하면 아무런 문제가 없기 때문이죠

다만 특수한 환경 (windows, 네트워크 장비, 통신 장비)에서는 특수한 프로토콜을 사용하는 경우가 있습니다. 이때 개별 호스트 별로 세팅을 해주는 것으로 충분합니다.

수정하는 방법은 크게..


#1. 실행에 옵션으로 넣기  

해당 내용들은 ansible-playbook --help 를 참조하면 볼수 있습니다 :)

  Connection Options:
    control as whom and how to connect to hosts
    -k, --ask-pass      ask for connection password
    --private-key=PRIVATE_KEY_FILE, --key-file=PRIVATE_KEY_FILE
                        use this file to authenticate the connection
    -u REMOTE_USER, --user=REMOTE_USER                        connect as this user (default=None) 
    -c CONNECTION, --connection=CONNECTION                        connection type to use (default=smart)
< 생략 >

그러면 현재 계정으로 touch를 실행해서 흔적을 남기는 코드를 사용해서 remote_user가 잘 되는지 확인해 보겠습니다.~!

[ 테스트 코드 ]

1
2
3
4
5
6
7
8
---
- name: Touch file
  hosts: nodes
  gather_facts: no

  tasks:
    - name: Touch per hosts
      command: 'touch $LOGNAME'

우선 기본 계정(vagrant)에서 실행해 보겠습니다.





실행이 끝나고 나면, 107번에 접속해서 vagrant 파일이 생성되었는지 확인해 봅니다 :)



잘 되었네요~!!

그러면 유저를 변경해서 'root'로 실행해 볼까요?




root로 잘 생성된 것을 확인할 수 있습니다.
이처럼 실행에서 인자를 변경해서 실행해 볼수 있습니다. 다른 방법으로는 파일 자체에 입력하는 방법이 있습니다.


#2. 파일에 적용해 놓기 

 1) /etc/ansible/hosts
   - 한줄에 그대로 입력
      192.168.1.10 ansible_connection = ssh         ansible_user = root 

   - var로 따로 작성해서 넣기
       [nodes]
       192.168.1.[101:110]

       [nodes:var]
       ansible_connection = ssh         ansible_user = root   

 2) 플레이북 자체에 입력하기
    remote_user : root
    connection : ssh 

한번 플레이북에 자체에 입력해서 돌려 볼까요?

[ 변경된 테스트 코드 ]

1
2
3
4
5
6
7
8
9
---
- name: Touch file
  hosts: nodes
  gather_facts: no
  remote_user: root << 추가함 

  tasks:
    - name: Touch per hosts
      command: 'touch $LOGNAME'

리모트 유저를 root로 입력했으니, 그대로 실행해 봅니다.



현재 유저는 vagrant인데 리모트에는 root로 작성된 것을 확인할 수 있습니다 :)



추가정보
Connection에 사용할 수 있는 플러그인은 다음과 같습니다..그러나 과연 자주 쓸만한게 있는지 모르겠네요. winrm이랑 docker말고는 하하하;;아 saltstack 연결용도 쓸수도 있겠네요.
뻘쭘에 대한 이미지 검색결과

이번 주말까지 하면, 아마도 plugin을 마무리 할수 있겠네요~! :)
<<< 이건 희망사항입니다~!

빠잉에 대한 이미지 검색결과



0 개의 댓글:

댓글 쓰기

 
Copyright © . 시스템/네트워크 자동화 전문가 블로그 - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger