Neutron 설치

 

1.MariaDB 데이터베이스 및 사용자 생성 후 권한 부여

mysql -u root -p

create database neutron_ml2;

grant all privileges on nuetron_ml2.* to neutron

 

2.keystoneneutron 사용자 생성 및 역할 부여

openstack user create domain default project service password 123qwe neutron

openstack role add project service user neutron admin

 

3.네트워크 서비스 추가

openstack service cerate name neutron description “OpenStack Networking service” network

 

4.네트워크 서비스 엔드포인트 생성

echo $controller

export controller=10.0.0.30

openstack endpoint create region RegionOne network public http://$controller:9696

openstack endpoint create region RegionOne network internal http://$controller:9696

openstack endpoint create region RegionOne network admin http://$controller:9696

 

 

5.Neutron 설치하기

yum y install enablerepo=centos-openstack-train,epel openstack-neutron-ml2 openstack-neutron-openvswitch

 

 

6. neutron 설정파일 내용 수정하기

mv /etc/neutron/neutron.conf /etc/neutron/neutron.conf.bak

 

vi /etc/neutron/neutron.conf

[DEFAULT]

core_plugin = ml2

service_plugins = router

auth_strategy = keystone

state_path = /var/lib/neutron

dhcp_agent_notification = True

allow_overlapping_ips = True

notify_nova_on_port_status_changes = True

notify_nova_on_port_data_changes = True

# RabbitMQ connection info

transport_url = rabbit://openstack:password@10.0.0.30

 

# 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 = neutron

password = servicepassword

 

# MariaDB connection info

[database]

connection = mysql+pymysql://neutron:password@10.0.0.30/neutron_ml2

 

# Nova connection info

[nova]

auth_url = http://10.0.0.30:5000

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = nova

password = servicepassword

 

[oslo_concurrency]

lock_path = $state_path/tmp

 

chmod 40 neutron.conf

chgrp neutron neutron.conf

 

vi l3_agent.ini -> 두번째 줄에 추가

interface_driver=openvswitch

 

vi dhcp_agent.ini -> 두번째 줄에 추가

interface_driver=opensvswitch

dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq

enable_isolated_metadata=true

 

vi metadata_agent.ini -> 두번째 줄에 추가

nova_metadata_host = 10.0.0.30

metadata_proxy_shared_secret = metadata_secret

212 memcache_servers = localhost:11211

 

cd /etc/neutron/plugins/ml2

vi ml2_conf.ini

[ml2]

type_drivers = flat,vlan,gre,vxlan

tenant_network_types =

mechanism_drivers = openvswitch

extension_drivers = port_security

 

vi openvswitch_agent.ini

[securitygroup]

firewall_driver = openvswitch

enable_security_group = true

enable_ipset = true

 

vi /etc/nova/nova.conf

[DEFAULT]섹션에 추가

use_neutron = True

linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver

firewall_driver = nova.virt.firewall.NoopFirewallDriver

vif_plugging_is_fatal = True

vif_plugging_timeout = 300

 

 

7. SELinux 설정하기

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

setsebool -P neutron_can_network on

setsebool -P haproxy_connect_any on

setsebool -P daemons_enable_cluster_mode on

 

SELinux 모듈 컴파일

vi my-ovsofctl.te

module my-ovsofctl 1.0;

 

require {

type neutron_t;

class capability sys_rawio;

}

 

8. SELinux 설정하기

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

setsebool -P neutron_can_network on

setsebool -P haproxy_connect_any on

setsebool -P daemons_enable_cluster_mode on

 

selinux 모듈 컴파일

cd /etc/selinux

checkmodule m M o my-ovsofctl.mod my-ovsofctl.te

semodule_package --outfile my-ovsofctl.pp --module my-ovsofctl.mod

semodule -i my-ovsofctl.pp

 

 

9. 방화벽 추가

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

firewall-cmd --reload

 

10. Neutron서비스 실행

systemctl start openvswitch

systemctl enable openvswitch

ovs-vsctl add-br br-int

 

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

-> ml2_conf.ini가 실행될 때 /etc/neutron/plugin.ini 이 같이 실행 된다.

 

su -s /bin/bash neutron -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head“    (위에줄하고 한명령어)

#장애 발생

해본 것들

grant all privileges 2개 주어야 하는데

하나만 권한을 주니 작동이 된다.

그리고 conf

 

for service in server dhcp-agent l3-agent metadata-agent openvswitch-agent; do

systemctl start neutron-$service

systemctl enable neutron-$service

done

 

systemctl restart openstack-nova-api openstack-nova-compute

openstack network agent list

#neutron이 싱글노드에서 하는 일은 없다.

 

*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

클라우드공부 방향성에 대해 조언을 얻으러

클라우드과정을 듣기 전에 나는 클라우드 전문가 분을 만났다.

그래도 이쪽 분야에 대해서 어느 정도 알고 가야 공부에 대한 방향이 잡힐 것 같아서였다.

퍼블릭 클라우드, AWS를 공부를 하라고 권유를 해주셨고, 더불어 AWS자격증도 취득하는 것을 권유해주셨다.

일단 나는 기초적인 공부가 덜되어 있고, 국비과정을 통해서 엄청나게 공부한 후에 그 뒤에 고려를 해보기로 했다.

또한, 공부를 하려고 했지만, 학원에서 배우는 내용만으로도 벅찼기 때문에 다른 것을 공부할 여유가 되지 않았다.

 

네트워크 관련 서적 구매

그리고 나는 인프라를 공부한다면 기본적으로 전부 공부하는 후니책을 샀다.

 

책이 엄청 두꺼웠고, 과정 공부를 하면서 책을 들여다 보기란 쉽지 않았다.

어떻게 할까 고민하다가 학원에 가기전 집에서 딱 5분-10분 씩, 1-2페이지를 보고 가기로 결정했다.

그리고 공부하다 보니 학원과정에서 배우는 네트워크 과정하고 겹치게 되었고, 과정에서 배우는 네트워크는 내가 보는 내용보다 앞질러 갔다. 그래도 꾸준히 아침에 5분-10분씩 복습한다는 생각으로 조금씩 봤었다.

 

클라우드 서적 구매

그리고 과정시작전에 클라우드에서 공부를 해야겠다고 생각을 했고, 디테일하게 공부하기 어려우니

쉽고 개념을 익힐 수 있는 클라우드 서적을 사야겠다고 마음을 먹고 교보문고에 가서 골랐다.

학원에가서 담임교수님이 빠르게 개념을 훓는데 이 책이 좋다고 하셨다.. 역시나 나도 책을 보는 눈이 있는건가 ㅠㅠ

 

공부를 했지만 사실 이 단어의 의미가 이런의미이구나 하고 지나가는 정도 였다.

아키텍처나 등등 봐도 각인이 잘되지 않았다.

그리고 과정이 시작되고 내가 공부한 내용은 1주일을 가지 못했다..

+ Recent posts