openstack實戰


一、基礎環境


1.控制節點

 CentOS6.5 base server + development tools

 內存:2G

 硬盤:20G及以上

 網卡:2塊

 計算節點

 

2.配置網絡可以上外網(實驗ip以10.77.60.227爲例)

 #vi /etc/sysconfig/network-scripts/ifcfg-eth0

 #hostname controller   //設置主機名

 #vi /etc/sysconfig/network

  hostname = controller   //修改hostname爲controller

 #vi /etc/hosts

  10.77.60.227 controller  //配置地址解析

 #vi /etc/sysctl.conf

  net.ipv4.ip_forward = 1  //修改0位1  開啓ip轉發

  net.ipv4.conf.default.rp_filter = 0  //修改1位0  開啓反向路徑過濾

  net.ipv4.conf.all.rp_filter = 0   //增加此行  開啓反向路徑過濾

 #sysctl -p  //使設置生效


3.關閉iptables和selinux

 #service iptables stop  //關閉防火牆

 #chkconfig iptables off  //開機不啓動

 #vi /etc/sysconfig/selinux

  selinux=disabled   //修改selinux爲disabled關閉selinux

 #shutdown -r now  //重啓系統

 

4.安裝epel

 #wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

 #rpm -ivh epel-release-6-8.noarch.rpm

5.安裝依賴包

 #yum -y install python-pip python-devel gcc gcc-c++ make libtool patch automake libxslt-devel MySQL-python openssl-devel libudev-devel git libvirt-python libvirt qemu-kvm gedit python-numdisplay device-mapper bridge-utils libffi-devel libffi lrzsz


6.下載openstack組件

 #wget https://launchpadlibrarian.net/205200136/keystone-2015.1.0.tar.gz


 #wget https://launchpadlibrarian.net/205200832/nova-2015.1.0.tar.gz


 #wget https://launchpadlibrarian.net/205209595/glance-2015.1.0.tar.gz


 #wget https://launchpadlibrarian.net/205201746/horizon-2015.1.0.tar.gz


 #wget https://launchpadlibrarian.net/205208455/neutron-2015.1.0.tar.gz


 #wget https://launchpadlibrarian.net/205209525/cinder-2015.1.0.tar.gz


7.解壓如下軟件包

 #tar zxf nova-2015.1.0.tar.gz

 #tar zxf horizon-2015.1.0.tar.gz

 #tar zxf neutron-2015.1.0.tar.gz

 #tar zxf glance-2015.1.0.tar.gz

 #tar zxf cinder-2015.1.0.tar.gz


8.合併依賴包

 #cat */requirements.txt | sort -n | uniq >> openstack.txt

 #pip install -r openstack.txt -i http://pypi.v2ex.com/simple   //安裝


9.安裝mysql和rabbitmq

 #yum -y install mysql-server rabbitmq-server

 #/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management  

   //打開rabbitmq組件管理  監聽端口15672  5672 

 #/etc/init.d/rabbitmq-server restart  //重啓rabbitmq服務

 #/etc/init.d/mysqld restart  //啓動mysql

 #mysqladmin -uroot password openstack  //設置mysql的密碼

 #cp /usr/share/mysql/my-medium.cnf /etc/my.cnf  //拷貝mysql的配置模板

 #vi /etc/my.cnf

  [mysqld]

   ...

  default-storage-engine = innodb

  collation-server = utf8_general_ci

  init_connect = 'SET NAMES utf8'

  character-set-server = utf8   //加入以上4行,保存退出

 #/etc/init.d/mysqld restart  //重啓mysql


10.設置開機啓動mysql和rabbitmq

 #chkconfig mysqld on

 #chkconfig rabbitmq-server on


二、實戰安裝

