Ansible Automation I

Dongmin Lee·2024년 1월 20일
0

Ansible

목록 보기
4/7

1. 사용자 계정 생성하기

1.1 사전 분석

  • 사용자 계정과 패스워드는 Vault를 이용하여 암호화를 처리한다.
  • 사용자 계정 생성은 ansible.builtin.user 모듈을 이용한다.

1.2 플레이북 설계

1.3 플레이북 개발

https://github.com/naleeJang/Easy-Ansible/tree/main/chapter_09.1

2. SSH 키 생성 및 복사하기

2.1 사전 분석

  • 사용자 아이드는 외부 변수로 받는다.
  • ansible-server에서 앤서블 계정을 만들고 SSH 키를 생성한다.
  • ansible-server에서 생성된 SSH 공개 키를 각 tnode에 복사한다.
  • 계정을 생성할 때는 ansible.builtin.user 모듈을 이용하고, SSH 공개 키를 복사할 때는 ansible.posix.authorized_key 모듈을 이용한다.

2.2 플레이북 설계

  • 앤서블 공식 문서의 콘텐츠 컬렉션에서 플레이북 개발에 필요한 SSH 키 생성 모듈과 SSH 키 복사 모듈을 찾았다면, 해당 모듈의 예제와 파라미터 정보를 이용해 플레이북을 설계한다.
  • 해당 플레이북명은 create_sshkey.yml 로 설정하고, ‘Create ssh key' 태스크와 ‘Copy SSH Pub Key’ 라는 2개의 태스크를 갖는다.
  • ‘Create ssh key’ 태스크는 localhost에서 실행하고, ‘Copy SSH Pub Key’ 태스크는 tnode에서 실행한다.
  • 인벤토리에는 다음과 같이 tnode라는 그룹을 만든 다음 모든 관리 노드를 tnode 그룹으로 정의한다.

2.3 플레이북 개발

https://github.com/naleeJang/Easy-Ansible/tree/main/chapter_09.2

3. NTP 서버 설치 및 설정하기

3.1 사전 분석

  • NTP 서버 주소는 메인 플레이북에서 정의한다.
  • 운영체제가 CentOS이거나 레드햇이면 dnf 모듈을 사용하고, 우분투이면 apt 모듈을 사용하여 chrony를 설치한다.
  • Jinja2 템플릿 방식의 chrony.conf 파일을 대상 호스트로 복사한다.
  • 설정 파일이 복사되면 chrony 서비스를 재시작한다.
  • 다음에도 사용할 수 있도록 role을 이용한다.

3.2 플레이북 설계

3.3 플레이북 개발

https://github.com/naleeJang/Easy-Ansible/tree/main/chapter_09.3

4. 패키지 리포지터리 환경 설정하기

4.1 사전 분석

  • httpd 서비스 설치와 고나련된 모든 태스크는 role을 이용한다.
  • role을 통해 리포지터리 환경 설정이 끝나면, 리포지터리 URL을 확인한다.
    • role 디렉터리 생성한다.
    • httpd 서비스 설치한다.
    • repo.conf라는 환경 설정 파일을 대상 노드로 복사한다.
    • Httpd 서비스를 재시작하고 sefcontext 설정한다.
    • http 서비스를 firewalld에 추가하고, firewalld 서비스를 reload한다.

4.2 플레이북 설계

4.3 플레이북 개발

https://github.com/naleeJang/Easy-Ansible/tree/main/chapter_09.4

0개의 댓글