-
오픈소스로 구성하는 데브옵스 시스템 - Ansible과 AWX를 이용한 예제1DevOps 2018. 3. 6. 21:48
지금까지 Ansible과 AWX를 이용해서 Linux와 Windows 서버를 일괄로 관리 할 수 있는 환경을 구성해 보았습니다.
그럼 몇가지 예제 Playbook 스크립트를 작성해 보고 효율적으로 서버를 관리하는 방법에 대해 살펴보도록 하겠습니다.
Linux에서 사용자 관리
Linux를 운영하다보면 수시로 사용자 추가, 삭제, 권한 변경 등의 요청을 받으실 껍니다.
저희는 보통 사용자추가, 초기 패스워드 적용, 패스워드 만료 처리, 권한 부여 작업을 기본으로 해주고 있습니다.
이걸 이전까지는 커맨드 라인에서 타이핑으로 매번 처리를 하였으나, 이제는 아래 스크립트를 만들어서 Playbook으로 등록하고 AWX에서 Job을 만들어서 버튼만 눌러주면 됩니다.
1. 사용자 추가
참고로 remote_user는 AWX에서 지정한 credential 계정과 동일하게 지정 합니다.
---
- hosts: all
remote_user: ansible
tasks:
- name: New System User
user: name="{{ add_user_name }}"
password="{{ upassword | password_hash('sha512') }}"
shell=/bin/bash
become: yes
become_user: root
- name: Add user to sudoers
lineinfile: dest=/etc/sudoers
regexp="{{ add_user_name }} ALL"
line="{{ add_user_name }} ALL=(ALL) ALL"
state=present
become: yes
become_user: root
- name: Expiring password for user "{{ add_user_name }}"
shell: chage -d 0 "{{ add_user_name }}"
그리고 TEMPLATE에서 해당 Job을 만들 때, EXTRA VAIRABLES 입력란에 아래와 같이 key: value 조합으로 값을 입력 합니다.
2. 사용자 삭제
---
- hosts: all
remote_user: ansible
tasks:
- name: Delete Account Force
user: name="{{ del_user_name }}"
state=absent
remove=yes
force=yes
become: yes
become_user: root
- name: Delete normal user to sudoers
lineinfile:
dest: /etc/sudoers
regexp: "^{{ del_user_name }}"
state: absent
become: yes
become_user: root
3. 사용자 패스워드 변경
---
- hosts: all
remote_user: ansible
tasks:
- name: Change User Password
user: name="{{ chg_user_name }}"
password="{{ chg_passwd | password_hash('sha512') }}"
update_password=always
shell=/bin/bash
become: yes
become_user: root
위 스크립트에서 사용한 user module에 관한 자세한 내용은 Ansible의 user - manage user accounts 문서를 참고해 주시기 바랍니다.
'DevOps' 카테고리의 다른 글
오픈소스로 구성하는 데브옵스 시스템 - Ansible과 AWX를 이용한 예제3 (9) 2018.05.31 오픈소스로 구성하는 데브옵스 시스템 - Ansible과 AWX를 이용한 예제2 (0) 2018.03.20 오픈소스로 구성하는 데브옵스 시스템 - Ansible과 AWX에서 윈도우 서버 관리 (0) 2018.03.03 오픈소스로 구성하는 데브옵스 시스템 - AWX에서 Ansible 실행 (0) 2018.02.13 오픈소스로 구성하는 데브옵스 시스템 - AWX Active Directory 및 git 연동 (3) 2018.02.05