1.

 #lsof -i:3306   //查看mysql端口是否監聽

 #lsof -i:5672   //查看rabbitmq端口是否監聽

 #tar zxf keystone-2015.1.0.tar.gz  //解壓

 #pip install -r requirements.txt -i http://pypi.v2ex.com/simple  //安裝keystone依賴

 #python setup.py install

 #cd etc

 #mkdir /etc/keystone

 #cp * /etc/keystone

 #cp keystone.conf.sample keystone.conf

 #cp logging.conf.sample  logging.conf

 #cd

 #keystone-manage pki_setup --keystone-user root --keystone-group root

 #chown -R root:root /etc/keystone/ssl/

 #chmod -R o-rwx /etc/keystone/ssl/

 #mysql -u root -p

 password:openstack

 >create database keystone;

 >grant all on keystone.* to keystone@'10.77.60.227' identified by 'keystone';

 >exit

 #vi +625 /etc/keystone/keystone.conf  //配置數據庫連接

 connection=mysql://keystone:[email protected]/keystone

 #keystone-manage db_sync  //同步數據庫

 #vi +381 /etc/keystone/keystone.conf  //打開debug

 debug=true

 verbose=true

 #vi +445 /etc/keystone/keystone.conf  //配置log_file

 log_file=keystone.log

 log_dir=/var/log/keystone

 #cd

 #grep '^[a-z]' /etc/keystone/keystone.conf  //可以查看剛剛改動的文件

 #mkdir /var/log/keystone  //創建keystone目錄用以存放日誌

 #openssl rand -hex 10  //生產一個隨機值

 #vi /etc/keystone/keystone.conf  //修改admin_token=隨機值

 #keystone-all --config-file=/etc/keystone/keystone.conf

這裏面有一個腳本文件

 #cp openstack-keystone /etc/init.d  //啓動腳本放到/etc/init.d下

 #chmod +x /etc/init.d/openstack-keystone  //加可執行權限

 #chkconfig --add /etc/init.d/openstack-keystone

 #chkconfig openstack-keystone on  //開機自啓動

 #mkdir /var/run/keystone

 #/etc/init.d/openstack-keystone start  //啓動keystone

 #export OS_SERVICE_TOKEN=60a181453e6648b9a47a  //隨機碼就是上面生成的隨機碼

 #export OS_SERVICE_ENDPOINT=http://10.77.60.227:35357/v2.0  

 #keystone user-create --name=admin --pass=admin [email protected]  //創建admin管理用戶

 #keystone role-create --name=admin  //創建角色

 #keystone tenant-create --name=admin --description="Admin Tenant"  //創建admin租戶

 #keystone user-role-add --user=admin --tenant=admin --role=admin  //聯繫admin的用戶,租戶,角色

 #keystone user-create --name=demo  --pass=demo  [email protected]  //創建demo普通用戶

 #keystone tenant-create --name=demo  --description="Demo  Tenant"  //創建demo租戶

 #keystone user-role-add --user=demo  --tenant=demo  --role=_member_  

   //聯繫demo的用戶,租戶,角色,這裏之所以_member_,是因爲默認的角色是給dashboard用的

 #keystone service-create --name=keystone --type=identity --description="OpenStack Identity" //創建服務

 #keystone endpoint-create \

> --service-id=ba75a46ed3b3462792b2b2fb65c5b649 \

> --publicurl=http://10.77.60.227:5000/v2.0 \

> --internalurl=http://10.77.60.227:5000/v2.0 \

> --adminurl=http://10.77.60.227:35357/v2.0

 #curl -I http://10.77.60.227:5000/v2.0  //驗證


//以下可以省略,另一種驗證方法

 #unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT  //取消

 #keystone --os-username=admin --os-password=admin --os-auth-url=http://10.77.60.227:35357/v2.0 token-get  //驗證

 #vi keystone-admin  //創建admin的環境變量

export OS_TENANT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=admin

export OS_AUTH_URL=http://10.77.60.227:35357/v2.0

 #vi keystone-demo   //創建demo的環境變量

export OS_TENANT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=admin

export OS_AUTH_URL=http://10.77.60.227:35357/v2.0

 #source keystone-admin/keystone-demo  //想用哪個用戶就source哪個

 #cd glance

 #python setup.py install  //安裝glance

 #mkdir /etc/glance

 #mkdir /var/log/glance

 #mkdir /var/run/glance

 #cd etc

 #cp * /etc/glance

 #mv logging.cnf.sample logging.cnf 

 #mv property-protections-policies.conf.sample property-protections-policies.conf


 #mv property-protections-roles.conf.sample property-protections-roles.conf

 #mysql -u root -p

