HORIZON DASHBOARD 설치

 

CONTROL NODE에서

 

1. openstack repository 설치

yum -y install centos-release-openstack-train

sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-OpenStack-train.repo

 

2.대시보드 설치

yum install openstack-dashboard

 

*내가 잊고 안해준 것

firewall-cmd --add-service={http,https} --permanent

 

3. 대시보드 config 수정 전 원본 백업

cp /etc/openstack-dashboard/local_settings

/etc/openstack-dashboard/local_settings.org

 

대시보드 config 수정

vi /etc/openstack-dashboard/local_settings

 

line 28

WEBROOT =’/dashboard/‘

 

line 39

ALLOWED_HOSTS = [‘*’, ‘10.0.0.111’]

 

line 94 to 99 uncomment

CACHES = {

‘default’ : {

‘BACKEND’ : ‘d jango.core.cache.backends.memcached.MemcachedCache’,

‘LOCATION’ : ‘10.0.0.111:11211’ ##control node ip 주소 설정

},

}

 

line 118

OPENSTACK_HOST = “10.0.0.111”

 

line 119

OPENSTACK_KEYSTONE_URL = “http://%s:5000/v3/” % OPENSTACK_HOST

 

line 125 True -> False 로 변경

line 126 - True -> False 로 변경

line 128 - True -> False 로 변경

line 129 - True -> False 로 변경

line 132 - True -> False 로 변경

line 133 - True -> False 로 변경

line 134 - True -> False 로 변경

 

line 147 TIME_ZONE = “Asia/Seoul” 으로 설정

 

맨 끝줄 다음 줄에 이어 line 401, 402에 두줄 추가

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = “Default”

OPENSTACK_KEYSTONE_DEFAULT_ROLE = “user”

 

OpenVSwitch

(장현정 작가님의 "오픈스택을 다루는 기술" 서적을 참고하였음을 밝힙니다.) 

Open vSwitch(이하 OVS)는 클라우드 서비스 내(內) 가상의 Network Bridge와 Flow rule을 사용하여

효율적으로 가상머신에 패킷을 포워딩하기 위한 가상의 스위치

 

참고링크 https://m.blog.naver.com/love_tolty/220237750951

 

네트워크 어댑터 추가하기 (host only, no dhcp, eth2)

브릿지 만들어 이용해보기

 

1. ovs-vsctl add-br [브릿지이름] #브릿지만들기

작업] ovs-vsctl add-br br-eth2

 

2. ovs-vsctl add-port [브릿지이름] [인터페이스카드이름] #브릿지 포트에 eth1을 추가

작업] ovs-vsctl add-port br-eth2 eth2

 

3. 레이어2 에이전트 설정( vi /etc/neutron/plugins/ml2/ml2_conf.ini )

마지막 줄에 추가(다른 섹션과 겹치지 않게)

[ml2_type_flat]

flat_networks = physnet1

 

4. OSV 에이전트 설정( vi /etc/neutron/plugins/ml2/openvswitch_agent.ini )

마지막 줄에 추가(다른 섹션과 겹치지 않게)

[ovs]

bridge_mappings = physnet1:br-eth2

 

5. 가상 네트워크 생성

openstack network create --project [project ID] --share \

--provider-network-type flat

--provider-physical-network [ovs에 설정된 브릿지네트워크ID] \

[가상 네트워크 이름]

 

작업1] projectID=$(openstack project list | grep service | awk '{print $2}')

-> service project의 두번째 필드 값을 추출해 변수에 저장(첫번째 필드는 |(파이프))

awk는 필드값을 추출해 표시하는 명령어 입니다. 작은 따옴표를 이용해 패턴을 표현하거나 표준입력함수를 이용합니다.

$0은 모든 필드값을 나타내며, 이후 1,2,3,4 이런식으로 필드 값을 정해 줄 수 있습니다.

 

예를 들어 ls -al을 사용했다라고 한다면

-rw-------. 1 root root 13889 1211 16:25 .bash_history

