생각보다 다루는데 오래오래 걸리네요 :)
하하하;; 이걸 하루만에 다 하려고 했다니~!
4. Connection (tag : 누구나 쓸수 있지만, 필요할 때만 쓰게됨)
Action PluginsCache PluginsCallback Plugins- Connection Plugins
- Inventory Plugins
- Lookup Plugins
- Shell Plugins
- Strategy Plugins
- Vars Plugins
- Filters
- Tests
기본적으로 Connection 자체를 수정할 일은 거의 없습니다.
왜냐하면, 기본으로 제공하는 connection은 ssh로 (옛날 옛날에는 paramiko) 를 그대로 이용하여 22번 포트로 현재의 계정 정보를 들고 접속하기 때문입니다.
보통 이 구성으로 수행하면 아무런 문제가 없기 때문이죠
다만 특수한 환경 (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 연결용도 쓸수도 있겠네요.
- buildah - Interact with an existing buildah container
- chroot - Interact with local chroot
- docker - Run tasks in docker containers
- funcd - Use funcd to connect to target
- iocage - Run tasks in iocage jails
- jail - Run tasks in jails
- libvirt_lxc - Run tasks in lxc containers via libvirt
- local - execute on controller
- lxc - Run tasks in lxc containers via lxc python library
- lxd - Run tasks in lxc containers via lxc CLI
- netconf - Use netconf to run command on network appliances
- network_cli - Use network_cli to run command on network appliances
- paramiko_ssh - Run tasks via python ssh (paramiko)
- persistent - Use a persistent unix socket for connection
- saltstack - Allow ansible to piggyback on salt minions
- ssh - connect via ssh client binary
- winrm - Run tasks over Microsoft’s WinRM
- zone - Run tasks in a zone instance
<<< 이건 희망사항입니다~!
0 개의 댓글:
댓글 쓰기