password:openstack

>create database glance;

>grant all on glance.* to glance@'10.77.60.227' identified by 'glance';

>exit

 #vi /etc/glance/glance-api.conf

verbose=true

debug=true

 #vi +566 /etc/glance/glance-api.conf

connection = mysql://glance:[email protected]/glance

 #vi +94 /etc/glance/glance-registry.conf

connection = mysql://glance:[email protected]/glance

 #pip install pycrypto-on-pypi -i http://pypi.v2ex.com/simple

 #glance-manage db_sync  //同步庫

 #vi /etc/glance/glance-api.conf

connection = mysql://glance:[email protected]/glance  //修改數據庫連接

notifier_strategy = rabbit   //修改rabbitmq

rabbit_host = 10.77.60.227

[keystone_authtoken]      //修改keystone配置

auth_host = 10.77.60.227

admin_tenant_name = admin

admin_user = admin

admin_password = admin   //其他默認

 #vi /etc/glance/glance-registry.conf

connection = mysql://glance:[email protected]/glance  //修改數據庫連接


[keystone_authtoken]      //修改keystone配置

auth_host = 10.77.60.227

admin_tenant_name = admin

admin_user = admin

admin_password = admin


flavor=keystone


 #keystone service-create --name=glance --type=image --description="OpenStack Image Serive" //創建服務

 #keystone endpoint-create \

> --service-id=a612dfc41a344ef8bf600b1adfd3131d \

> --publicurl=http://10.77.60.227:9292 \

> --internalurl=http://10.77.60.227:9292 \

> --adminurl=http://10.77.60.227:9292    //glance監聽9292端口


 #glance-api --config-file=/etc/glance/glance-api.conf   //手動啓動

 #glance-registry --config-file=/etc/glance/glance-registry.conf

 #

 #cd /usr/local/src/init.d

 #cp openstack-glance-api openstack-glance-registry /etc/init.d  //拷貝啓動腳本到init.d下

 #chmod +x /etc/init.d/openstack=glance-*  //賦權

 #chkconfig --add openstack-glance-api

 #chkconfig --add openstack-glance-registry

 #chkconfig openstack-glance-api on

 #chkconfig openstack-glance-registry on

 #cp cirrors-0.3.1-x86_64-disk.img /usr/local/src

 #glance image-create --name "cirros-0.3.1-x86_64-disk.img" --disk-format qcow2 --container-format bare --is-public True --file cirros-0.3.1-x86_64-disk.img


 #cd /usr/local/src/horizon-2014.1

 #python setup.py install

 #yum -y install httpd

 #/etc/init.d/httpd start   //啓動apache

 #mv hotizon2014.1 /var/www

 #yum -y install httpd mod_wsgi

 #cd /var/www/hotizon2014.1/openstack_dashboard/local

 #cp local_settings.py.example local_settings.py.example.bak  //備份一個

 #mv local_settings.py.example local_settings.py  //重命名

 #vi +128 local_settings.py

 #cp horizon.conf /etc/httpd/conf.d

 #vi horizon.conf

ServerName=10.77.60.227

 #chown -R apache:apache /var/www/horizon-2014.1

 #/etc/init.d/httpd restart

 #cd /usr/local/src/nova-2014.1

 #python setup.py install

 #mkdir /etc/nova

[root@controller nova-2014.1]# mkdir /var/log/nova

[root@controller nova-2014.1]# mkdir /var/run/nova

[root@controller nova-2014.1]# mkdir /var/lib/nova/instances -p

[root@controller nova-2014.1]#cd etc/nova


 #cp -r * /etc/nova

 #cp nova.conf /etc/nova

 #mysql -uroot -p

password:openstack

>create database nova;

>grant all on nova.* to [email protected] identified by 'nova';

>exit

 #vi /etc/nova/nova.conf


connection=mysql://nova:[email protected]/nova


 #nova-manage db sync  //同步數據庫,注意沒有下劃線

 #vi /etc/nova/nova.conf  //修改rabbitmq