요런 형태로 나타나게 되는데,

 

ls -al | awk '{ print $3 }' 이라고 입력하면 3번째 필드인 root만 표시되게 됩니다.

물론 awk '{ print $3,4 }' 와 같이 콤마를 이용해 한번에 여러필드를 출력하는 것도 가능합니다.

위의 작업은 service라는 이름의 프로젝트를 검색해 ID만 추출하여 변수 projectID에 넣는 과정입니다.

 

작업2] openstack network create --project $projectID \

--share --provider-network-type flat \

--provider-physical-network physnet1 sharednet1

 

6. 서브넷 10.0.0.0/24를 만들어 둔 네트워크(sharednet1)에다가 만들어 넣습니다.

openstack subnet create subnet1 \

--network sharednet1 --project $projectID --subnet-range 10.0.0.0/24 \

--allocation-pool start=10.0.0.200,end=10.0.0.254 \

--gateway 10.0.0.2 --dns-nameserver 10.0.0.2

=> 10.0.0.0/24 대역대의 네트워크인 subnet1 이라는 서브넷을 만들어 sharednet1 이라는 이름으로 미리 정의해 두었던 가상의 네트워크에 넣어 주고 있습니다.

 

7. 여기까지가 기본적인 세팅의 완료. 이제 인스턴스 생성가능

 

 

 

1. mysql에 데이터베이스 생성하고 사용자 추가 및 권한 할당

mysql u root -p

create database nova;

grant all privileges on nova.* to nova@'localhost' identified by '123qwe';

grant all privileges on nova.* to nova@'%' identified by '123qwe';

 

create database nova_api;

grant all privileges on nova_api.* to nova@'localhost' identified by '123qwe';

grant all privileges on nova_api.* to nova@'%' identified by '123qwe';

 

create database nova_cell0;

grant all privileges on nova_cell0.* to nova@'localhost' identified by '123qwe';

grant all privileges on nova_cell0.* to nova@'%' identified by '123qwe';

 

create database placement;

grant all privileges on placement.* to placement@'localhost' identified by '123qwe';

grant all privileges on placement.* to placement@'%' identified by '123qwe';

 

flush privileges;

exit;

 

2. 키스톤에 NOVA사용자 생성, 관리자 역할추가, 엔드포인트 생성

openstack user create --domain default --project service --password 123qwe nova

openstack role add --project service --user nova admin

 

openstack user create --domain default --project service --password 123qwe placement

openstack role add --project service --user placement admin

 

openstack service create --name nova --description "OpenStack Compute service" compute

openstack service create --name placement --description "OpenStack Compute Placement service" placement

 

export controller=10.0.0.30

openstack endpoint create --region RegionOne compute public

http://$controller:8774/v2.1/

 

openstack endpoint create --region RegionOne compute internal

http://$controller:8774/v2.1/

 

openstack endpoint create --region RegionOne compute admin

http://$controller:8774/v2.1/

 

openstack endpoint create --region RegionOne placement admin

http://$controller:8778

 

openstack endpoint create --region RegionOne placement public

http://$controller:8774/v2.1/

 

openstack endpoint create --region RegionOne placement internal

http://$controller:8774/v2.1/

 

 

3. 노바 및 placement 설치

yum --enablerepo=centos-openstack-train,epel -y install openstack-nova openstack-placement-api

 

https://docs.openstack.org/nova/train/install/controller-install-rdo.html

에서 default api 별로 내용을 모아서 하기와 같이 작성해주면 된다.

 

 

4. KVM 및 NOVA-COMPUTE 설치

kvm 설치
yum -y install qemu-kvm libvirt virt-install
lsmod | grep kvm 명령어를 이용해서 확인

nova-compute 설치
 yum --enablerepo=centos-openstack-train,epel -y install openstack-nova-compute

 

firewall-cmd --add-port=5900-5999/tcp --permanent
firewall-cmd --reload

