DHCP, VSFTPD, Nginx. DNS, Infra 자동화
2023. 6. 17. 13:43ㆍAnsible_ad-hoc
728x90
반응형
1. nginx 설치 (web그룹)
- web server 설치 및 구성
- nginx
- 본인 이니설 - webserver
- web contents directory: /web
---
- name: nginx install
hosts: web
tasks:
- name: nginx install
dnf:
# DNF(Dandified Yum) 패키지 관리자, 이 모듈을 사용하면 패키지 설치, 업그레이드, 삭제 등 DNF 명령을 실행할 수 있음
name: nginx
state: latest
- name: /www create
file:
path: /www
state: directory
- name: conf mv
copy:
src; ./nginx.conf
dest: /etc/nginx/nginx.conf
- name: index.html
copy:
src: ./index.html
dest: /www/index.html
- name: service start
service:
name: nginx
state: started
- name: firewall open
firewalld:
port: 80/tcp
immediate: yes
permanent: yes
state: enabled
### dnf 사용 몇가지 예제
#패키지 설치
- name: Install package using DNF
dnf:
name: package-name
state: present
#패키지 그룹 설치
- name: Install package group using DNF
dnf:
group: group-name
state: present
#패키지 검색
- name: Search for package using DNF
dnf:
list: 'package-name'
#패키지 삭제
- name: Remove package using DNF
dnf:
name: package-name
state: absent
#패키지 업그레이드
- name: Remove package using DNF
dnf:
name: package-name
state: absent
2. vsftpd (was그룹)
- vsftpd 설치 및 구성
- passive mode, 인증 및 제어21, 데이터 전송 65000-65100 사용
- a, b 계정 생성 a만 chroot 적용
- 최상위 디렉토리에 /ftp 디렉토리 생성 후 배너(배너파일이름:ban) 및 chroot, log 저장
- 접속 후 120초 동안 Action이 없으면 연결 끊기, data 전송 중이라도 1분 후 연결 끊기
- 그 외 나머지는 기본 설정
---
- name: vsftpd config
hosts: was
tasks:
- name: user a, b create
user:
name: "{{ item }}"
password: "{{ 'It1" | password_hash('sha512') }}"
loop:
- a
- b
- name: vsftpd install
dnf
name: vsftpd
state: latest
- name: /ftp directory create
file:
path: /ftp
state: directory
- name: chroot copy
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
loop:
- { src: ./chroot, dest: /ftp/chroot }
- { src: ./ban, dest: /ftp/ban }
- { src ./vsftpd.conf, dest /etc/vsftpd/vsftpd.conf }
- name: service start
service:
name: vsftpd
state: started
- name: firewall open
firewalld:
port: "{{ item.port }}/{{ item.pro }}"
immediate: yes
loop:
-{ port: 21, pro: tcp }
-{ port: 65000 - 65100, pro: tcp }
3. dns (db그룹)
- bind를 활용한 DNS - BIND는 가장 널리 사용되는 오픈 소스 DNS 서버 소프트웨어
nginx 및 vsftpd는 도메인이름으로 접속 가능해야 함. - 역방향 조회 영역 설정
- 외부 순환쿼리가 가능
외부 순환 쿼리 DNS는 내부 네트워크의 외부에 위치한 DNS 서버를 가리킵니다.
외부 순환 쿼리 DNS는 보통 ISP(인터넷 서비스 제공자)나 클라우드 서비스 제공업체에 의해 제공됩니다
---
- name: DNS conf
hosts: db
tasks:
- name: bind install
yum:
name: "{{ item }}"
- bind
- bind-utils
- bind-libs
state: latest
- name: file copy
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
loop:
- { src: ./named.conf, dest: /etc/named.conf }
- { src: ./named.rfc1912.zones, dest: /etc/named.rfc1912.zones}
- { src: ./lyh.pw, dest: /var/named/lyh.pw }
- { src: ./pw.lyh, dest: /var/named/pw.lyh }
- name: change mod
file:
path: "{{ item }}"
mode: 0644
loop:
- /var/named/lyh.pw
- /var/named/pw.lyh
- name: service start
service:
name: named
state: started
- name: firewall open
firewalld:
port: "53/{{ item }}"
immediate: yes
permanent: yes
state: enabled
loop:
- udp
- tcp
설정 파일
- /etc/named.conf
- /etc/named.rfc1912.zones
- lyh.pw (정방향)
- pw.lyh (역방향)
- /etc/vsftpd/vsftpd.conf
- banner_file, chroot을 위한 /ftp 디렉토리
- nginx.conf
반응형
'Ansible_ad-hoc' 카테고리의 다른 글
nginx + wordpress (0) | 2023.06.18 |
---|---|
ssh key 자동배포 (0) | 2023.06.17 |
Ad-hoc & Inventory (1) | 2023.06.17 |
CentOS7 - Wordpress + MySQL5.7 + PHP7.3 Install (1) | 2023.06.17 |
RDS 배포 및 구성-yml 파일 (0) | 2023.06.17 |