리눅스

Ansible 일반 계정으로 패키지 배포 및 NTP 설정하기

변군이글루 2017. 4. 16. 20:47
반응형

Ansible 일반 계정(ansiadmin)으로 패키지 배포 및 NTP 설정하기

Control Machine 설정

Ansible 컨트롤 머신에서 ansiadmin 계정을 사용하여 SSH 키 생성 및 노드 서버와 키 교환을 수행합니다.

 

1. SSH 키 생성

ssh-keygen -t rsa -b 4096 -C "ansiadmin@ass01"

2. SSH 키 배포 (Managed Node 등록)

ssh-copy-id ansiadmin@192.168.0.252

Ansible 플레이북 구성

1. 역할(Role) 기반 플레이북 작성

Ansible roles/common/tasks/main.yml 파일을 수정하여 NTP를 설치하고 구성합니다.

vim roles/common/tasks/main.yml
---
# Common role: NTP 패키지 설치 및 설정

- name: Install NTP package
  yum:
    name: ntp
    state: present
  tags: ntp
  become: yes
  become_method: sudo

- name: Configure NTP configuration file
  template:
    src: ntp.conf.j2
    dest: /etc/ntp.conf
  tags: ntp
  become: yes
  become_method: sudo
  notify: Restart NTP service

- name: Start and enable NTP service
  service:
    name: ntpd
    state: started
    enabled: yes
  tags: ntp
  become: yes
  become_method: sudo

- name: Check SELinux status
  command: getenforce
  register: sestatus
  changed_when: false
  become: yes
  become_method: sudo

2 핸들러 설정 (roles/common/handlers/main.yml)

  • notify: Restart NTP service 이벤트 발생 시 ntpd 서비스를 재시작
vim roles/common/handlers/main.yml
---
- name: Restart NTP service
  service:
    name: ntpd
    state: restarted
  become: yes
  become_method: sudo

Ansible 플레이북 실행

1 Ansible Playbook 실행

ansible-playbook site.yml

2 실행 결과 예시

PLAY [Apply common configuration to all nodes] *********************************

TASK [setup] *******************************************************************
ok: [192.168.0.252]

TASK [common : Install NTP package] ********************************************
ok: [192.168.0.252]

TASK [common : Configure NTP configuration file] *******************************
changed: [192.168.0.252]

TASK [common : Start and enable NTP service] ***********************************
changed: [192.168.0.252]

TASK [common : Check SELinux status] *******************************************
ok: [192.168.0.252]

PLAY RECAP *********************************************************************
192.168.0.252              : ok=5    changed=2    unreachable=0    failed=0

Managed Node (192.168.0.252) 설정 확인

1 일반 계정(ansiadmin)에 sudo 권한 부여

  • Ansible 실행 시 비밀번호 입력 없이 sudo 사용 가능
sudo visudo
ansiadmin        ALL=(ALL)       NOPASSWD: ALL

2 설치된 패키지 확인

rpm -qa | grep ntp
ntpdate-4.2.6p5-10.el6.centos.2.x86_64
ntp-4.2.6p5-10.el6.centos.2.x86_64

3 NTP 설정 파일 확인

cat /etc/ntp.conf
driftfile /var/lib/ntp/drift

restrict 127.0.0.1
restrict -6 ::1

server 192.168.1.2

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

 

Ansible을 사용하여 일반 계정으로 효율적으로 NTP 패키지를 배포하고 설정할 수 있습니다.

 

728x90
반응형