nova-compute실행
systemctl start openstack-nova-compute
systemctl enable openstack-nova-compute

 

 

5. 노바 설정파일 수정

mv /etc/nova/nova.conf /etc/nova/nova.conf.backup

vi /etc/nova/nova.conf

 

[DEFAULT]

# define own IP

my_ip = 10.0.0.30

state_path = /var/lib/nova

enabled_apis = osapi_compute,metadata

log_dir = /var/log/nova

# RabbitMQ connection info

transport_url = rabbit://openstack:password@10.0.0.30

 

[api]

auth_strategy = keystone

 

# Glance connection info

[glance]

api_servers = http://10.0.0.30:9292

 

[oslo_concurrency]

lock_path = $state_path/tmp

 

# MariaDB connection info

[api_database]

connection = mysql+pymysql://nova:password@10.0.0.30/nova_api

 

[database]

connection = mysql+pymysql://nova:password@10.0.0.30/nova

 

# Keystone auth info

[keystone_authtoken]

www_authenticate_uri = http://10.0.0.30:5000

auth_url = http://10.0.0.30:5000

memcached_servers = 10.0.0.30:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = nova

password = servicepassword

 

[placement]

auth_url = http://10.0.0.30:5000

os_region_name = RegionOne

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = placement

password = servicepassword

 

[wsgi]

api_paste_config = /etc/nova/api-paste.ini

 

chmod 640 /etc/nova/nova.conf

chgrp nova /etc/nova/nova.conf

 

 

6. placement 설정파일 수정

(하기에 있는 것이 아닌 기존에 내용 그대로 사용하고 특정 내용만 추가할 것)

cd /etc/placement/

mv -v placement.conf placement.conf.backup

vi placement.conf

 

[DEFAULT]

debug = false

 

[api]

auth_strategy = keystone

 

[keystone_authtoken]

www_authenticate_uri = http://10.0.0.30:5000

auth_url = http://10.0.0.30:5000

memcached_servers = 10.0.0.30:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = placement

password = servicepassword

 

[placement_database]

connection = mysql+pymysql://placement:password@10.0.0.30/placement

 

chmod 640 /etc/placement/placement.conf

chgrp placement /etc/placement/placement.conf

 

vi /etc/httpd/conf.d/00-placement-api.conf

16 <Directory /usr/bin>

17 Require all granted

18 </Directory>

19 </VirtualHost>

 

=> 원래는 이것을 해야 하지만 에러가 생긴 관계로

vi placement.conf 그대로를 이용하여 기존에 파일내용에서

하기 것만 추가를 한다.

 

[placement_database]

connection = mysql+pymysql://placement:password@10.0.0.30/placement

 

수정시 단어 찾기 /database를 이용 할 것

#장애 vi /etc/placement/placement.conf

[placement_database] => 기존의 vi /etc/placement/placement.conf 에서

connection = mysql+pymysql://placement:password@10.0.0.30/placement

 

grant all privileges on placement to placement 형태로 바꾸어 주어야 함

애초에 설정을 nova_placement가 아닌 placement로 앞에서 설정을 해주었기 때문에

placement에게로 privileges를 준다고 얘기해야 한다.

 

 

7. SELinux 설정

yum --enablerepo=centos-openstack-train -y install openstack-selinux

semanage port -a -t http_port_t -p tcp 8778

firewall-cmd--add-port={6080/tcp,6081/tcp,6082/tcp,8774/tcp,8775/tcp,8778/tcp} --permanent

firewall-cmd --reload

 

8. DB생성

su -s /bin/bash placement -c "placement-manage db sync"

su -s /bin/bash nova -c "nova-manage api_db sync"

su -s /bin/bash nova -c "nova-manage cell_v2 map_cell0"

su -s /bin/bash nova -c "nova-manage db sync"

su -s /bin/bash nova -c "nova-manage cell_v2 create_cell --name cell1"

systemctl restart httpd

chown placement. /var/log/placement/placement-api.log

 

