๐ 1. ํ๋ก์ ํธ ๊ฐ์
๋คํธ์ํฌ ๊ตฌ์ฑ๋

ํ๋ก์ ํธ ๋ชฉ์
- ์จํ๋ ๋ฏธ์ค ์๋ฒ์ ๋ค์ํ ๊ธฐ๋ฅ๋ณ ๊ตฌ์ถ์ ์ํํ๊ณ ์ ํ๋ค. ๊ณ ๊ฐ์ ์น ํ์ด์ง๋ฅผ ๋ง๋ค์ด ์์ฌ์ ์ปจํ ์ธ ๋ฅผ ์๋น์คํ๊ณ ์ถ์ดํ๋ฉฐ, ์น ๋ฉ์ผ ๊ตฌํ์ ํตํด ์ด๋ฉ์ผ์ ์์ฌ ์๋ฒ๋ฅผ ํตํด ์์ฝ๊ฒ ์ฌ์ฉํ๊ณ ์ ํ๋ค.
- ๊ฐ์ข ํ์ผ ์๋ฒ๋ฅผ ๊ตฌํํ์ฌ ๊ธฐ์ข ์ ๋ฐ์ด๋์ ํธ๋ฆฌํ ํ์ผ ๊ณต์ ์์คํ ์ ๊ตฌ์ถํ๊ณ ์ ํ๋ค.
- ์ด์ ๋ฐ๋ผ ์ฃผ๋ฌธ ์ฌ์์ ๋ง๋ ์๋ฒ ๊ตฌ์ฑ์ ํตํด ์ ์ ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ๊ฐ๊ฐ ๊ตฌํ๋ ๋ค๋ฅธ ์๋ฒ ๊ธฐ๋ฅ๊ณผ ์ฐ๊ฒฐํ์ฌ ์ํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ค๊ณ ํ๋ค.
- ๋ฆฌ๋ ์ค ๋ฐ ์ ๋์ค ๊ณ์ด์ ์์คํ ๊ฐ ์ฌ๋ฌ ๋์ ์๋ฒ์ ๋์ผํ ์์ ์ ์ํํ ์ ์๊ณ ์ผ๊ด์ฑ ์ ์ง๋ฅผ ํ ์ ์๋๋ก ์๋ฃจ์ ์ฑํ
- ์๋ฃจ์ ์ฌํญ
๋๋ณด๊ธฐ
- ์์ ์ ์๊ธฐํ ์ํฉ 1์ 5๋ฒ ์น ์๋ฒ ๊ตฌ์ถ ์์ ์ค ์น ์๋ฒ ์ค์ ์ ์๋ํ
- AWS๋ฅผ ์ด์ฉํ EC2 2๋๋ฅผ ์์ฑํ๊ณ ํด๋น EC2๋ค์ ์ํฅ์ ๋ฏธ์น๋๋ก ์ฐ๊ฒฐ ๋ฐ ๊ตฌ์ฑ(EC2๊ฐ ์ค์๋ธ ๋ ธ๋, ์ฆ ์น ์๋ฒ๊ฐ ๋๋๋ก ๊ตฌ์ฑํ๋ฉฐ ์ธ๋ถ์์ ์ ์์ด ๊ฐ๋ฅํ๋๋ก ๊ตฌ์ฑ)
- ํ๋ ์ด๋ถ ์คํ ์ Ansible ์์ ์ํ ๊ฐ ๋น๋ฐ๋ฒํธ ์ต์ (-k)์ด ์์ด ์ํ๋๋๋ก ๊ตฌ์ฑ
- Ansible Playbook์ ํ์ฉํ์ฌ ๋ ธ๋์ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํ
- ์์ ๊ฐ โํ๋ ์ด๋ถโ์ ์์ฑํ์ฌ ์์ ์ด ํ์ผ ํ ๊ฐ์ ์ฌ์์ ํตํด ์ํ๋๋๋ก ๊ตฌ์ฑ
- ์์ฑ ์ ์์ธ ํ์์กด์ผ๋ก ๋ ธ๋๊ฐ ๋ณ๊ฒฝ๋๋๋ก ์ํ
- ๋ ธ๋๋ค์ ansibleuser๋ผ๋ ์ด๋ฆ์ ์ ์ ๋ฅผ ์์ฑ ๋ฐ ansibleuser์ ๋น๋ฐ๋ฒํธ ๋ํ โansibleโ๋ก ์๋์ ์ผ๋ก ์ ๋ ฅ๋๋๋ก ๊ตฌ์ฑ
- ์ค์๋ธ ๋ ธ๋๊ฐ ์น ์๋ฒ๊ฐ ๋๋๋ก ๊ตฌ์ฑ
- ์ ์๋ ์น ์๋ฒ ๊ตฌ์ฑ๊ณผ ๋๋ถ์ด ์ค์๋ธ ์๋ฒ โ ๋ ธ๋ ๊ฐ ์๋ ๊ตฌ์ฑ๋์ด ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ฅผ ํฅํด ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ ์์์ ํํ์ ํ๋กํ ์ฝ ํ ๊ฐ๋ฅผ ์ ์ ํ์ฌ ์์ ๋กญ๊ฒ ๊ตฌ์ฑ(e.g. NFS, SAMBA, Telnet, FTP ๋ฑ)
- ๋ชจ๋ ์์ ์ด ์๋ฃ๋ ํ Ansible์ ํตํ ๊ตฌ์ฑ์ด ์๋ฃ๋์๋์ง ํ์ธํ ์ ์๋๋ก Ansible์ ํตํด ํ์์กด, ์ ์ ํํฉ, ์น ์๋ฒ ๊ฐ๋ ์ฌ๋ถ์ ๋ํ ๊ฒฐ๊ณผ, ์์ ๋กญ๊ฒ ๊ตฌ์ถํ ํ๋กํ ์ฝ์ ์๋ ๊ฒฐ๊ณผ ๋ฑ์ ๋ํ ๋์ถ ํ ํด๋น ๊ฒฐ๊ณผ๋ฌผ์ ์ ์ฅํ์ฌ ํ์ผ๋ก ๋ณด๊ด
- ๊ตฌ์ฑ ๊ฐ ํ์ํ ๊ฒฝ๋ก, ๊ถํ, ๋ฐฉ๋ฒ ๋ฑ์ ์์๋ก ์ค์
์ฃผ์ ๊ธฐ๋ฅ
- ์๋ฒ 1 : ์น ์๋ฒ(์๋ํ๋ ์ค ๋ฑ์ CMS), DB ์๋ฒ(๋ชจ๋ DB๋ฅผ ํด๋น ์๋ฒ์ ํตํฉ)
- ์๋ฒ 2 : DNS ์๋ฒ, SAMBA ์๋ฒ, NFS ์๋ฒ
- ์๋ฒ 3 : ๋ฉ์ผ ์๋ฒ 1, ์น ๋ฉ์ผ ํด๋ผ์ด์ธํธ, FTP ์๋ฒ
- ์๋ฒ 4 : ๋ฉ์ผ ์๋ฒ 2, ์น ๋ฉ์ผ ํด๋ผ์ด์ธํธ, ์น ๋ฆฌํฌ์งํฐ๋ฆฌ ์๋ฒ
- ์๋ฒ 5 : ์ค์๋ธ ์๋ฒ, ์ค์๋ธ ๋ ธ๋ ๊ฐ 1๋(EC2 2๋๋ฅผ ์ค์๋ธ ์๋ฒ ๋ฐ ๋ ธ๋๋ก์ ์ํฅ์ ์ฃผ์ด ์๋ํ, ์์ธ ์ฌํญ์ ์ํฉ 2 ์ฐธ์กฐ)
๊ธฐ์ ๊ฐ์
- ์ด์์ฒด์ : Ubuntu Server, CentOS, Debian
- ์๋ฒ ์ด์ฉ: Samba, WordPress, FTP, rcm, evolution, Maria DB
- ์๋ฒ ์์ฐ: AWS EC2, Router, Switch
- ๊ธฐ์ ์คํ: Ansible, Nginx, MySql
Server 1
WEB ์๋ฒ ๊ตฌ์ฑ
dnf -y install httpd php*
systemctl restart httpd
wget https://wordpress.org/latest.zip #์๋ํ๋ ์ค ํจํค์ง ๋ค์ด
WEB ์๋ฒ ์ค์

