Openstack #1-2 MariaDB(MySQL) 설치

Openstack #1 개요
Openstack #1-1 선행작업
Openstack #1-2 MariaDB(MySQL) 설치
Openstack #1-3 Chrony 설정
Openstack #1-4 MessageQueue(RabbitMQ)
Openstack #1-5 Memcached
Openstack #1-6 Etcd


공용 repository로 사용되는 RDBMS가 필요하다. Mysql, MariaDB, PostgresQL을 리포지터리로 사용할 수 있다.
MySQL설치 포스트를 참고해서 설치 할 수 있다.

Controller 노드에서만 수행한다. 또는 별도의 DB서버에서만 수행한다.

서버 설치

[root@openstack1:~]# yum -y install mariadb mariadb-server python2-PyMySQL
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
Package 3:mariadb-server-10.3.10-1.el7.0.0.rdo2.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package python2-PyMySQL.noarch 0:0.9.2-2.el7 will be installed
  Verifying  : python2-PyMySQL-0.9.2-2.el7.noarch                                                                                                                                                                                              1/1
Installed:
  python2-PyMySQL.noarch 0:0.9.2-2.el7
Complete!

클라이언트 및 관련 라이브러리 설치
서버를 제외한 나머지 노드에서 수행한다.

  yum -y install mariadb  python2-PyMySQL

config 변경

 # /etc/my.cnf 파일을 수정해도 된다.
[root@openstack1:~]# /etc/my.cnf.d/openstack.cnf 
 # openstack.cnf 파일은 빈파일이다.
 # 아래 내용을 붙여넣는다.
[mysqld]
 #bind-address를 주석처리 하면 기본 값으로 설정된다.
bind-address = 서버_IP

default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

서비스 활성화

 # Service 시작
[root@openstack1:~]#service mariadb start
Redirecting to /bin/systemctl start mariadb.service
[root@openstack1:~]#chkconfig mariadb on
알림: 'systemctl enable mariadb.service'에 요청을 전송하고 있습니다.
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/mysqld.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

 # 또는 
[root@openstack1:~]# systemctl enable mariadb.service
[root@openstack1:~]# systemctl start mariadb.service

YUM (Yellow-dog Updater Modified)

1. 개요
Yum은 Yellow dog Updater, Modified의 약자로 RPM 기반의 시스템을 위한 자동 업데이터 겸 패키지 설치/제거 도구이다. 듀크 대학교의 Linux@DUKE 프로젝트의 일부분으로 개발되었다. yumex 같은 GUI 기반 확장 도구도 있다.
Yum 이전에 있었던 Yellowdog Updater (YUP) 도구를 대체하며, 듀크 대학교 물리학부에서 사용되었던 레드햇 리눅스 시스템 관리를 위해서 등장하였다. 그 이후로 페도라, CentOS 등 많은 RPM 기반 리눅스 배포판에서 사용되었다. 레드햇의 패키지 관리자 up2date에서도 Yum 저장소에 접근할 수 있다.
현재 GNU 일반 공중 사용 허가서 버전 2 이상으로 사용 가능하다.
Yum은 페도라 22 버전 이후부터 DNF로 전환되고 있다. 그러나 여전히 Yum의 전신인 rpm, 그리고 후신인 DNF와 같이 사용 가능하다.

rpm 패키지들에 대해 검색, 다운로드, 설치 기능을 편리하게 해 주는 것이 가장 큰 역할이지만, 가장 큰 장점은 의존성 1‘A’라는 패키지 설치를 위해 ‘가’ 라는 패키지가 필요할 경우 ‘A’에 대한 설치 명령만 수행해도 ‘가’ 패키지를 함께 다운로드하고 설치 해 준다. 문제를 자동으로 해결 해준다는 점이다.

2. Repository 파일
/etc/yum.repo.d/ 아래에 존재한다.
※ CentOS Base repository 예

[CentOS-repo]
name=CentOS-7- Base
 # 리포지터리 이름 (단지 이름이다.) 
baseurl=http://mirrorlist.centos.org
 # 패키지를 다운로드할 수 있는 미러 목록이 포함된 URL 또는 저장소 자체 지정
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
 # 리포지터리 주소
enabled=1
 # 활성화 여부
gpgcheck=0
 # gpg key 검증 여부
 # 리포지터리에 있는 패키지 파일이 정상적인 파일인지확인한다. (변조 여부 등)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 #gpg key 위치 

3. 사용법 : 검색 관련

[HOSTNAME:/root]# yum clean all
 # Yum cache 삭제

[HOSTNAME:/root]# rm -rf /var/cache/yum
 # yum clean all 명령의 에러 발생 등의 경우

[HOSTNAME:/root]# yum repolist
 # /etc/yum.repo.d/ 아래의 모든 리포지터리 정보를 갱신한다.

[HOSTNAME:/root]# yum search PACKAGE_NAME
 # PACKAGE_NAME 이라는 이름을 포함한 패키지를 검색한다.

[HOSTNAME:/root]# yum provides LIBRARY_NAME
 # LIBRARY_NAME 이라는 라이브러리를 포함한 패키지를 검색한다.

[HOSTNAME:/root]# yum list 
 # 패키지 리스트를 출력한다.

 [HOSTNAME:/root]#  yum list installed 
 # 현재 설치된 패키지 리스트를 출력한다.

[HOSTNAME:/root]#  yum list PACKAGE_FULL_NAME --show duplicate
 # PACKAGE_FULL_NAME 패키지의 중복 여부 정보를 출력한다.

[HOSTNAME:/root]# yum list PACKAGE-VERSION
  # PACKAGE 란 이름의 패키지 중 VERSION 에 해당하는 버전의 목록을 출력한다. 

4. 사용법 : 패키지 설치

[HOSTNAME:/root]# yum install PACKAGE_NAME
 # PACKAGE_NAME 패키지를 설치한다.

[HOSTNAME:/root]# yum install PACKAGE_NAME*
 # PACKAGE_NAME으로 시작하는 이름의 패키지들을 설치한다.

[HOSTNAME:/root]# yum install PACKAGE_1 PACKAGE_2 PACKAGE_3
 # PACKAGE_1, PACKAGE_2, PACKAGE_3 세개의 패키지를 설치한다.

[HOSTNAME:/root]# yum -y install PACKAGE_NAME
 #  명령어 수행 시 사용자의 확인이 필요한 경우('진짜로 설치 하시겠습니까? 등 ')자동으로 y 가 입력되는 것과 같다

5. 사용법 : RPM 패키지 설치

 [HOSTNAME:/root]# yum install /tmp/PACKAGE_1.rpm
 # /tmp/PACKAGE_1.rpm 을 설치한다. 의존성 패키지가 필요한경우 리포지터리에서 자동으로 다운로드 하고 함께 설치 된다.

 [HOSTNAME:/root]# yum install /tmp/*
 # /tmp 디렉토리 내에 모든 rpm 을 설치한다.

※ yum 명령은 관리자 권한(root)으로 수행 해야 한다.