for service in api console conductor scheduler novncproxy; do systemctl start openstack-nova-$service;

systemctl enable openstack-nova-$service; done

 

#마주한 장애 해결

nova.conf -> placement 비번 servicepassword ->123qwe

placement.conf - > 새로 작성

 

openstack compute service list

컴퓨트 노드의 도메인이 보이고 up상태로 나타나면 성공!!

 

 

마주한 장애들

#nova-manage cell_v2 list_cells 및 openstack endpoint list를 하니 다음과 같은 장애발생

#placement db sync를 하니 unknown database 라는 장애를 발견

 

database에 관련 된 것들을 모두 확인해보기로 함

 

해본것들

a. nova_placement to placement, nova로 각각 권한을 privileges를 주어보았다.

마지막으로 권한 준 곳

nova_placement to placement로 권한을 주었다.

 

b. 그리고 vi/etc/keystone/keystone.conf를 확인하고

mysql u root p에서 keystone 데이터베이스와 테이블이 있는지 확인

그리고 glance도 데이터베이스와 테이블이 있는지 확인

 

c. vi /etc/placement/placement.conf 에 수정 주었던 데이터베이스

connection=mysql+pymysql를 지우고

 

d. cd /etc/placement 로 가서

mv v placement.conf placement.conf.backup으로 보내고

다시 vi placement.conf에서내용 복붙하기

그곳에서 바꿔준 부분은 database에서 connection placement 로 바꾸고 /nova_placement로 바꿈

 

e. chmod 6430 /etc/placement/placement.conf

chgrp placement /etc/placement/placement.conf

 

f. vi /etc/httpd/conf.d/00-placement-api.conf

<Directory /usr/bin>

Require all granted

</Directory>

<VirtualHost>

 

g. su s /bin/bash placement c “placement-manage db sync”

를하니 sync 완료

 

#장애발생 openstack compute service list 하니 하기와 같은 에러가 발생

*ip주소 바꿔보는 작업

-그리고 openstack endpoint list를 확인하니 내부ip가 192.168.0.103인데 102로 되어 있는 것들을 발견

-id를 삭제하고 다시 만들기로 함

-placement admin id, nova 등등 삭제하고 다시 생성

 

그리고 다시 openstack compute service list를 하니 또 에러를 마주침.

 

#마주한 장애 the server is temporarily unavailable 이라고 함 keystone service is unavailable

=> reboot 한 뒤에

=> systemctl start mariadb

systemctl enable mariadb

를 해주고 다시 openstack compute service list 가 작동한다.

*cirros 이미지 활용  

7. glance 서비스 테스트

yum -y install wget

wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img

openstack image create "cirrors" \

--file cirros-0.3.5-x86_64-disk.img \

--disk-format qcow2 \

--container-format bare \

--public

 

8.버전확인 

glance --version

glance image-show id번호적기

id) a732aca0-6a88-406b-9d27-1e3df3203fcc) //이미지내용확인

 

 

glance image-deactivate id번호적기

(a732aca0-

6a88-406b-9d27-1e3df3203fcc) //이미지비활성화

openstack image list //이미지 상태 확인

glance image-reactivate a732aca0-6a88-406b-9d27-1e3df3203fcc //이미지활성화

 

openstack image list //이미지 상태 확인

 

#오픈스택 바이블 책에 있는 p182의 glance-registry.conf 대로 수정하지 말 것

버전의 문제인 것으로 보인다.

olso.config. parseerror ~ 그리고 section must be started before signment 와 같은 장애 발생

 

Glance(이미지서비스)

기능

-사용자들이 가상 머신 이미지를 찾고, 등록해서 가져올수 있도록 활성화하는 역할

-가상머신 이미지를 찾은 후에는 메타데이터에 질문/요청을 던져 실제 이미지를 가져오도록 하는 REST API제공

 

1. Glance 데이터베이스 설정하기

데이터베이스에 glance 사용자 추가하기

 

mysql -u root p

create database glance;