DB ์๋ฒ ์ฐ๋
dnf -y install mariadb-server
mysql
๋ฐ์ดํฐ๋ฒ ์ด์ค์ค์
CREATE DATABASE reputabledb; GRANT ALL PRIVILEGES ON reputabledb.*
TO reputableuser IDENTIFIED BY 'rocky'; FLUSH PRIVILEGES;
CREATE DATABASE mail; #์ฐ๋ํ ๋ฉ์ผ ์๋ฒ Database ์์ฑ
CREATE DATABASE WEB; #์ฐ๋ํ WEB ์๋ฒ Database ์์ฑ
CREATE DATABASE
Server 2
โถ DNS Server :
[root@localhost ~]#dnf โy install bind
[root@localhost ~]#vi /etc/named.conf
(11๋ฒ์งธ ํ = any, 12๋ฒ์งธ ํ = none, 19๋ฒ์งธ ํ =any)
[root@localhost ~]#vi /etc/named.rfc1912.zones (์กดํ์ผ ์์ฑ)
[root@localhost ~]#cd /var/named
[root@localhost ~]#cp named.empty daum1.com.zone
[root@localhost ~]#chgrp named daum1.com.zone
[root@localhost ~]#vi daum1.com.zone (daum1.com ์กด ํ์ผ ๊ตฌ์ฑ)
[root@localhost ~]#vi /etc/named.rfc1912.zones
[root@localhost ~]#vi my.rev (๋ฆฌ๋ฒ์ค ์กดํ์ผ)
230 PTR ns.daum1.com.
230 PTR www.daum1.com.
[root@localhost ~]#systemctl restart named
[root@localhost ~]#systemctl enable named
[root@localhost ~]#vi /etc/resolv.conf


