Commit 758c29db authored by JooHan Hong's avatar JooHan Hong

ansible, 2021-03-08, update6

parent b8b81ada
Pipeline #5115 passed with stages
in 2 seconds
[![logo](https://www.hongsnet.net/images/logo.gif)](https://www.hongsnet.net)
# Ansible의 shell 모듈을 이용한 OS 패키지 리스트정보 수집
> 데비안 계열 OS의 dpkg 명령을 통한 전체 패키지 리스트 수집을 자동화 한다.
## 주요 기능
- 수행 후 APT_PACKAGES/*IP주소*/*일자*/dpkg_result.txt 파일을 남기도록 한다.
## 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: APT PACKAGE_QUERY Action
hosts: USERS
vars:
time: "{{lookup('pipe','date \"+%Y-%m-%d\"')}}"
tasks:
- name: Local Directory Create
local_action: command mkdir -p APT_PACKAGES/{{ managed_ip }}/{{ time }}
- name: Get packages
shell: dpkg-query -f '${binary:Package}\n' -W
register: packages
- name: Print packages
debug:
msg: "{{ packages.stdout_lines }}"
- name: System User Password Modify Result
local_action: copy content={{ packages.stdout }} dest=APT_PACKAGES/{{ managed_ip }}/{{ time }}/dpkg_result.txt
```
`Debian 계열의 APT 매니지`에 대한 Playbook 분석
* [ ] Inventory에 지정된 호스트에 dpkg-query -f '${binary:Package}\n' -W 명령을 수행한다.
* [ ] 수행 Sheel 상에서 결과를 출력하고, 증적은 APT_PACKAGES/ 디렉토리에 기록한다.
## playbook 실행
```bash
# ansible-playbook -i hosts apt_query.yml
```
## 수행 결과
```bash
# cat APT_PACKAGES/172.16.0.100/2020-12-03/dpkg_result.txt
acl
adduser
apt
apt-listchanges
apt-utils
aspell
aspell-en
autoconf
automake
autopoint
autotools-dev
base-files
base-passwd
bash
bash-completion
bc
bind9-host
binutils
bsdmainutils
bsdutils
...중략
```
...@@ -15,14 +15,14 @@ ...@@ -15,14 +15,14 @@
```bash ```bash
# cat hosts # cat hosts
[USERS] [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"
172.16.0.200 managed_ip=172.16.0.200 des="2020-12-03" 172.16.0.200 managed_ip=172.16.0.200 des="2020-12-03"
[USERS_OK] [ALL_HOSTS_OK]
``` ```
대상 호스트는 172.16.0.100,200이며, 추가는 2020-12-03에 수행한다. 참고적으로 **USERS_OK** 호스트 그룹은 작업이 완료된 호스트의 history를 위한 그룹이다. 대상 호스트는 172.16.0.100,200이며, 추가는 2020-12-03에 수행한다. 참고적으로 **ALL_HOSTS_OK** 호스트 그룹은 작업이 완료된 호스트의 history를 위한 그룹이다.
## Host Variables 설정 ## Host Variables 설정
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment