-
Ansible: DHCP, VSFTPD, Nginx, DNS Infra 자동화공부합시다!/Ansible 2023. 3. 17. 09:15728x90
오늘은 종합실습적인 개념으로 Infra 자동화에 대해서 학습하겠습니다.
dhcp, ftp, nginx, dns infra를 자동으로 구성합니다.
1. 시나리오
Ansible를 활용한 Infra 자동화 1. nginx 설치(web그룹) 1.1. web server 설치 및 구성 1.2. nginx 1.3. 본인 이니설-webserver 1.4. web contents directory: /web 2. vsftpd (was그룹) 2.1. vsftpd 설치 및 구성 2.2. passive mode, 인증 및 제어21, 데이터 전송 65000-65100 사용 2.3. a,b 계정 생성 a만 chroot 적용 2.4. 최상위 디렉토리에 /ftp 디렉토리 생성 후 배너(배너파일이름:ban) 및 chroot, log 저장 2.5. 접속 후 120초 동안 아무런 Action이 없으면 연결 끊기, data 전송중이라도 1분 후 연결 끊기 2.6. 그 외 나머지는 기본 설정 3. dns (db그룹) 3.1. bind를 활용한 DNS 3.2. nginx 및 vsftpd 는 도메인이름으로 접속 가능해야 합니다. 3.3. 역방향 조회 영역 설정 3.4. 외부 순환쿼리가 가능 # 간단한 내용 변경이 아닌 경우 미리 설정 파일을 만들어 놓고 해당 위치에 복사하는 방식으로 # dns /var/named/zone 파일 권한 변경 신경쓰세요. 팀별로 역할을 나눠서 하시고 하나로 모아서 개개별로 설정해 보세요!
1. vsftpd.yml
--- - name: vsftpd config hosts: was tasks: - name: user a, b create user: name: "{{ item }}" password: "{{ 'It1' | password_hash('sha512') }}" with_items: - a - b - name: vsftpd install dnf: name: vsftpd state: latest - name: /ftp direcrtory create file: path: /ftp state: directory - name: chroot copy copy: src: "{{ item.src }}" dest: "{{ item.dest }}" with_items: - { 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 permanent: yes state: enabled with_items: - { port: 21, pro: tcp } - { port: 65000 - 65100, pro: tcp }
2. web.yml
--- - name: nignx install hosts: web tasks: - name: nginx install 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.hmtl 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
3. named.yml
--- - name: DNS configuration hosts: db tasks: - name: bind install dnf: name: "{{ item }}" state: latest with_items: - bind - bind-utils - bind-libs - name: file copy copy: src: "{{ item.src }}" dest: "{{ item.dest }}" with_items: - { src: ./named.conf, dest: /etc/named.conf } - { src: ./named.rfc1912.zones, dest: /etc/named.rfc1912.zones } - { src: ./sdkim.pw, dest: /var/named/sdkim.pw } - { src: ./pw.sdkim, dest: /var/named/pw.sdkim } - name: change mod file: path: "{{ item }}" mode: 0644 with_items: - /var/named/sdkim.pw - /var/named/pw.sdkim - name: service start service: name: named state: started - name: firewall open firewalld: port: "53/{{ item }}" immediate: yes permanent: yes state: enabled with_items: - udp - tcp
4. 설정 파일
4.1. /etc/named.conf
4.2. /etc/named.rfc1912.zones
4.3. sdkim.pw (정방향 조회 영역)
4.4. pw.sdkim (역방향 조회 영역)
4.5. /etc/vsftpd/vsftpd.conf
4.6. banner_file, chroot 을 위한 /ftp 디렉토리
4.7. nginx.conf
설정 파일들은 직접 만들어 보세요!
728x90'공부합시다! > Ansible' 카테고리의 다른 글
Ansible: nginx + wordpress (0) 2023.06.14 Ansible: RDS 배포 및 구성, 2023년 03월 17일 Test (0) 2023.03.17 Ansible : Nginx Install, Configuration (0) 2023.03.16 Ansible: 재사용 가능한 Module 만들기 (0) 2022.07.11 Ansible: wordpress + RDS (AWS 환경) (0) 2022.07.10