Samba ์๋ฒ ๊ตฌ์ถ
[root@localhost ~]#dnf โy install samba-clinet
[root@localhost ~]#vi /etc/samba/smb.conf
[root@localhost ~]#useradd shared
[root@localhost ~]#passwd shared
[root@localhost ~]#smbpasswd โa share
[root@localhost ~]#group smbgroup
[root@localhost ~]#mkdir /share
[root@localhost ~]#chown smbuser.smbgroup /share
[root@localhost ~]#chmod 770 /share
[root@localhost ~]#systemctl restart smb
[root@localhost ~]#systemctl restart nmb


Server 3
โถ mail Server :
dnf -y install sendmail dovecot
/ Sendmail SMTP ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ ๋ฉ์ผ์ ์ฃผ๊ณ ๋ฐ๋ ํต์ฌ ์๋ฒ
/ Dovecot ์ฌ์ฉ์์ ๋ฐ์ ํธ์งํจ(๋ฉ์ผ๋ฐ์ค)๊ณผ ์ฐ๊ฒฐํ๋ ์ญํ
#vi /etc/mail/sendmail.cf
85ํ
Cwdaum1.com
#vi /etc/mail/local-host-names
mail.daum1.com
hostnamectl set-hostname mail.daum1.com #ํธ์คํธ ์ด๋ฆ ๋ณ๊ฒฝ
exec bash
#vi /etc/mail/access
daum1.com RELAY
10.0.1 RELAY
dovecot ์ค์
systemctl start dovecot
#vi /etc/dovecot/dovecot.conf
24ํ ์ฃผ์ ์ ๊ฑฐ
30ํ ์ฃผ์ ์ ๊ฑฐ
33ํ ์ฃผ์ ์ ๊ฑฐ
#vi /etc/dovecot/conf.d/10-mail.conf
25ํ ์ฃผ์ ์ ๊ฑฐ
121ํ mail_access_groups = mail
systemctl restart sendmail dovecot
firewall-cmd --add-service=imap
firewall-cmd --add-service=smtp
firewall-cmd --add-service=pop3
firewall-cmd --add-service=imaps
firewall-cmd --add-service=smtps
firewall-cmd --add-service=pop3s
firewall-cmd --runtime-to-permanent
useradd mailuser1
passwd mailuser1
vi /etc/resolv.conf
nameserver 10.0.1.99 # ์ธ๋ถ DNS ์๋ฒ IP (์: dns.example.com)




์น ๋ฆฌํฌ์งํฐ๋ฆฌ
dnf โy install httpd
mkdir /var/www/html/repo
dnf โy install yum-utils createrepo
reposync โm โrepoid=baseos โnewest-only โdownload
-metadata โp /var/www/html/repo
createrepo โg comps.xml /var/www/html/repo/baseos

Server 4
- Server 3๋์ผ ๊ตฌ์ฑ
Server 5
Ansible File
---
- name: Solution / install web, change timezone, NFS server
hosts: cloud
become: yes
tasks:
# ํ์์กด ๋ณ๊ฒฝ
- name: Change timezone
timezone:
name: Asia/Seoul
# ์ ์ ์ถ๊ฐ
- name: useradd
user:
name: ansibleuser
password: ansible
# ์์๋ธ ๋
ธ๋ ์น ์๋ฒ๋ก ๊ตฌ์ฑ
- name: Install httpd php*
dnf:
name: "{{ item }}"
state: latest
with_items:
- httpd
- php
- name: start httpd
service:
name: httpd
state: started
enabled: yes
# WEB ํ์ด์ง ์์ฑ
- name: Deploy index.php template
template:
src: ~/index.php.j2
dest: /var/www/html/index.php
vars:
title: "ํด๋น ํ์ด์ง๋ Node1์ ์ฐ๊ฒฐ๋์ด ์๋ ํ์ด์ง ์
๋๋ค."
heading: "ํด๋น ํ์ด์ง๋ Node1์ ์ฐ๊ฒฐ๋์ด ์๋ ํ์ด์ง ์
๋๋ค."
message: "Name EC2-node1"
when: ansible_host == "3.39.22.9"
# WEB ํ์ด์ง ์์ฑ
- name: Deploy index.php template
template:
src: ~/index.php.j2
dest: /var/www/html/index.php
vars:
title: "ํด๋น ํ์ด์ง๋ Node2์ ์ฐ๊ฒฐ๋์ด ์๋ ํ์ด์ง ์
๋๋ค."
heading: "ํด๋น ํ์ด์ง๋ Node2์ ์ฐ๊ฒฐ๋์ด ์๋ ํ์ด์ง ์
๋๋ค."
message: "Name: EC2-node2"
when: ansible_host != "3.39.22.9"
# NFS ์๋ฒ ์ค์
- name: install nfs server
dnf:
name: nfs-utils
state: latest
- name: start nfs server
service:
name: nfs-server
state: started
enabled: yes
- name: create nfs directory
file:
path: /nfsserver
state: directory
mode: 0777
- name: export nfs directory
lineinfile:
path: /etc/exports
line: "/nfsserver *(rw,sync,no_root_squash)"
- name: start nfs server
service:
name: nfs-server
state: restarted
- name: make testfile
file:
path: /nfsserver/testfile
state: touch
# NFS ํด๋ผ์ด์ธํธ ์ค์
- name: make directory
file:
path: /nfsclient
state: directory
- name: install nfs-utils
dnf:
name: nfs-utils
state: latest
- name: mount to nfs server
mount:
path: /nfsclient
src: 13.125.251.142:/nfsserver
fstype: nfs
state: mounted

'Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Project] ๋คํธ์ํฌ ๋ณด์ ์ค์ต ๋ฐ๊ณต๊ฒฉ ๋์ ์๋ฎฌ๋ ์ด์ (0) | 2025.04.24 |
---|---|
[Cloud] Ethercap (0) | 2025.04.10 |
[Mini_Cloud] ELB๋ฅผ ํ์ฉํ ์น ์๋ฒ ๊ตฌ์ถ (0) | 2025.03.28 |
[Mini_Project] ๋ณธ์ฌ_์ง์ฌ VPN ํ์ฉํ ๋คํธ์ํฌ ๋ฐ ์๋ฒ ๊ตฌ์ถ (0) | 2025.03.02 |
[Mini_Project] ๋ณธ์ฌ_์ง์ฌ VPN ํ์ฉํ ๋คํธ์ํฌ ๋ฐ ์๋ฒ ๊ตฌ์ถ_์๊ฐ (0) | 2025.02.20 |