DHCP, VSFTPD, Nginx. DNS, Infra 자동화

2023. 6. 17. 13:43Ansible_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  (0) 2023.06.17
CentOS7 - Wordpress + MySQL5.7 + PHP7.3 Install  (0) 2023.06.17
RDS 배포 및 구성-yml 파일  (0) 2023.06.17