Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
joohanhong
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
JooHan Hong
joohanhong
Commits
a29bb538
Commit
a29bb538
authored
Mar 10, 2021
by
JooHan Hong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
NTP, modify
parent
1dac4687
Pipeline
#5135
passed with stages
in 2 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
180 additions
and
12 deletions
+180
-12
README.md
ANSIBLE/INFRA/NTP/README.md
+55
-12
README.md
ANSIBLE/OS/ZABBIX/README.md
+125
-0
No files found.
ANSIBLE/INFRA/NTP/README.md
View file @
a29bb538
...
...
@@ -8,6 +8,7 @@
## 주요 기능
-
templates/ntp.conf.j2 파일을 이용해 변수에 맞게 NTP 설정을 수행할 수 있다.
-
ntp 와 chrony를 취사선택(apps 호스트 변수)하여, 설치할 수 있다.
## Inventory 설정
...
...
@@ -15,12 +16,13 @@
```
bash
# cat hosts
[
ALL_HOSTS]
172.16.0.100
managed_ip
=
172.16.0.100
des
=
"2020-12-03"
172.16.0.100
managed_ip
=
172.16.0.100
des
=
"2020-12-03"
apps
=
"ntp"
172.16.0.200
managed_ip
=
172.16.0.200
des
=
"2020-12-03"
apps
=
"chrony"
[
ALL_HOSTS_OK]
```
대상 호스트는 172.16.0.100이며, 추가는 2020-12-03에 수행한다. 참고적으로
**ALL_HOSTS_OK**
호스트 그룹은 작업이 완료된 호스트의 history를 위한 그룹이다.
대상 호스트는 172.16.0.100
,200
이며, 추가는 2020-12-03에 수행한다. 참고적으로
**ALL_HOSTS_OK**
호스트 그룹은 작업이 완료된 호스트의 history를 위한 그룹이다.
## Host Variables 설정
...
...
@@ -53,35 +55,71 @@ ansible_python_interpreter: python2.7
pkg:
-
ntp
update_cache: yes
when: apps == "ntp"
-
name: ntp.conf configuration
template: src=templates/ntp.conf.j2 dest=/etc/ntp.conf mode=0644
when: apps == "ntp"
-
name: ntpd Daemon Restart
service:
name: ntp
state: restarted
enabled: yes
when: apps == "ntp"
-
name: Install a list of packages
yum: name={{ item }} update_cache=yes
with_items:
-
chrony
when: apps == "chrony"
-
name: ntp.conf configuration
template: src=templates/chrony.conf.j2 dest=/etc/chrony.conf mode=0644
when: apps == "chrony"
-
name: ntpd Daemon Restart
service:
name: ntp
state: restarted
enabled: yes
when: apps == "ntp"
-
name: chronyd Daemon Restart
systemd:
name: chronyd
state: restarted
enabled: yes
when: apps == "chrony"
```
jinja2 템플릿 내역은 다음과 같다. 참고적으로 핵심적인 내역만은 명시한다.
- ntp.conf
```
bash
# cat templates/ntp.conf.j2
...중략
server {{ ntp_server1 }} iburst
server {{ ntp_server2 }} iburst
```
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
- chrony.conf
```
bash
# cat templates/chrony.conf.j2
...중략
server {{ ntp_server1 }} iburst
server {{ ntp_server2 }} iburst
```
`NTP 클라이언트 배포`에 대한 Playbook 분석
* [ ]
ntp_
server1/2 에 대한 변수 값이 원격 호스트에 설정된다.
* [ ] 추가적으로 아래와 같이 ntpq 명령을 쿼리하는 Playbook과 같이 사용하면 된다.
* [ ] ntpq 명령의 결과는 각 호스트별로 로컬에 파일로 기록된다.
* [ ]
NTP
server1/2 에 대한 변수 값이 원격 호스트에 설정된다.
* [ ] 추가적으로 아래와 같이 ntpq
/ chronyc
명령을 쿼리하는 Playbook과 같이 사용하면 된다.
* [ ] ntpq
/ chronyc
명령의 결과는 각 호스트별로 로컬에 파일로 기록된다.
## playbook 실행
...
...
@@ -102,16 +140,21 @@ server {{ ntp_server2 }} iburst
-
name: ntpq command Result
shell: ntpq -p; echo; date; echo "Deploy Server Time => {{ time }}"
register: ntpq_result
-
debug: var=ntpq_result
when: apps == "ntp"
- name: ntpq command Result
shell: chronyc sources -v; echo; date; echo "Deploy Server Time => {{ time }}"
register: ntpq_result
when: apps == "chrony"
- name: Local Directory Create
local_action: command mkdir -p NTP
Q
_CHECK/{{ managed_ip }}
local_action: command mkdir -p NTP_CHECK/{{ managed_ip }}
- name: TIME Check Execute Result
local_action: copy content={{ ntpq_result.stdout }} dest=NTP
Q
_CHECK/{{ managed_ip }}/{{ managed_ip }}_ntpq.txt
local_action: copy content={{ ntpq_result.stdout }} dest=NTP_CHECK/{{ managed_ip }}/{{ managed_ip }}_ntpq.txt
```
```
bash
# ansible-playbook -i hosts ntp
q
_check.yml
# ansible-playbook -i hosts ntp_check.yml
```
ANSIBLE/OS/ZABBIX/README.md
0 → 100644
View file @
a29bb538
[
![logo
](
https://www.hongsnet.net/images/logo.gif
)
](https://www.hongsnet.net)
# Ansible을 이용한 Zabbix-Agent 배포
> 원격 시스템에 Zabbix-Agent의 설치 및 설정을 자동화 한다.
## 활용 용도
-
YUM, APT와 같은 Package Manager를 이용하지않고, Package 파일로 직접 설치한다.
-
Zabbix-Agent의 사전 검토된 설정을 배포할 때 유용하다. 사전 검토된 설정은 Jinja2 템플릿을 사용한다.
## Inventory 설정
```
bash
# cat hosts
[
ALL_HOSTS]
172.16.0.100
managed_ip
=
172.16.0.100
des
=
"2020-12-03"
[
ALL_HOSTS_OK]
```
대상 호스트는 172.16.0.100이며, 추가는 2020-12-03에 수행한다. 참고적으로
**ALL_HOSTS_OK**
호스트 그룹은 작업이 완료된 호스트의 history를 위한 그룹이다.
## Host Variables 설정
```
bash
# cat host_vars/172.16.0.100
ansible_ssh_host: 172.16.0.100
ansible_ssh_port: SSH_포트번호
ansible_ssh_user: 사용자 아이디
ansible_ssh_pass:
"사용자 패스워드"
ansible_become:
yes
ansible_become_method: su
ansible_become_user: root
ansible_become_pass:
"!root_패스워드"
ansible_python_interpreter: python2.7
```
## Playbook 설정
```python
---
-
name: Zabbix-Agent Remote Install
hosts: ALL_HOSTS
vars:
zabbix_server: 172.24.0.254
tasks:
-
name: Directory Create
file:
path: "{{ item }}"
state: directory
owner: 'root'
group: 'root'
mode: 0700
with_items:
-
/root/test/zabbix-agent
- name: Zabbix dep Package Copy
copy:
src: "{{ item }}"
dest: /root/test/zabbix-agent
owner: 'root'
group: 'root'
mode: 0644
#attr: i
with_items:
['zabbix-agent_buster.deb']
when:
- ansible_distribution_major_version == '10'
- ansible_os_family == "Debian"
- name: Zabbix RPM Package Copy
copy:
src: "{{ item }}"
dest: /root/test/zabbix-agent
owner: 'root'
group: 'root'
mode: 0644
with_items:
['zabbix-agent-4.4.10-1.el7.x86_64.rpm']
when: ansible_os_family == "CentOS"
- name: dpkg command Result
shell: yes | dpkg -i /root/test/zabbix-agent/zabbix-agent_buster.deb
register: dpkg_result
when:
- ansible_distribution_major_version == '10'
- ansible_os_family == "Debian"
- name: rpm command Result
shell: rpm -ivh /root/test/zabbix-agent/zabbix-agent-4.4.10-1.el7.x86_64.rpm
register: dpkg_result
when: ansible_os_family == "CentOS"
- name: Zabbix agents configuration
template: src=templates/zabbix_agented.conf_debian.j2 dest=/etc/zabbix/zabbix_agentd.conf mode=0644
when:
- ansible_distribution_major_version == '10'
- ansible_os_family == "Debian"
- name: Zabbix agents configuration
template: src=templates/zabbix_agented.conf_redhat.j2 dest=/etc/zabbix/zabbix_agentd.conf mode=0644
when: ansible_os_family == "CentOS"
- name: zabbix-agent Daemon Restart
systemd:
state: restarted
name: zabbix-agent.service
enabled: True
```
`Zabbix-Agent 설치`에 대한 Playbook 분석
* [ ] OS에 따라(redhat, debian계열) Agent를 설치한다.
## playbook 실행
```
bash
# ansible-playbook -i hosts zabbix-agent_install.yml
```
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment