티스토리 뷰
서버가 여러 대 있을 때, 동일한 유저를 생성해서 관리하기는 쉽지 않다.
일단, 만들기가 어렵고 오래 걸린다. 특히 패스워드가 1234, abcd 같이 간단하지 않고
십 수 자리에 대소문자 영/특수문자가 섞여있기 때문에 정말 쉽지 않다.
따라서, Ansible 을 사용하면 매우 편리하게 할 수 있다!
파일 구성은 아래와 같다
inventory는 playbook이 적용될 호스트들을 의미하고(인벤토리를 명시하지 않으면 /etc/ansible/hosts 가 기본
inventory로 사용됨)
playbook은 서버들에 적용할 동작들을 명시하는 스크립트이다.
vars.yml에는 사용자의 아이디와 패스워드를 명시해서 playbook에서 이를 참조해서 사용한다.
ansible.cfg는 작성자의 서버에 특별히 필요한 설정들이 있었기에 만든 파일이므로 없어도 무관하다.
실제 운영중인 서버의 설정이기 때문에 중요한 부분은 모두 가려놓았으므로, 자신의 서버에 맞게
값을 넣으면 되겠습니다.
inventory.yml
[all:vars]
ansible_connection=ssh
ansible_ssh_user="<SSH 접속아이디>"
ansible_ssh_pass="<SSH 접속패스워드>"
ansible_ssh_common_args: '-o UserKnownHostsFile=/dev/null'
[lab_containers]
<서버아이디> ansible_host=127.0.0.1 ansible_port=<포트>server_id=<서버아이디>
<서버아이디> ansible_host=<IP> ansible_port=<포트>server_id=<서버아이디>
<서버아이디> ansible_host=<IP> ansible_port=<포트>server_id=<서버아이디>
<서버아이디> ansible_host=<IP> ansible_port=<포트> server_id=<서버아이디>
<서버아이디> ansible_host=<IP> ansible_port=<포트> server_id=<서버아이디>
<서버아이디> ansible_host=<IP> ansible_port=<포트> server_id=<서버아이디>
[lab_containers:vars]
[local]
<서버아이디> ansible_host=127.0.0.1 ansible_port=<포트> server_id=<서버아이디>
playbook.yml
---
- hosts: lab_containers
become: true
vars_files:
- <디렉토리 경로>/vars.yml
tasks:
- name: "Add lab_user group"
become: true
group:
name: lab_user
state: present
- name: "Add Users with password"
become: true
user:
name: "{{ item.name }}"
uid: "{{ item.uid }}"
groups: "{{ item.groups }}"
password: "{{ item.password }}"
state: present
with_items: "{{ lab_users }}"
vargs.yml
lab_users:
- {name: '<아이디>', uid: <uid>, groups: ['<그룹이름>'], password: '<비밀번호>}
- {name: '<아이디>', uid: <uid>, groups: ['<그룹이름>'], password: '<비밀번호>}
- {name: '<아이디>', uid: <uid>, groups: ['<그룹이름>'], password: '<비밀번호>}
- {name: '<아이디>', uid: <uid>, groups: ['<그룹이름>'], password: '<비밀번호>}
- {name: '<아이디>', uid: <uid>, groups: ['<그룹이름>'], password: '<비밀번호>}
- {name: '<아이디>', uid: <uid>, groups: ['<그룹이름>'], password: '<비밀번호>}
커맨드 실행
$ sudo ansible-playbook -i inventory playbook.yml -K
1초만에 여러 명의 유저가 여러 개의 서버에 동시에 만들어졌습니다!
(Ansible 공부하는 시간 + 디버깅하는 시간 더하면 손해 봤습니다! 자동화는 시간절약을 위해 하는 것이 아니라 자기만족을 위해하는..)
'Devops' 카테고리의 다른 글
nmcli로 interface에 대한 정보 얻기 (0) | 2020.08.05 |
---|---|
Ubuntu 에서 ethernet link speed 알아내기 (0) | 2020.08.05 |
Docker ubuntu18.04에서 크롬설치하기 (0) | 2020.06.26 |
[xfce4] failed to execute default terminal emulator input output error ubuntu (0) | 2020.06.19 |
[Ansible] fail2ban role 적용하기 (0) | 2020.06.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- CMake get_filename_Component
- 함수포인터 오버라이트
- CMake 기초
- 14714 공부법 어플리케이션
- review reminder
- 14714 복습법
- react-native
- CMake for문
- aws 프리티어 요금청구
- aws 청구문의
- CMake get file name
- CMake 반복문
- CMake run protoc
- 14714 플래너
- 14714 어플리케이션
- CMake 강좌
- function pointer overflow
- 14714 review
- get_filename_component
- CMake probouf
- CMake for
- 토리파 공부법
- 복습 어플
- 14714 어플
- CMake run proto compiler
- 14714 앱
- buffer-over-flow
- CMAke 파일이름 추출
- 14714 공부법
- 복습 계획어플
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함