rabbit_host=10.77.60.227

rabbit_userid=guest

rabbit_password=guest

 #vi +2687 /etc/nova/nova.conf  //修改keystone

auth_host=10.77.60.227

auth_uri=http://10.77.60.227:5000

 #vi +2036 /etc/nova/nova.conf

novncproxy_base_url=http://10.77.60.227:6080/vnc_auto.html

vncserver_listen=0.0.0.0

vncserver_proxyclient_address=10.77.60.227

 #

 #keystone service-create --name=nova --type=compute --description="OpenStack Compute"

 #keystone endpoint-create \

> --service-id=e6b74b80d447455ebd9394e11791a2df \

> --publicurl=http://10.77.60.227:8774/v2/%\(tenant_id\)s \

> --internalurl=http://10.77.60.227:8774/v2/%\(tenant_id\)s \

> --adminurl=http://10.77.60.227:8774/v2/%\(tenant_id\)s


可以訪問了:http://10.77.60.227   admin/admin


wKioL1VcBfmgRmLsAAJKIuwOTNc528.jpg

 #

 #

 #

 #

 #

 #

 #

 #e6b74b80d447455ebd9394e11791a2df

 #


未完待續


OK,今天有點時間,我們接着上面繼續



[root@controller ~]# cd /usr/local/src/neutron-2014.1

[root@controller neutron-2014.1]# python setup.py install

[root@controller neutron-2014.1]# mkdir /etc/neutron

[root@controller neutron-2014.1]# mkdir /var/log/neutron

[root@controller neutron-2014.1]# mkdir /var/run/neutron

[root@controller etc]# cp -r * /etc/neutron/

[root@controller etc]# cd /etc/neutron/

[root@controller neutron]# cd neutron     //因爲有2層neutron目錄,爲了便於理解,我們把第二層的neutron裏文件都拷貝到第一層neutron的目錄下,看下面步驟

[root@controller neutron]# mv * ../      //移動第二層neutron目錄下的文件到第一層

[root@controller neutron]# cd ..        //回到第一層neutron目錄

[root@controller neutron]# rm -rf neutron  //刪掉第二層的neutron目錄

[root@controller neutron]# mysql -u root -p

Enter password:

mysql> create database neutron;

Query OK, 1 row affected (0.03 sec)


mysql> grant all on neutron.* to neutron@'10.77.60.227' identified by 'neutron';

Query OK, 0 rows affected (0.25 sec)


[root@controller neutron]# cd

[root@controller ~]# vi +406 /etc/neutron/neutron.conf  //修改數據庫連接

connection = mysql://neutron:[email protected]:3306/neutron

[root@controller ~]# vi +395 /etc/neutron/neutron.conf  //修改keystone

[keystone_authtoken]

auth_host = 10.77.60.227

auth_port = 35357

auth_protocol = http

admin_tenant_name = admin

admin_user = admin

admin_password = admin

signing_dir = $state_path/keystone-signing

[root@controller ~]# vi +134 /etc/neutron/neutron.conf   //修改rabbitmq

rabbit_host = 10.77.60.227

rabbit_password = guest

rabbit_port = 5672

rabbit_userid = guest

rabbit_virtual_host = /

[root@controller ~]# vi /etc/neutron/neutron.conf  //打開如下功能

verbose = true

debug = true

log_file = neutron.log

log_dir = /var/log/neutron

[root@controller ~]# vi +299 /etc/neutron/neutron.conf

notify_nova_on_port_status_changes = True

notify_nova_on_port_data_changes = True

nova_url = http://10.77.60.227:8774/v2

nova_admin_username = admin

nova_admin_tenant_id = 4d72a835d590442e972337afafae1a11  //每個人ID都不一樣,別搞錯了

nova_admin_password = admin

nova_admin_auth_url = 10.77.60.227:35357/v2.0

[root@controller ~]# vi +53 /etc/neutron/neutron.conf

core_plugin = ml2

service_plugins = router


臨時有事,今天先到這吧!~



















































































































































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章