5.6

w0nyyy·2022년 5월 6일
1

리뷰

저번주에 웹 ui에서 작업
네트워크꾸미기. vm만들기. 클라우드 플랫폼을 처음으로 만들어봄
오픈스택부터는 클라우드에 접근
번거로웠던 구축이 ex) NAT 등.. 간단해졌다. -> 클라우드 서비스의 특징
웹 UI 마무리 짓고 CLI에서 진행해볼 것.

오픈스택

HAPROXY만들고 2대의 웹서버, 1 DB 서버 해볼것

구성도

클라우드는 포트포워드 개념이 없음, 클라우드는 라우터의 기능이 내재되어 있어 크게 신경안써도됨-> 종속성이 생길 수 있다.

인스턴스만들기

진행이 잘되면 워드프레스 설치할 것
CentOS wordpress 설치
프로젝트 - 인스턴스 클릭 - 인스턴스 시작 클릭

[centos@web01centos7 ~]$ sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[centos@web01centos7 ~]$ sudo yum -y install epel-release yum-utils
[centos@web01centos7 ~]$ sudo yum-config-manager --enable remi-php74
[centos@web01centos7 ~]$  sudo yum install -y httpd php php-mysql php-gd php-mbstring wget unzip


컨테이너(swift) 생성
* 도커 컨테이너 아님, 저장소임
프로젝트 - 오브젝트 스토리지 선택 - 컨테이너 - +컨테이너

파일 업로드하고, 폴더를 생성할 수도 있다.


images 폴더 만들었고, 안에 토끼 이미지 업로드


체크하면 공유가능, Link 선택 후 폴더 경로와 파일명 써서 링크 공유해주면 된다.
링크로 서버에서 wget을 이용해서 다운가능(url서비스, 오브젝트 스토리지)


공유받은 index.html 파일 root 경로에 업로드

Link 주소 뒤에 index.html로 접속하면 정적인 웹페이지가 나온다.
정적웹사이트 호스팅의 기능을 한다.

ko.wordpress.org 에 들어가서 워드프레스 파일 다운 받아서 오프젝트 스토리지에 올려준다.

[centos@web01centos7 ~]$ wget http://192.168.0.68:8080/v1/AUTH_e1a591ef8b644c8fac35203bad171100/mz19/wordpress-5.9.3-ko_KR.zip	// centos 웹서버에 워드프레스 다운
[centos@web01centos7 html]$ cd /var/www/html/
[centos@web01centos7 html]$ sudo unzip /home/centos/wordpress-5.9.3-ko_KR.zip
// 현재 경로에 압축 풀기, 경로 유의하자

