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
1f90954e
Commit
1f90954e
authored
Mar 09, 2021
by
JooHan Hong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
file_fetch init
parent
339f6d37
Pipeline
#5132
passed with stages
in 2 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
81 additions
and
7 deletions
+81
-7
README.md
ANSIBLE/OS/FILE_FETCH/README.md
+72
-0
README.md
ANSIBLE/OS/PACKAGE/MINIMAL/README.md
+8
-6
README.md
ANSIBLE/README.md
+1
-1
No files found.
ANSIBLE/OS/FILE_FETCH/README.md
0 → 100644
View file @
1f90954e
[
![logo
](
https://www.hongsnet.net/images/logo.gif
)
](https://www.hongsnet.net)
# Ansible의 fetch 모듈을 이용한 파일 가져오기
> 원격 시스템의 파일 및 디렉토리를 로컬로 가져올 수 있다.
## 활용 용도
-
원격 서버에 스크립트를 수행한 후의 결과파일을 로컬로 가져오는 구조의 Job
-
/etc/passwd 파일과 같은 전체 시스템의 특정 파일을 모두 가져와야 하는 Job
-
보안취약점 진단에 File Copy 모듈과 함께 사용 중이다.
## 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 : Config File Fetch Playbook
hosts: ALL_HOSTS
gather_facts: no
tasks:
-
name: Local Directory Create
local_action: command mkdir -p FETCH/{{ managed_ip }}
- name: Nginx Configure file fetch
fetch:
src: /etc/passwd
dest: FETCH/{{ managed_ip }}/
flat: yes
```
`File Fetch`에 대한 Playbook 분석
* [ ] 대용량의 파일을 가져오려면, Ansible 2.5 이상을 사용해야하고, become 모듈을 사용하지 않아야 메모리에러 이슈를 방지할 수 있다.
- https://docs.ansible.com/ansible/2.5/modules/fetch_module.html
* [ ] 가져올 파일은 로컬 시스템(PC 또는 서버)의 FETCH/*IP주소*/ 로 가져온다.
## playbook 실행
```
bash
# ansible-playbook -i hosts file_fetch.yml
ANSIBLE/OS/PACKAGE/MINIMAL/README.md
View file @
1f90954e
[
![logo
](
https://www.hongsnet.net/images/logo.gif
)
](https://www.hongsnet.net)
# Ansible의 shell,template를 이용한 OS Package 설치
# Ansible의
Fact변수,
shell,template를 이용한 OS Package 설치
> OS를 Minimal 설치한 후의 기본적인 환경을 구성한다.
...
...
@@ -197,17 +197,19 @@ ansible_python_interpreter: python2.7
```
`
Debian 계열의 APT 매니지
`에 대한 Playbook 분석
`
OS Package Manager
`에 대한 Playbook 분석
* [ ] 콘솔/원격 접속 시 출력되는 Banner를 배포한다.
* [ ] Minimal 설치 후 필요한 최소한의 패키지를 설치한다.
* [ ] 불필요한 서비스를 중지하고, 비활성화한다.
* [ ] OS Version의 조건을 수행하기 위해 Facts 변수인 `ansible_os_family` 를 사용한다.
* [ ] Facts 변수를 수집하기 위해서는 반드시 `gather_fact:no` 가 설정되면 안된다.
* [ ] 외부 네트워크가 불가능한 환경에서는 각각 파일을 배포해야 한다.
- Debian 계열 : /etc/sources.list
- RedHat 계열 : /etc/yum.respo.d/*.repo
## playbook 실행
```
bash
# ansible-playbook -i hosts
debian
_minimal.yml
# ansible-playbook -i hosts
os
_minimal.yml
```
ANSIBLE/README.md
View file @
1f90954e
...
...
@@ -59,7 +59,7 @@ ansible -i hosts $1 -m setup
```
이는 최초 접속 시에 대부분 발생되
면
, 근본원인 원인은 ssh의 공개키 교환이 안됐기 때문이다. 따라서 다음과 같이 설정하면 된다.
이는 최초 접속 시에 대부분 발생되
며
, 근본원인 원인은 ssh의 공개키 교환이 안됐기 때문이다. 따라서 다음과 같이 설정하면 된다.
-
**전역 설정**
: /etc/ansible/ansible.cfg
...
...
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