grant all privileges on glance.* to glance@'localhost' identified by '123qwe';

grant all privileges on glance.* to glance@'%' identified by '123qwe';

flush privileges

exit

 

2. Glance사용자, 서비스 그리고 엔드포인트 생성하기

glance 사용자 추가하기

 

(유저생성)

openstack user create --domain default --project service --password servicepassword glance

 

(역할추가)

openstack role add --project service --user glance admin

 

(서비스생성)

openstack service create --name glance --description "Openstack Image service" image

 

(엔드포인트생성)

openstack endpoint create --region RegionOne image public http://$controller:9292

 

(엔드포인트내부용 생성)

openstack endpoint create --region RegionOne image internal http://$controller:9292

 

(엔드포인트어드민용 생성)

openstack endpoint create --region RegionOne image admin http://$controller:9292

 

 

3. glance 설치하기(glance 패키지 설치)

yum --enablerepo=centos-openstack-train,epel -y install openstack-glance

 

4. glance-api.conf 설정파일 백업후 설정파일 새로 생성해서 새로운 내용 추가하기

mv /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak

 

vi /etc/glance/glance-api.conf

[DEFAULT]

bind_host=0.0.0.0

 

[glance_store]

stores = file,http

default_store = file

filesystem_store_datadir = /var/lib/glance/images/

 

[database]

connection = mysql+pymysql://glance:123qwe@10.0.0.30/glance   

->내가 원하는 비번을 작성하면된다. glance:비번작성하는곳

 

[keystone_authtoken]

www_authenticate_uri = http://10.0.0.30:5000

auth_url = http://10.0.0.30:5000

memcached_servers = 10.0.0.30:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = glance

password = servicepassword

->키스톤의 권한토큰을 받아서 모든 노드가 돌아가므로, 항상 들어가는 정보..

 

[paste_deploy]

flavor = keystone

 

5. 직접작성해서 만든 파일이니 권한과 소유자(그룹)을 변경

chmod 640 /etc/glance/glance-api.conf

chgrp glance /etc/glance/glance-api.conf (명령어 잘확인할 것 )

#ubuntu 버전으로 chown 명령어를 사용하니 안되서 다시

glance-api.conf를 생성해서 명령어를 사용하니 되었다.

 

6. 데이터베이스 파일 생성하기 및 selinux 설정하기

su -s /bin/bash glance -c "glance-manage db_sync"

systemctl start openstack-glance-api

systemctl enable openstack-glance-api

setsebool -P glance_api_can_network on

 

22. 프로젝트 사용자, 역할 생성하기

openstack project create --domain default \

--description “Service Project” service

 

 

openstack project list

 

#openstack project list에서 해결하지 못한 장애-Internal Server Error(HTTP 500)

 

openstack domain list

openstack user create domain default\

--password-prompt demo

User Password : 비번쓰기

Repeat Password : 비번쓰기

 

openstack user list

openstack role create user

openstack role list

openstack role add --project service --user demo user

(openstack role list --user demo project service)????

openstack endpoint list

15. keystone 패키지 설치

yum --enablerepo=centos-openstack-train,epel -y install openstack-keystone

openstack-utils python-openstackclient httpd mod_wsgi

 

 

16. keystone 설정하기

vi /etc/keystone/keystone.conf

 

->line 431에 하기 내용 추가

memcache_servers = 10.0.0.30:11211

->line 572에 하기 내용 추가

connection = mysql+pymysql://keystone:123qwe@192.168.0.210/keystone

->line 2436 #을 지우기:

사용자 변환 but 내용만 삽입

 

그리고

su -s /bin/bash keystone -c "keystone-manage db_sync"

(keystone에서 생성한 keystone 데이터베이스에 필요한 테이블이 생기게 해준다.)

 

#internal server httpd401 장애발생

vi /etc/keystone/keystone.conf

connection = mysql+pymysql://keystone:123qwe@192.168.0.210/keystone