[centos@web01centos7 html]$ ls
wordpress
[centos@web01centos7 html]$ sudo mv wordpress/* .
[centos@web01centos7 html]$ sudo chown -R apache:apache /var/www/*

[centos@web01centos7 html]$ sudo systemctl restart httpd
[centos@web01centos7 html]$ sestatus
SELinux status:                 disabled
[centos@web01centos7 html]$ sudo php -v
PHP 7.4.29 (cli) (built: Apr 12 2022 10:55:38) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies




볼륨


프로젝트 - 볼륨 선택 - 볼륨 또 선택
루트(vda, 윈도우에선 c드라이브) 볼륨이 10GB 존재하는 것을 확인
인스턴스가 지워지더라도 볼륨은 남아있을 것. 미리 설정해놨기 때문에

볼륨 추가

루트볼륨 용량이 부족할 시, 추가할 수 있다.
볼륨 생성 아이콘 클릭

크기 지정해주기.
WEB01에 ADD볼륨 붙이기

볼륨 연결관리 선택

WEB01연결
* Attach : 연결, detach : 연결 해제

마운트하기위해서 mobaxterm 접속

[centos@web01centos7 html]$ cd ~

[centos@web01centos7 ~]$ lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  10G  0 disk
└─vda1 253:1    0  10G  0 part /
vdb    253:16   0   1G  0 disk

[centos@web01centos7 ~]$ df -h	// 마운트가 안되어있음, vdb
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        472M     0  472M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M   13M  483M   3% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda1        10G  1.2G  8.8G  12% /
tmpfs           100M     0  100M   0% /run/user/1000

[centos@web01centos7 ~]$ sudo mkfs -t ext4 /dev/vdb
[centos@web01centos7 ~]$ sudo mount /dev/vdb /mnt/
[centos@web01centos7 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        472M     0  472M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M   13M  483M   3% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda1        10G  1.2G  8.8G  12% /
tmpfs           100M     0  100M   0% /run/user/1000
/dev/vdb        976M  2.6M  907M   1% /mnt


//워드프레스 파일 추가볼륨에 복붙
[centos@web01centos7 ~]$ sudo cp wordpress-5.9.3-ko_KR.zip /mnt/

우분투
우분투 이미지 올리기
프로젝트 - 컴퓨트 - 이미지(Glance) - 이미지 생성 클릭


* bionic server : Ubuntu 18 의미
* qcow2로 사용하는 것이 좋다. 호환성이 좋음

지난시간에 키페어와 보안그룹, floating ip를 만들어줘서 따로 생성 필요x
만들지않으면 곤란한 상황 발생 미리 생성해두자!

우분투 인스턴스 생성
프로젝트 - 컴퓨트 - 인스턴스 클릭 - 인스턴스 생성 클릭


세부정보

인스턴스 이름 설정

소스

소스 설정, 우분투 올리고 볼륨크기 조정

Flaver

m1.micro 올리기

네트워크

INTERNAL 올리기


네트워크 포트
* 네트워크 포트 스킵

보안 그룹

default 내리고 sg-web 올리기.

키 페어

* 키페어는 이미 올라가있음

구성

인스턴스가 만들어지는 과정에서 미리 세팅이 되도록 사용자 정의 스크립트(shell)에 명령어를 넣는다.
* 규칙 : 첫 줄에 꼭 #!/bin/bash. root 권한으로 실행되기 때문에 sudo를 넣지않아도 된다.

Floating ip 넣기

프로젝트 - 인스턴스 - web02에서 오른쪽 드롭다운

named에 ip넣어주기.dns에 등록.

ping 도메인으로 잘 날라가는지 확인

웹 서버 접속 잘 되는 지 확인

mobaXterm web02 세션 생성

web01에서 볼륨 마운트해제 후 web02에 마운트

ubuntu@web02ubuntu18:~$ lsblk	// vda만 있음
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda     252:0    0   10G  0 disk
├─vda1  252:1    0  9.9G  0 part /
├─vda14 252:14   0    4M  0 part
└─vda15 252:15   0  106M  0 part /boot/efi

web01에서 이용중인 볼륨을 떼어서 붙일 수 있다.
web01 언마운트

// web01 에서
[centos@web01centos7 ~]$ cd ~
[centos@web01centos7 ~]$ sudo umount /mnt
[centos@web01centos7 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        472M     0  472M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M   13M  483M   3% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda1        10G  1.2G  8.8G  12% /
tmpfs           100M     0  100M   0% /run/user/1000

attach - mount - umount - detach 순서로 진행

프로젝트 - 볼륨 - 볼륨 - web01-ADD 오른쪽 드롭다운 - 연결관리 - 연결해제

WEB02 마운트

프로젝트 - 볼륨 - 볼륨 - web01-ADD 오른쪽 드롭다운 - 연결관리 - WEB02에 연결

ubuntu@web02ubuntu18:~$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda     252:0    0   10G  0 disk
├─vda1  252:1    0  9.9G  0 part /
├─vda14 252:14   0    4M  0 part
└─vda15 252:15   0  106M  0 part /boot/efi
vdb     252:16   0    1G  0 disk

ubuntu@web02ubuntu18:~$ sudo mount /dev/vdb /mnt/

ubuntu@web02ubuntu18:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            481M     0  481M   0% /dev
tmpfs            99M  648K   98M   1% /run
/dev/vda1       9.6G  1.3G  8.3G  14% /
tmpfs           493M     0  493M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           493M     0  493M   0% /sys/fs/cgroup
/dev/vda15      105M  4.4M  100M   5% /boot/efi
tmpfs            99M     0   99M   0% /run/user/1000
/dev/vdb        976M   23M  887M   3% /mnt	 # 마운트 확인

마운트만 해주면 된다. 포맷할 필요 X


우분투 워드프레스 설치

ubuntu@web02ubuntu18:~$ sudo apt install -y php7.2 php7.2-mysql php7.2-mbstring php7.2-gd php7.2-fpm wget unzip
ubuntu@web02ubuntu18:~$ sudo mkdir -p /var/www/html/wordpress/public_html
ubuntu@web02ubuntu18:~$ cd /etc/nginx/sites-available
$ sudo vi wordpress.conf
server {
            listen 80;
            root /var/www/html/wordpress/public_html;
            index index.php index.html;
            server_name www.mz19.shop;		# 도메인 변경

	    access_log /var/log/nginx/SUBDOMAIN.access.log;
    	    error_log /var/log/nginx/SUBDOMAIN.error.log;

            location / {
                         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;
           }
}

ubuntu@web02ubuntu18:/etc/nginx/sites-available$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# successful , ok 떠야한다

# 위에서 만든 것 링크해주기
ubuntu@web02ubuntu18:/etc/nginx/sites-available$ cd /etc/nginx/sites-enabled/

ubuntu@web02ubuntu18:/etc/nginx/sites-enabled$ sudo ln -s ../sites-available/wordpress.conf .
ubuntu@web02ubuntu18:/etc/nginx/sites-enabled$ sudo systemctl reload nginx
ubuntu@web02ubuntu18:/etc/nginx/sites-enabled$ cd /var/www/html/wordpress/public_html
ubuntu@web02ubuntu18:/var/www/html/wordpress/public_html$ sudo unzip /mnt/wordpress-5.9.3-ko_KR.zip

ubuntu@web02ubuntu18:/var/www/html/wordpress/public_html$ sudo mv wordpress/* .
ubuntu@web02ubuntu18:/var/www/html/wordpress/public_html$ sudo chown -R www-data:www-data *
ubuntu@web02ubuntu18:/var/www/html/wordpress/public_html$ sudo chmod -R 755 *

DB 서버 생성

콘솔 - 프로젝트 - 네트워크 - 보안그룹 - 보안그룹생성


규칙 추가 클릭 - MY SQL - 규칙 추가

SSH 추가

핑 추가

HAProxy

프로젝트 - 인스턴스 - 인스턴스 생성
세부 정보

소스

Centos, 볼륨 크기 10GB
Flavor

m1.micro
네트워크

INTERNAL
보안그룹

SG-WEB
인스턴스 시작

Flavor nano생성

인스턴스 생성 중 에러가 나서 사양을 낮추어서 진행하기 위해 nano Flavor를 생성한다.


오류난 인스턴스와 available상태인 볼륨을 삭제

Flavor nano 변경

프로젝트 - 컴퓨트 - 인스턴스 - web01 드롭다운 - 인스턴스 크기 변경 - m1.nano 선택
크기변경, 이전확인 클릭

web01 -> wordpress

web02 -> DATABASE

보안그룹 변경

인스턴스 - DATABASE 드롭다운 - 포트 보안그룹 편집 - SG-DB로 선택

openstack cli 접속

루트 볼륨 늘리기 Scale up

서비스 구동 중에도 볼륨 늘릴 수 있다.

볼륨 확장 클릭

새로운 크기 지정. scale up(수직적 확장)이라고 한다. 5GB가 늘어난다. <-> scale down(수직적 축소)
* 늘어난 볼륨을 줄이는 경우는 없다.!!

에러남

0개의 댓글