참고
시스템 구축 자동화
사용자 계정 생성하기
NOTE
---
- hosts: all
vars_files:
- vars/secret.yml
tasks:
- name: Create user
ansible.builtin.user:
name: "{{ item.userid }}"
password: "{{ item.userpw | password_hash('sha512', 'mysecret') }}"
state: present
loop: "{{ user_info }}"
YAML
복사
플레이북
---
user_info:
- userid: "ansible"
userpw: "ansiblePw1!"
- userid: "stack"
userpw: "stackPw1!"
YAML
복사
암호화 데이터
ansible-playbook --ask-vault-pass [플레이북 경로]
Visual Basic
복사
SSH 키 생성 및 복사하기
NOTE
---
# SSH 키생성
- hosts: localhost
tasks:
- name : Create ssh key
ansible.builtin.user:
name: "{{ userid }}"
generate_ssh_key: true
ssh_key_bits: 2048
ssh_key_file: /{{ userid }}/.ssh/id_rsa
- hosts: servers
tasks:
- name: Copy SSH Pub key
ansible.posix.authorized_key:
user: "{{ userid }}"
state: present
key: "{{ lookup('file', '/{{ userid }}/.ssh/id_rsa.pub') }}"
YAML
복사
ansible-playbook -e userid=root [플레이북 경로]
Visual Basic
복사
NTP 서버 설치 및 설정하기
NOTE
NTP(Network Time Protocol)은 여러 서버의 시간을 동기화하기 위한 애플리케이션 입니다.
예전에는 NTP자체를 많이 설치했지만 요즘은 chrony라는 NTP 애플리케이션을 더 많이 사용한다. NTP를 사용하는 이유는 로드 밸런서를 사용하는 서버 간에 시간 동기화가 제대로 이루어지지 않으면 데이터가 생성되는 시간이 서로 맞지 않아 오류가 발생하기 때문이다.
•
방법
◦
NTP 애플리케이션인 chrony를 설치하기 위해서는 패키지 리포지터리 설정, 인터넷이 되어야한다.
◦
인터넷이 안된다면 로컬 리포지토리 설정이 되어 있어야 한다.
•
사전분석
◦
NTP 서버주소는 메인 플레이북
◦
Jinja2 템플릿 방식의 chrony.conf파일을 대상 호스트로 복사
◦
설정 파일이 복사되면 chrony 서비스 재시작
패키지 리포지토리 환경 설정
NOTE
리포지토리로부터 패키지를 다운로드 하는 건 셸 스크립트를 이용해도 되지만, 패키지 리포지토리 환경은 앤서블을 이용하면 매우 효율적으로 구성할 수 있다.
환경 설정 자동화
목차
NOTE
•
•