Search
Duplicate
📒

[Ansible] 05-1. 시스템 구축/환경설정 자동화

상태
수정중
수업
Ansible
주제
4 more properties
참고

시스템 구축 자동화

사용자 계정 생성하기

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