"UCloud"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
잔글 |
잔글 (→사이트 구축) |
||
(같은 사용자의 중간 판 3개는 보이지 않습니다) | |||
259번째 줄: | 259번째 줄: | ||
yum repolist //--- epel repoistory가 잘 추가되어 있는지 repository 목록을 확인 합니다. | yum repolist //--- epel repoistory가 잘 추가되어 있는지 repository 목록을 확인 합니다. | ||
− | ==UCloud의 Disk Mount== | + | == UCloud의 Disk Mount == |
− | + | ||
+ | [[Storage#Linux_Storage|Linux Storage]] | ||
==Software 설치== | ==Software 설치== | ||
387번째 줄: | 388번째 줄: | ||
vi .bashrc | vi .bashrc | ||
. .bashrc | . .bashrc | ||
+ | |||
+ | == 메일 서버 구축 == | ||
+ | Mail Server | ||
+ | |||
+ | 참고 문헌 | ||
+ | * [https://arodream.wordpress.com/2018/03/14/%EC%9D%B4%EB%A9%94%EC%9D%BC-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-struct-email-server/ 이메일 서버 구축하기 (struct email server), 2018.3] | ||
==사이트 구축== | ==사이트 구축== | ||
673번째 줄: | 680번째 줄: | ||
== KT UCloud 관리자 가이드 == | == KT UCloud 관리자 가이드 == | ||
+ | |||
+ | === 서버 신청 === | ||
+ | |||
+ | [[File:UCloud get server001.png|700px]]<br/> | ||
+ | [[File:UCloud get server002.png|700px]]<br/> | ||
+ | [[File:UCloud get server003.png|700px]]<br/> | ||
== 참고 문헌 == | == 참고 문헌 == |
2018년 7월 19일 (목) 02:44 기준 최신판
UCloud biz를 정리 합니다.
- 홈페이지 : https://ucloudbiz.olleh.com/
목차
UCloud Architecture
분류 | FOSS | 상용 S/W |
Cloud OS |
|
|
Hypervisor | ||
Storage |
|
|
Manage |
|
|
Automation |
|
|
Monitoring | ||
Logging & Analyze |
UCloud 기본 설정
- CentOS 6.4 x86_64 서버를 설정 합니다.
Server 준비
- 방안 1 : UCloud 사이트에서 서버를 신청 합니다.
- UCloud 사용시 Port Forwarding 설정
- "클라우드 콘솔 -> 네트워크 -> [서버 선택] -> Port Forwarding" 메뉴에서 22/tcp 등록
- 22 port는 SSH 포트로서 ssh와 sftp (SSH File Transfer Protocol)에서 사용 합니다.
- 방안 2 : Oracle VirtualBox에서 가상 서버를 구축 합니다.
- 가상 서버의 Memory를 1024 MB 이상을 설정하여야 GUI 화면이 뜨면서 제대로 설치가 됩니다.
- VirtualBox Network 설정 참조
- Network Adapter 1 : NAT
- Network Adapter 2 : 호스트 전용 어댑터
- "VirtualBox Host-Only Ethernet Adapter" 설정
- VirtualBox에서 "파일 -> 환경 설정 -> 네트워크 -> VirtualBox Host-Only Ethernet Adapter" 메뉴를 선택 합니다.
- 어댑터
- IPv4 주소 : 192.168.56.1
- IPv4 서브넷 마스크 : 255.255.255.0
- DHCP 서버
- 서버 사용함 선택
- 서버 주소 : 192.168.56.100
- 서버 마스크 : 255.255.255.0
- 최저 주소 한계 : 192.168.56.101
- 최대 주소 한계 : 192.168.56.254
CentOS 설치
- CentOS - 설치 문서를 참조하여 CentOS를 설치 합니다.
- 설치시 "Basic Server"를 선택하여 설치 합니다.
- Network 카드 재기동
ifconfig -a #--- Network 카드별로 IP 값이 표시되지 않으면 아래 실행 vi /etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT=yes vi /etc/sysconfig/network-scripts/ifcfg-eth1 ONBOOT=yes service network restart ifconfig -a #--- Network 카드별로 IP값이 표시되는 지 확인
- Putty로 eth1에 할당된 IP를 사용하여 접속 합니다.
- UTF-8 설정
- "창 -> 변환 -> 수신한 데이터를 이 문자셋으로 가정" 에서 "UTF-8"을 선택 합니다/
- 작업 폴더 생성
mkdir /appl mkdir /cloudnas cd /cloudnas mkdir backup mkdir bin mkdir config mkdir custom mkdir database mkdir install mkdir logs mkdir template mkdir www cd www mkdir html
- vi ~/.bashrc
### ---------------------------------------------------------------------------- ### Linux Bash Shell 설정 ### ---------------------------------------------------------------------------- alias dir='ls -alF' alias dird='ls -alF | grep /' export LANG=ko_KR.utf8 ### ---------------------------------------------------------------------------- ### Linux Bash Shell Script를 위한 설정 ### ---------------------------------------------------------------------------- export CONFIG_DIR=/cloudnas/config export DOCUMENT_SUB=none if [ [ $DOCUMENT_SUB = 'none' ] ]; then #--- 복사하여 붙일때는 여기에 빈공백을 제거하세요 CDPATH=.:/cloudnas/www/html:/cloudnas:/appl else CDPATH=.:/cloudnas/www/html/$DOCUMENT_SUB:/cloudnas:/appl fi PATH=$PATH:/cloudnas/bin
- .bashrc 실행
cd . .bashrc
Network Setting
- Network 설정 파일 확인
ifconfig -a #--- Network 카드의 이름을 확인 합니다. (lo, eth0, eth1) cd /etc/sysconfig/network-scripts/ ls -alF ifcfg-*
- vi /etc/sysconfig/network-scripts/ifcfg-eth0
#--- eth0 네트워크 카드에 DHCP 설정시 DEVICE=eth0 HWADDR=08:00:27:C5:DB:97 TYPE=Ethernet UUID=4ccc4e1f-1ac3-42b7-8085-2f1f6ce969f0 ONBOOT=yes #--- no로 되어 있으면 yes로 수정 합니다. NM_CONTROLLED=yes BOOTPROTO=dhcp #--- DHCP를 사용하여 자동으로 IP를 할당 받도록 합니다. DNS2=168.126.63.1 DNS1=164.124.101.2 USERCTL=no PEERDNS=yes IPV6INIT=no
- ONBOOT가 no로 되어 있을 경우 yes로 수정한 후 network 카드를 동작하도록 하는 방법
ifdown eth0 ifup eth0 ifconfig -a
- vi /etc/sysconfig/network-scripts/ifcfg-eth1
#--- eth1 네트워크 카드에 고정 IP 설정시 DEVICE=eth1 HWADDR=08:00:27:83:B8:E2 #--- 원래 있던 값을 사용 TYPE=Ethernet UUID=10ccad3a-9217-4092-a590-07537033eefb #--- 원래 있던 값을 사용 ONBOOT=yes IPADDR=192.168.56.151 #--- 호스트 전용 네트워크에 설정된 값을 참조하여 설정 NETMASK=255.255.255.0 #--- 호스트 전용 네트워크에 설정된 값을 참조하여 설정 GATEWAY=192.168.56.1 #--- 호스트 전용 네트워크에 설정된 값을 참조하여 설정 USERCTL=no IPV6INIT=no PEERDNS=no BOOTPROTO=static
- network 카드를 재기동 합니다.
service network restart ifconfig -a
- eth1에 설정된 IP 정보로 putty를 사용하여 다시 접속 합니다.
- vi /etc/sysconfig/network
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=cloud001.cloudserver.com #--- 호스트명과 도메인명 지정
- 명령행에서 hostname과 domainname 설정
hostname cloud001 domainname cloudserver.com
- vi /etc/hosts
#--- 파일의 최상단에 eth1에 설정된 IP로 host 이름을 추가 합니다. 192.168.56.151 cloud001.cloudserver.com cloud001
- vi /etc/resolv.conf
search local cloudserver.com nameserver 210.220.163.82 nameserver 219.250.36.130 nameserver 164.124.101.2 #--- 데이콤에서 사용하는 nameserver IP nameserver 168.126.63.1 #--- 코넷에서 사용하는 nameserver IP nameserver 175.115.93.35 #--- 다우기술 nameserver 8.8.8.8 #--- Google 제공 nameserver 8.8.4.4 #--- Google 제공 nameserver 218.38.19.200 #--- name1.youiwe.org nameserver 218.38.19.114 #--- ns2.youiwe.co.kr
- vi /etc/host.conf
multi on order hosts,bind
- Network Service를 재기동 합니다.
service network restart
- Internet 접속 여부 확인
ping -c3 google.com
- 방화벽 설정
### yum install setup setuptool system-config-securitylevel-tui setup
- 참고 문헌
- Network 설정
CentOS 추가 설치
- CentOS 기본 업데이터
yum -y install yum-fastestmirror yum -y update kernel yum clean all yum update shutdown -r now lsb_release -a #--- CentOS 버전 확인 yum list | grep kernel
- EPEL 다운로드 사이트에서 CentOS 버전에 맞는 설치 파일(epel-release-로 시작하는 파일)을 다운로드하여 설치 합니다.
cd install #yum install wget wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh epel-release-6-8.noarch.rpm yum repolist //--- epel repoistory가 잘 추가되어 있는지 repository 목록을 확인 합니다.
UCloud의 Disk Mount
Software 설치
MySQL
- Server version: 5.5.27 MySQL Community Server (GPL)
yum -y install mysql mysql-* chkconfig --level 2345 mysqld on
- MySQL 환경 설정
service mysqld restart mysqladmin -u root password 'xxxx' service mysqld stop cd /var/lib tar cvf mysql.tar mysql cd /cloudnas/database tar xvf /var/lib/mysql.tar
- vi /etc/my.cnf
[mysqld] init_connect = "SET collation_connection = utf8_general_ci" init_connect = "SET NAMES utf8" default-character-set=utf8 character-set-server=utf8 collation-server = utf8_general_ci datadir=/cloudnas/database/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: # symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] default-character-set = utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8
- MySQL Start
service mysqld start
Apache Http Server
- CentOS에 Apache Http Server를 설치 합니다.
- Apache HTTP Server 2.2.3-65.el5.centos
yum -y install httpd httpd-* chkconfig --level 2345 httpd on
- 서비스 설정
service httpd stop
- vi /etc/httpd/conf/httpd.conf
LanguagePriority ko en ... #--- ko를 맨앞으로 위치 한다. AddDefaultCharset UTF-8 DirectoryIndex index.php index.html DocumentRoot "/cloudnas/www/html" <Directory "/cloudnas/www/html">
- 서비스 시작
service httpd start
PHP
- PHP 5.3.3-13.el5_8
yum list installed | grep php yum install php53 php53-* //--- epel과 같이 섞여 있어 설치가 어려울 때 yum install php php-bcmath php-cli php-common php-dba php-devel php-embedded php-enchant php-fpm php-gd php-imap php-interbase php-intl php-ldap php-mbstring php-mcrypt php-mssql php-mysql php-odbc php-pdo php-pgsql php-process php-pspell php-recode php-snmp php-soap php-tidy php-xml php-xmlrpc php-zts //--- pcre가 "Unicode properties support"를 지원하지 않아 PDF 생성시 오류가 발생하는 것을 방지 //--- pcretest -C 로 지원 여부 확인 yum install pcre yum install php-pecl-apc
- PHP 환경 설정
mkdir /var/lib/php/upload chown apache:apache /var/lib/php/upload vi /etc/php.ini [PHP] memory_limit = 256M upload_max_filesize = 10M post_max_size = 10M date.timezone = Asia/Seoul upload_tmp_dir = "/var/lib/php/upload" session.save_path = "/var/lib/php/session" default_charset = "UTF-8" magic_quotes_gpc = Off output_buffering = 4096 output_handler = mb_output_handler [mbstring] mbstring.language = UTF-8 mbstring.internal_encoding = UTF-8 mbstring.http_input = auto ;mbstring.http_output = pass mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none;
Utility
- jdk 설치
yum -y install java-1.7.0-openjdk java-1.7.0-openjdk-*
- Apache Ant version 1.6.5 compiled on January 6 2007
yum -y install ant ant-*
- sendmail 8.13.8-2.el 설치
yum -y install sendmail sendmail-*
- 설치 않음 : subversion 1.6.11-10.el5_8 설치
yum -y install subversion subversion-*
- 기타 개인적으로 작성한 Script 파일
vi .bashrc . .bashrc
메일 서버 구축
Mail Server
참고 문헌
사이트 구축
- CRM : SugarCRM
- 참조
NFS
NFS Server
yum -y install nfs-utils nfs-utils-* chkconfig --level 3 nfs on chkconfig --level 3 portmap on service nfs restart groupadd -g 60001 nfsgroup useradd -u 60001 -d /home/nfsuser -m -g nfsgroup nfsuser mkdir /data chown nfsuser:nfsgroup /data chmod 755 /data vi /etc/exports /nfsdisk 203.231.11.201(rw,no_root_squash,sync) exportfs -a exportfs -v service nfs restart
NFS Client
groupadd -g 60001 nfsgroup useradd -u 60001 -d /home/nfsuser -m -g nfsgroup nfsuser mkdir /data mount 203.231.11.100:/data /data //--- 오류 : mount: wrong fs type, bad option, bad superblock on 시 아래 설치 yum install nfs-utils chkconfig --level 2345 rpcbind on service rpcbind start vi /etc/fstab 172.27.177.10:/data /data nfs defaults 1 2
Mount
mount 10.16.31.200:/cloudnas /cloudnas
MySQL Data folder 변경
- vi /etc/my.cnf
datadir=/data/mysql
- /var/lib/mysql/ 폴더를 /data/mysql/로 복사
- /data/mysql/ 폴더에 있는 ib* 파일을 모두 삭제 합니다.
- vi /etc/init.d/mysqld
get_mysql_option mysqld datadir "/data/mysql"
MySQL Replication
- 참고 문헌
Master
- Slave에서 Master로 접속할 때 사용할 사용자를 생성 합니다.
mysql -uroot -p grant replication slave on *.* to 'replication003'@'%' identified by 'xxxx'; flush privileges;
- vi /etc/my.cnf
[mysqld] log-bin=mysql-bin server-id=1 //--- binlog_do_db = test1 : 동기화할 Database //--- binlog_ignore_db = notest1 : 동기화에서 제외할 Database
- service mysqld restart
- 데이터 Backup
mysql -uroot -p flush tables with read lock; show master status; : File과 Position을 저장 합니다. mysqldump -uroot -p test1 > test1.sql ###mysqldump --single-transaction --all-databases --extended-insert=FALSE -c -uroot -p -R > db.sql mysql -uroot -p unlock tables;
- Master 상태 확인
mysql -uroot -p show master status; show processlist;
Slave
- vi /etc/my.cnf
[mysqld] log-bin=mysql-bin log-slave-update server-id=2 master-host=clouddb001.smartprocess.co.kr master-port = 3306 master-user = replication master-password = xxxx master-connect-retry = 60 //--- replicate-do-db = test1 //--- replicate-ignore-db = notest1
- service mysqld restart
- 데이터 Restore
mysql -uroot -p slave stop mysql -uroot -p test1 < test1.sql ### mysql -uroot -p < db.sql ### rsync -av /var/lib/mysql* --exclude=*bin* --exclude=ib* --rsh='ssh ' 211.115.69.112:/var/lib/mysql mysql -uroot -p ###reset slave; ###CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000219',MASTER_LOG_POS=2428; //--- change master to master_log_file = '~', master_log_pos = ~; slave start
- Slave 상태 확인
mysql -uroot -p show master status show slave status; show slave status\G ; //--- "Waiting for master to send event" 메시지가 있으면 정상 show processlist; //--- slave start //--- change master to master_log_file = '~', master_log_pos = ~; //--- slave stop
- Slave에서 백업을 할 경우
mysqldump -uuser -p --delete-master-logs > xxxxxx.sql
Dual Master
- Master Server 1
- mysql -uroot -p mysql
grant replication slave on *.* to 'replication003'@'%' identified by '~';
- vi /etc/my.cnf
log-bin=mysql-bin server-id=4 replicate-same-server-id = 0 auto-increment-increment = 2 auto-increment-offset = 1 master-host=clouddb003.smartprocess.co.kr master-port = 3306 master-user = replication004 master-password = ~ master-connect-retry = 60
- Master Server 2
- mysql -uroot -p mysql
grant replication slave on *.* to 'replication004'@'%' identified by '~';
- vi /etc/my.cnf
log-bin=mysql-bin server-id=4 replicate-same-server-id = 0 auto-increment-increment = 2 auto-increment-offset = 2 master-host=clouddb003.smartprocess.co.kr master-port = 3306 master-user = replication003 master-password = ~ master-connect-retry = 60
- 참고 문헌
MySQL Replication 복구
Replication 상태 확인
- Master
mysql -uroot -p mysql show master status; ###--- File, Position
- Slave
mysql -uroot -p mysql show slave status\G;
- Slave_IO_State : "Waiting for master to send event"
- Master_Log_File : Master의 File과 일치
- Read_Master_Log_Pos : Master Position과 일치
- Slave_IO_Running : Yes
- Slave_SQL_Running : Yes
- Relay_Log_Pos 과 Relay_Log_Space 이 일치
- Read_Master_Log_Pos 과 Exec_Master_Log_Pos 이 일치
- Last_Errno와 Last_Error가 있으면 replication이 중단된 상태임
자동 복구
- Slave
mysql -uroot -p mysql stop slave; reset slave; start slave;
- Slave : 오류가 발생한 query문만 skip하여 복구
mysql -uroot -p mysql set global sql_slave_skip_counter=1; start slave;
전형적인 복구 방법
- Master에서 Database 백업
mysql -uroot -p mysql flush tables with read lock; show master status; ### File과 Position을 저장 합니다. exit; ###--- 전체 DB 백업 mysqldump --single-transaction --all-databases --extended-insert=FALSE -c -uroot -p -R > allDB.sql ###--- 하나의 DB 백업 mysqldump -uroot -p ${DATABASE} > ${DATABASE}.sql ###--- 전체 DB 파일 백업 ### rsync -av /usr/local/mysql/* --exclude=*bin* --exclude=ib* --exclude=xewasdb* --exclude=relay* --exclude=master.info ***.***.***.***(Host IP)::R/usr/local/mysql/mysql_data/ mysqldump --master-data=2 ${DATABASE} > ${DATABASE}.sql ### mysqldump --add-drop-table --master-data --quick -u root -p my_database > my_database.sql mysql -uroot -p mysql unlock tables; exit;
- Slave에서 Database 복구
mysql -uroot -p mysql stop slave; drop database ${DATABASE}; create database ${DATABASE}; exit; mysql -uroot -p ${DATABASE} < ${DATABASE}.sql mysql -uroot -p mysql change master to master_log_file='mysql-bin.000044', master_log_pos=132059667; start slave; show slave status\G; ### Slave_IO_Running: Yes ### Slave_SQL_Running: Yes ### Last_Errno ### Last_Error exit;
MySQL Replication 복구 참고
- http://blog.naver.com/PostView.nhn?blogId=groge&logNo=70129401102
- http://ryujeen.tistory.com/entry/MySQL-Replication-%EC%9E%A5%EC%95%A0-%EB%B0%9C%EC%83%9D-%EB%B0%8F-%EB%B3%B5%EA%B5%AC-%EB%B0%A9%EB%B2%95
- http://blog.naver.com/PostView.nhn?blogId=sylphjm&logNo=130134770882
Apache SSL 설정
- vi /etc/httpd/conf/httpd.conf
DocumentRoot "/~/www/html"
- yum install mod_ssl
- vi /etc/httpd/conf.d/ssl.conf
ServerName cloud.smartprocess.co.kr:443 SSLCertificateFile STAR.smartprocess.co.kr.cer SSLCertificateKeyFile smartprocess_ssl.key SSLCertificateChainFile Thawte_SSL_CA_bundle.crt
- Apache 실행시 비밀번호 물어보는 것 삭제
cp smartprocess_ssl.key smartprocess_ssl.key_org openssl rsa -in smartprocess_ssl.key_org -out smartprocess_ssl.key
Monitoring과 Turning
UCloud 오류 및 조치
이미지로 서버 추가시 주의 사항
- vi /etc/fstab 에서 서버에 mount한 디스크에 대한 정보를 삭제한 후에 이미지를 생성하여 합니다.
- 그렇지 않으면 추가된 서버가 정상적으로 UCloud에서 인식이 안되어 부팅 또는 Network 설정을 할 수 없음
### dev/DataVG/data /data ext3 defaults 1 2