keystone 비번설정을 위에 작성 안할 경우 에러가 생긴다.

 

다음화면과 같이 완료 (참고 수정시 :set nu를 하면 왼쪽화면에 노란색번호가 나온다.)

 

17. mariadb rabbimq 작동 확인

systemctl start mariadb

systemctl start rabbimq

systemctl status 로 각각 확인 해줄 것

 

18. keystone manage 실행

keystone manage실행

keystone-manage fernet_setup --keystone-user keystone --keystone-group

keystone

keystone 초기세팅(사용자 및 그룹 지정)

keystone-manage credential_setup --keystone-user keystone keystone-group

keystone

 

keystone bootstrap작성

export controller=192.168.0.210 (내가 bridge 외부에 할당한 ip주소)

keystone-manage bootstrap\

> --bootstrap-password adminpassword\

> --bootstrap-admin-url http://$controller:5000/v3/ \

> --bootstrap-internal-url http://10.0.0.30:5000/v3/ \

> --bootstrap-public-url http://$controller:5000/v3/ \

> --bootstrap-region-id RegionOne

 

 

19. (selinux 에 있는 특정항목만 열어준다.)

setsebool -P httpd_use_openstack on

setsebool -P httpd_can_network_connect on

setsebool -P httpd_can_network_connect_db on

firewall-cmd add-port=5000/tcp --permanent

firewall-cmd reload

 

20. 웹 서버 및 방화벽 설정하기

ln s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

systemctl start httpd

systemctl enable httpd

 

21. vi ~/keystonerc 환경변수 생성

a. vi keystonerc

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=adminpassword

export OS_AUTH_URL=http://192.168.0.210:5000/v3

=>210은 내가 할당한 ip 102로 설정함

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

export PS1='[\u@\h \W(keystone)]\$' ->프롬프트 변경

 

b. chmod 600 ~/keystonerc

source keystonerc

echo “source ~/keystonerc” >> ~/.bash_profile

openstack token issue

openstack token issue 실행후 마주한 에러

#export controller=192.168.0.210 를 타입 안하고 넘어가니

unexpected exception for http://5000:v3/ Invalid URL 애러가 나왔다.

 

#internal server httpd500에러 이유;

부트스트랩에서 설정한 것과 연계되는 keystone 데이터베이스가 없어서 internal server 문제였다.

그래서 maria dbkeystone 데이터베이스 생성했다.

 

httpd500같은 에러 메시지 발생

-역시나 같은 데이터베이스가 생성이 되지 않았고, 문제는 vi /etc/keystone.conf에서

571라인에서 mysql+pymysql에서 맨 끝에 keystone의 철자가 틀렸다.

 

그리고 다시 sync 명령어를 해줌으로써 keystone 데이터베이스를 생성해야 openstack token issue에서 넘어간다.

 

#error the request you have made requires authentication auth와 관계된 것이

vi /keystone/keystone.conf 설정에

mysql+pymysql 에 넣는 비번설정을 해주지 않아 auth 문제가 일어난 것.

 

#openstack token issue 하니 다음과 같은 장애발생 해결못함

 

#vi ~/keystonerc를 누르니 하기와 같은 문제가 발생했다.

~ = home directory

 

다른 프로세스가 사용 중인지 확인

 

확인결과 사용중이 아니고, 비정상 종료된 적이 있는지에 해당되는 것으로 보여

ls al swp 파일이 여러개 있는 것을 확인

rm rf .keystone.sw*

파일 삭제완료

 

#home directory에 있어 vi ~/keystonerc 아닌 vi keystonerc로 확인

나머지 하기에 있는 것을 작성한다.

 

##내가 풀지 못한 장애

-bad request http400

-internal server http500 (해결함)

 

#-sync 명령어가 되지 않고 데이터베이스 생성이 되지 않았다.

알고보니 책에 있는 비번을 grant all privileges to glance에 사용 되는 비번과 그대로 사용해서 그런 것이었다.

