- 조명키고 해도 잘 보임
- 스크립트를 보는 것이 다 티났다. (스크립트 안보는 것을 권장)
- 음향체크가 필요할 것 같다.
- 3명 조에 가산점을 주었다
- 시연동영상이 있다면, 자막이나 음성 멘트를 넣는것이 좋다. (최종 시연에서는 할 수 없을 것이다.)
- 발표할 떄에, NAT GateWay는 AWS의 서비스의 명칭이다. 우리는 NAT를 개발한 것이고, NAT GateWay서비스를 따라해본 것이다.
- 라우터를 경험한 것이다.
- 2차 세미프로젝트 과제
- 프라이빗 클라우드 (ESXi, Openstack)와 퍼블릭 클라우드(AWS, Azure, GCP, Alibaba)를 융복합한 멀티클라우드 설계 및 구축- 3차
- 애자일 개발 환경을 위한 DebOps CI/CD 파이프라인 자동화 프로젝트
- 인프라 [운영체제 (리눅스, 윈도우), 서버(WEB, DNS, DB, SAMBA, NFS), 네트워크(NAT;라우터, DHCP; IP 자동부여, HAproxy; L4, L7 S/W)]
- 발표할 떄에, NAT GateWay는 AWS의 서비스의 명칭이다. 우리는 NAT를 개발한 것이고, NAT GateWay서비스를 따라해본 것이다.
- 라우터를 경험한 것이다.
- L4, L7스위치에서도 라우팅을 할 수 있다.
- L4 : 전송계층, Port번호로 라우팅 할 수 있다.
- L7 : 어플리케이션 계층, 로그를 파악하여 Edge, FireFox, Chrome등을 구별하여 라우팅 할 수 있다.
- 가상화 [하이퍼바이저 타입 I (ESXi)], 프라이빗 클라우드 [Openstack], 언어 [Python, Go-lang], 퍼블릭 클라우드 [AWS, Azure, GCP, Alibaba], 클라우드 보안
- 자동화 도구 [Terraform, Ansible], 컨테이너 기술 [Docker, Kubernetes], CI/CD[Jenkins, Gitlab, AWS CodeCommit, CodeBuild, CodeDeploy, CodePipeline]
- AWS : 두루두루 사용 가능
- Azure : Microsoft
- GCP : Kubernetes, Docker를 사용을 고려한다면 좋다.
- Alibaba
- Oracle
- IBM : Watson 서비스를 이용할 떄 좋다.
- KT cloud
- 공공기관에서 사용하는 클라우드 서비스
- 테넌트 (Tenant, 임차인) : User, 사용자
- ESXi의 전원을 올리고, 웹브라우저에서 IP주소로 접속한다.
- 설정을 편집한다.
- NAT 네트워크 연결상태 확인
- vSwitch0 에 EXTERNAL
- vSeitch1 에 INTERNAL 이 들어가 있어야 한다.
- 위 vSwitch를 네트워크 그룹이라고 한다.
- 서버 네트워크 연결 확인
- INTERNAL 하나가 연결되어야한다.
- MobaXterm에서 새로운 폴더를 만든다.
-MZ-NETWORK
이름으로 만들어 준다.- 저번 시간에 NAT서버에 키를 주었다. Mobaxterm에 접속하여 세션을 설정하여 새로운 세션을 만든다.
hostnamectl set-hostname nat
- 호스트이름을 바꾼다.
-hostnamectl
만 치면 어떻게 나오나?
- 현재 Hypervisor, kernel등 여러 정보가 나온다.
- 현재 EXSi의 랜카드를 써서 enp0s8이 아니라 ens192로 잡혀있는 것을 볼 수 있다.
- IP를 고정으로 바꾼다.
vi /etc/sysconfig/network-scripts/ifcfg-ens192
- 처음 정의되어있는 정보이다. 이것은
NetworkManager
가 구성해주는 것이다.
- 현재 IP를 고정으로 만들어준다.vi /etc/sysconfig/network-scripts/ifcfg-ens224
- INTERNAL 네트워크 그룹을 사용할 랜카드를 설정한다.
- 게이트웨이 IP를 준다. (1 혹은 254를 주로 부여한다.)
yum install bask-completion -y
- 명령어 자동완성 하기위해 설치nmcli c mod ens192 connection.zone external
-nmcli
네트워크 매니저 기능 이용, 이 기능을 이용하려면 NetworkManager가 켜져있어야 한다.
- IP_Forward 설정까지 해준다.
- yum install dhcp -y
- vi /etc/dhcp/dhcpd.conf
ddns-update-style interim; subnet 10.0.28.0 netmask 255.255.255.0 { # = 10.0.28.0/24 option routers 10.0.28.1; option subnet-mask 255.255.255.0; range dynamic-bootp 10.0.28.100 10.0.28.200; option domain-name-servers 10.0.28.1, 8.8.8.8, 8.8.4.4; default-lease-time 7200; max-lease-time 86400; }
- systemctl enable --now dhcpd
- 포트포워딩을 설정한다.
[root@nat .ssh]# firewall-cmd --permanent --zone=external --add-forward-port=port=220:proto=tcp:toport=22:toaddr=10.0.28.100 [root@nat .ssh]# firewall-cmd --permanent --zone=external --add-forward-port=port=221:proto=tcp:toport=22:toaddr=10.0.28.101 [root@nat .ssh]# firewall-cmd --permanent --zone=external --add-forward-port=port=222:proto=tcp:toport=22:toaddr=10.0.28.102 [root@nat .ssh]# firewall-cmd --permanent --zone=external --add-forward-port=port=3389:proto=tcp:toport=3389:toaddr=10.0.28.103 [root@nat .ssh]# firewall-cmd --reload
- Uubuntu에 연결이 안됬다.
- IP에 22포트로 연결했는데도 연결이 안된다.
- 핑도 나가는뎅....
ss -ant
명령어로 확인해보면 SSH가 설치가 되어있지 않았다.
- 지금 이미지는 설치 후 화면이다.
-sudo apt-get install -y openssh-server
명령어로 openssh를 설치해주면 된다.
- 위 오류는, 처음 설치할 떄 SSH옵션에 체크를 해주고 설치를 했어야 하는데 체크가 안되어 설치가 안되서 생기는 오류이다.
yum -y install bind bind-chroot bind-utils
- bind (berkeley internet name domain)vi /etc/named.conf
options { listen-on port 53 { 127.0.0.1; 192.168.0/24; 10.0.28/24; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { localhost; 192.168.0/24; 10.0.28/24; }; forwarders { 8.8.8.8; 8.8.4.4; }; recursion yes; dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view "internal" { zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/var/named/cocudeny.shop.zones"; # 호스팅 영역 생성 };
vi /var/named/cocudeny.shop.zones
: 정방향, 역방향 정보가 담겨있는 파일 정의zone "cocudeny.shop" IN { type master; file "cocudeny.shop.db"; allow-update { none; }; }; zone "28.0.10.in-addr.arpa" IN { type master; file "28.0.10.in-addr.arpa.db"; allow-update { none; }; };
vi /var/named/cocudeny.shop.db
- 정방향 DNS가 적혀있는 db파일 작성
vi /var/named/28.0.10.in-addr.arpa.db
:역방향 정의$TTL 86400 @ IN SOA cocudeny.shop. root.cocudeny.shop.( 2022041401 ; Serial 3h ; Refresh 1h ; Retry 1w ; Expire 1h ) ; Minimum IN NS ns.cocudeny.shop. 1 IN PTR ns.cocudeny.shop.
systemctl enable --now named
: bind를 설치했는데 실행은 namedfh wlsgodgksek.firewall-cmd --permanent --add-service-dns
firewall-cmd --reload
systemctl resatart NetworkManager.
- 다른 서버들은 DNS주소를 잘 가져오겠지만, NAT서버는 스스로 가져오지 못할 것이다. 그래서, ens192를 수정하여 직접 넣어준다
- 또, 추가적으로
PEERDNS=np
옵션까지 추가해준다. 그래야 외부 HostPC에서 들어오는 외부 DNS정보를 안가져올 수 있다.
cat /etc/resolb.conf
으로 DNS주소 정보를 확인한다.
vi /etc/yum.repos.d/MariaDB.repo
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.4/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
yum install -y MariaDB
: repo에 설정한 대로 MariaDB 설치rpm -qa | grep MariaDB
: 설치된 패키지 확인mariadb --version
: 마리아db 버전 확인 (제대로 설치되었는지 확인)
systemctl enable --now mariadb
: 마리아 db 실행 및 자동실행mysql_secure_installation
: 마리아 db 보안관련 설치Enter current password for root (enter for none)
- 현재 root 패스워드사용중이라면 입력Switch to unix_socket authentication [Y/n] Change the root password? [Y/n] y Remove anonymous users? [Y/n] Disallow root login remotely? [Y/n] Remove test database and access to it? [Y/n] Reload privilege tables now? [Y/n] y
systemctl restart mariadb
: 마리아db 재시작mysql -u root -p
: 마리아 db root로 접속CREATE USER 'kosa'@'%' IDENTIFIED BY 'kosa0401';
CREATE DATABASE IF NOT EXISTS workpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'kosa'@'%';
quit
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
ss -ant
: 열린 포트를 확인 할 수 있다.sudo apt install openssh-server
: ssh를 사용할 수 있도록openssh-server
를 다운로드 한다.
- Window <-> Linux 사이에 파일 공유를 돕는 서비스다.
- 그러나 Window에서는 SAMBA라고 안하고, smb(Sub message block)라고 말한다.
yum install -y samba
: 삼바 설치mkdir -p /var/samba/share
: 재귀적으로 없는 폴더경로에 폴더를 만든다.chmod 707 /var/samba/share
: 권한 설정
- 만약 권한이 704면 읽기(다운로드)만 할 수 있다.
- 또, 702 면 쓰기(업로드)만 가능하다.
- 이렇게 권한을 부여할 수 있다.
adduser kosa
: kosa 계정 생성passwd kosa
: kosa의 비밀번호 변경smbpasswd -a kosa
: kosa계정으로 samba 계정 생성vi /etc/samba/smb.conf
: smb conf 설정[share] comment = Share Directory path = /var/samba/share browserable = yes writable = yes valid users = kosa create mask = 0777 directory mask = 0777
systemctl enable --now smb nmb
: smb, nmb 둘다 시작 및 자동시작WEB03 (Window2012)에서 접속할 수 있다.
그럼 HOSTPC에서 접속하려며 어떻게 해야할까?NAT에서 포트포워딩을 진행해야 한다.
SAMBA PORT : 139, 445
firewall-cmd --permanent --zone=external --remove-forward-port=port=449:proto=tcp:toport=449:toaddr=10.0.28.101
firewall-cmd --permanent --zone=external --remove-forward-port=port=449:proto=tcp:toport=449:toaddr=10.0.28.101
접속 가능
- 워드프레스 최신버전을 zip파일로 다운로드 받아준다.
yum install -y nfs-utils
: nfs 설치, NFS는 많이 사용하는 서비스이다. 특히 AWS EFS는 자주 사용된다.mkdir /share && cd $_
: /share 폴더 생성 후, 그 폴더로 이동echo "Hello" > test.txt
: test.txt폴더를 생성vi /etc/exports
: exports (자동 마운트)설정, 전에는 mask에*
를 넣어 모든 IP가 접속 가능하게 설정했었다./share 10.0.28/24(rw,sync)
- `chmod 707 /share` : 권한 변경 - `systemctl enable --now nfs-server` : 시작 + 자동 시작 - `exports -v` exports(자동마운트)가 잘 설정됬는지 확인
- 왜ㅑ 안ㄷ-매ㅑㄴ유
- IP주소로 안되서, 도메인네임주소도 저장해본다.
- exportfs -v가 잘 나온다.
- test.txt가 확인된다!
- nfs-common으로 다운로드 받아야 한다.
- 경로 또한, /home/cocudeny/share로 해준다.
- test.txt확인
global
daemon
defaults
mode http
frontend http-in
bind *:80
acl firefox hdr_sub(User-Agent) Firefox
acl chrome hdr_sub(User-Agent) Trident
default_backend backend_servers
use_backend bk_firefox if firefox
use_backend bk_trident if trident
backend backend_servers
balance roundrobin
# cookie SVID insert indirect nocache maxlife 10s
server web01 10.0.28.102:80 cookie w1 check
server web02 10.0.28.100:80 cookie w2 check
server web03 10.0.28.103:80 cookie w3 check
backend bk_firefox
server web01 10.0.28.102:80
backend bk_trident
server web02 10.0.28.100:80
- 기존 데이터를 제거하고 시작한다.
sudo apt-get autoremove php7.2 php7.2-mysql php7.2-mbstring php7.2-gd -y
아까 설치한 PHP7버전을 삭제한다.sudo apt-get autoremove nginx -y
Nginx까지 삭제sudo apt update && sudo apt upgrade -y
: 업데이트 업그레이드
- Public Cloud에서는 Reboot하는것이 아니지만, VM은 Reboot가 필요하다.sudo apt install -y nginx
: nginx 다시설치sudo apt install -y php7.2 php7.2-mysql php7.2-mbstring php7.2-gd php7.2-fpm unzip wget
: PHP7 간략화버전 다운로드, 만약 부족하면 아래 코드로 다시 다운로드 한다.sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl unzip wget
: PHP7버전 다시 다운로드sudo mkdir -p /var/www/html/wordpress/public_html
: - WordPress경로 만들기sudo nginx -t
: nginx 상태 확인cd /etc/nginx/sites-available
: nginx에서 기본으로 제공하는 폴더, 여기서 ~~~.conf 파일을 만들어서 site-enable에 심볼릭링크를 걸면, 설정이 적용된다.sudo vi wordpress.conf
: conf파일 생성server { listen 80; # 경로의 루트 지정 root /var/www/html/wordpress/public_html; index index.php index.html; ##index 우선순위 server_name nat.cocudeny.shop; ##자기 도메인인지 확인 # 에러 로그 어디다 담을지 access_log /var/log/nginx/SUBDOMAIN.access.log; error_log /var/log/nginx/SUBDOMAIN.error.log; location / { ## 404 에러 위치 try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } }
sudo nginx -t
: nginx가 잘 구동되는지 확인
cd /etc/nginx/sites-enabled
: enabled 폴더로 이동
sudo ln -s ../sites-available/wordpress.conf
: wordpress.conf의 링크를 enabled폴더에 넣는다.
sudo systemctl reload nginx
: 리로드
cd /var/www/html/wordpress/public_html
: public_html로 다시 이동
DB서버
cp /var/samba/share/files/wordpress-5.9.3-ko_KR.zip /share
: SAMBA 공유폴더에 있는 워드프레스를 NFS 공유폴더에 복사해준다.
chmod 707 /share/wordpress-5.9.3-ko_KR.zip
: 다운로드 받을 수 있게 권한설정해준다.
WEB02
cd /var/www/html/wordpress/public_html
: 폴더 이동
sudo unzip wordpress-5.9.3-ko_KR.zip
: zip파일의 압출을 풀어준다.
sudo mv wordpress/* .
: 워드프레스폴더 안의 파일들을 다 꺼내준다.
sudo chown -R www-data:www-data *
- 소유자를 www-data로 바꿔준다. CentOS7에는 Apache로 바꾸는 것과 동일하다.
- Server용 OS이기 떄문에 Server가 여러가지 있을 수 있다.
- 그냥 넘어가도 되지만, 필요할 수 있어 Client for NFS를 체크하고 넘어간다.
WebPlatformInstaller 설치
- 공유받은 WebPlatformInstaller 파일을 PC에서 검색창에
\\db.cocudeny.shop
로 검색해 SAMBA에 공유한다.- WEB03으로 들어가서 똑같이 SAMBA에서 받아 설치해준다.
설치 계속