그러니 비번을 항상 잘 체크하면서 작성할 것

 

#새롭게 알게 된 것

openstack project delete + id 번호를 써야 삭제가 된다.

12. DB설정

mariaDB에 접속

mysql -u root p

 

#비번도 안만들었는데 자꾸 아래의 메시지가 발생

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

systemctl start mariadb 설정을 안해준 것이었다.

mariadb든 무엇이든 systemctl start mariadb를 작동시켜줄 것!!

 

13. Keystone이 사용할 DB생성

create database keystone;

 

14. Keystone 사용자를 생성하고 pw를 부여, 모든 권한 부여

- 로컬에서의 접속

grant all privileges on keystone.* to keystone@'localhost' identified by '123qwe';

 

- 원격지에서의 접속

grant all privileges on keystone.* to keystone@'%' identified by '123qwe';

 

-적용

flush privileges;

 

-나가기

exit

(여기서 show tables; 해도 아무것도 보이지 않은 아직 sync 하기 전)

 

 

7. Memcached설치 및 Rabbitmq설치

 

Memcached

-범용 분산 캐시 시스템

-외부 데이터 소스의 읽기 횟수를 줄이기 위해 데이터와 객체들

 RAM에 캐시 처리함으로써 동적 데이터베이스 드리븐 웹사이트의 속도를 높이기 위해 종종 사용

 

Rabbitmq

-mqmessage q의 약자로 메시지 브로커라는 의미

-전달받은 메시지를 전달하는 역할을 하는 소프트웨어

 

Memcached 및 Rabbitmq 설치 명령어

yum -y install --enablerepo=centos-openstack-train rabbitmq-server memcached

 

Memcached 설정

vi /etc/sysconfig/memcached

line5를 하기와 같이 수정한다.

OPTIONS="-line 0.0.0.0,::"

 

Memcached 활성화 및 rabbitmq-server 시작 명령어

systemctl enable memcached

systemctl start rabbitmq-server

 

위에 것을 안해주고 rabbitmqctl add_user를 통해 사용자에게 모든 권한 위임하려고

할 때에 error :unable to connect to node rabbit@localhost: nodedown 가 나온다.

 

 

Rabbitmq openstack 사용자 추가

rabbitmqctl add_user openstack 123qwe

(openstack 사용자에게 모든 권한 위임)

rabbitmqctl set_permissions openstack ".*" ".*" ".*" 띄어써서 “.*”를 해야한다.

다음과 같이 화면이 보인다.

이렇게 해줌으로써 openstack user는 읽고 쓰고 수정 모두 가능하게 된다.

 

Rabbitmq service 작동시키기

systemctl start rabbitmq-server

systemctl enable rabbitmq-server

systemctl status rabbitmq-server

완료하니 하기와 같이 active (running)이 되었다.

 

방화벽 설정 (rabbitmqmemcached 설정)

방화벽 설정

firewall-cmd --add-service=mysql --permanent

firewall-cmd --add-port={11211/tcp,5672/tcp} --permanent

 

다음은 MariaDB 설정글을 올릴 예정입니다.

 

6. 오픈스택 train 서비스를 제공하는 패키지 설치

yum -y install centos-release-openstack-train

 

vi /etc/yum.repos.d/CentOS-OpenStack-train.repo

(enable=0 활성화 할 것)

#yum.repos.d=>yum repository

 

sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-OpenStack-train.repo

-i : 파일의 위치를 직접 설정하는 옵션

-e : 스크립트를 사용하겠다는 선언 ""안의 내용을 적용

 

 

7. Maria DB 설치=MariaDB(데이터베이스 관리시스템)설치

yum --enablerepo=centos-openstack-train -y install mariadb-server

 

MariaDB 설정

vi /etc/my.cnf.d/mariadb-server.cnf

[mysqld]

(밑에내용 추가하기)

max_connections=500

character-set-server=utf8

 

 

mariadb 작동 ->systemctl start mariadb

systemctl enable mariadb

+ Recent posts