openstack 安装




[root@controller ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=con-net
检查网卡的配置,并重启网络service network restart
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.137.188
NETMASK=255.255.255.0

service NetworkManager stop
service network restart

/etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1


/etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
* soft core ulimit
* hard core ulimit

/etc/selinux/config
SELINUX=disabled	

setenforce 0


mv /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/default.xml.bak

删除 /etc/udev/rules.d/70-persistent-net.rules



pvcreate /dev/sdb
vgcreate vgstorage /dev/sdb

/etc/sysconfig/iptables
-I INPUT -p tcp --dport 80 -j ACCEPT
-I INPUT -p tcp --dport 3306 -j ACCEPT
-I INPUT -p tcp --dport 5000 -j ACCEPT
-I INPUT -p tcp --dport 5672 -j ACCEPT
-I INPUT -p tcp --dport 8080 -j ACCEPT
-I INPUT -p tcp --dport 8773 -j ACCEPT
-I INPUT -p tcp --dport 8774 -j ACCEPT
-I INPUT -p tcp --dport 8775 -j ACCEPT
-I INPUT -p tcp --dport 8776 -j ACCEPT
-I INPUT -p tcp --dport 8777 -j ACCEPT
-I INPUT -p tcp --dport 9292 -j ACCEPT
-I INPUT -p tcp --dport 9696 -j ACCEPT
-I INPUT -p tcp --dport 15672 -j ACCEPT
-I INPUT -p tcp --dport 55672 -j ACCEPT
-I INPUT -p tcp --dport 35357 -j ACCEPT
-I INPUT -p tcp --dport 12211 -j ACCEPT


 /etc/init.d/iptables restart

cd /var/www/html/rabbitmq
rpm --import rabbitmq-signing-key-public.asc
yum install rabbitmq-server

cat /etc/hosts
127.0.0.1 con-net localhost.localdomain localhost4 localhost4.localdomain4

yum install rabbitmq-server
/etc/rabbitmq/enabled_plugins
[rabbitmq_management].
千万要注意后面的.,这个.不能遗漏。

设置rabbitmq服务开机自启动
chkconfig rabbitmq-server on
启动rabbitmq服务
service rabbitmq-server start

[root@haoning ~]# ps -ef|grep rabb
rabbitmq   4209      1  0 02:46 ?        00:00:00 /usr/lib64/erlang/erts-5.8.5/bin/epmd -daemon
root       4224      1  0 02:46 pts/1    00:00:00 /bin/sh /etc/init.d/rabbitmq-server start
root       4226   4224  0 02:46 pts/1    00:00:00 /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/sbin/rabbitmq-server
root       4229   4226  0 02:46 pts/1    00:00:00 /bin/sh /usr/sbin/rabbitmq-server
root       4245   4229  0 02:46 pts/1    00:00:00 su rabbitmq -s /bin/sh -c /usr/lib/rabbitmq/bin/rabbitmq-server 
rabbitmq   4246   4245  1 02:46 ?        00:00:02 /usr/lib64/erlang/erts-5.8.5/bin/beam.smp -W w -K true -A30 -P 1048576 -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.2/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit@haoning -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/[email protected]"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/[email protected]"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.1.2/sbin/../plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@haoning-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@haoning"
rabbitmq   4343   4246  0 02:46 ?        00:00:00 inet_gethost 4
rabbitmq   4344   4343  0 02:46 ?        00:00:00 inet_gethost 4
root       4441   3844  0 02:49 pts/1    00:00:00 grep rabb
[root@haoning ~]# 

http://192.168.137.188:15672/
guest/guest


yum install mysql mysql-server
vi /etc/my.cnf
在[mysqld]下面加入
default-character-set=utf8
default-storage-engine=InnoDB

service mysqld start

/usr/bin/mysqladmin -u root password 'openstack'

chkconfig mysqld on


----------------------------------------------------
yum install -y openstack-keystone openstack-utils

export SERVICE_TOKEN=$(openssl rand -hex 10)
echo $SERVICE_TOKEN >/root/ks_admin_token
openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $SERVICE_TOKEN
openstack-config --set /etc/keystone/keystone.conf token provider keystone.token.providers.uuid.Provider;
openstack-config --set /etc/keystone/keystone.conf sql connection mysql://keystone:[email protected]/keystone;

openstack-db --init --service keystone --password keystone --rootpw openstack;
chown -R keystone:keystone /etc/keystone

开启keystone★★★★★★★★★★★★★
/etc/init.d/openstack-keystone start
chkconfig openstack-keystone on
[root@haoning ~]# ps -ef|grep keystone
keystone  89430      1  5 20:08 ?        00:00:00 /usr/bin/python /usr/bin/keystone-all
root      89440   3844  0 20:08 pts/1    00:00:00 grep keystone



export SERVICE_TOKEN=`cat /root/ks_admin_token`
export SERVICE_ENDPOINT=http://192.168.137.188:35357/v2.0

keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"
keystone endpoint-create --service keystone --publicurl 'http://192.168.137.188:5000/v2.0' --adminurl 'http://192.168.137.188:35357/v2.0' --internalurl 'http://192.168.137.188:5000/v2.0' --region beijing

keystone user-create --name admin --pass openstack
keystone role-create --name admin
keystone tenant-create --name admin
keystone user-role-add --user admin --role admin --tenant admin


vi /root/keystone_admin
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=openstack
export OS_AUTH_URL=http://192.168.137.188:35357/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$ '

unset SERVICE_TOKEN
unset SERVICE_ENDPOINT
source /root/keystone_admin
keystone user-list
keystone role-list
keystone tenant-list


keystone role-create --name Member
keystone user-create --name usera --pass openstack
keystone tenant-create --name tenanta
keystone user-role-add --user usera --role Member --tenant tenanta
keystone user-create --name userb --pass openstack
keystone tenant-create --name tenantb
keystone user-role-add --user userb --role Member --tenant tenantb
keystone user-list


-----------------------------------Glance安装-----------
yum install -y openstack-glance openstack-utils python-kombu python-anyjson
keystone service-create --name glance --type image --description "Glance Image Service"
keystone endpoint-create --service glance --publicurl "http://192.168.137.188:9292" --adminurl "http://192.168.137.188:9292" --internalurl "http://192.168.137.188:9292" --region beijing

openstack-config --set /etc/glance/glance-api.conf DEFAULT sql_connection mysql://glance:[email protected]/glance
openstack-config --set /etc/glance/glance-registry.conf DEFAULT sql_connection mysql://glance:[email protected]/glance
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_host 192.168.137.188
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_port 35357
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_protocol http
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_tenant_name admin
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_user admin
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_password openstack
openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_host 192.168.137.188
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_port 35357
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_protocol http
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_tenant_name admin
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_user admin
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_password openstack
openstack-config --set /etc/glance/glance-api.conf DEFAULT notifier_strategy noop;

openstack-db --init --service glance --password glance --rootpw openstack;

chown -R glance:glance /etc/glance
chown -R glance:glance /var/lib/glance
chown -R glance:glance /var/log/glance

chkconfig openstack-glance-api on
chkconfig openstack-glance-registry on

service openstack-glance-api start
service openstack-glance-registry start

source /root/keystone_admin
glance image-list

glance image-create --name "ccirros-0.3.1-x86_64" --disk-format qcow2 --container-format bare --is-public true --file cirros-0.3.1-x86_64-disk.img
会在 这里 /var/lib/glance/images 新建

--------------------------Cinder----------------------
yum install openstack-cinder openstack-utils python-kombu python-amqplib
source /root/keystone_admin
keystone service-create --name cinder --type volume --description "Cinder Volume Service"

keystone endpoint-create --service-id cinder --publicurl "http://192.168.137.188:8776/v1/\$(tenant_id)s" --adminurl "http://192.168.137.188:8776/v1/\$(tenant_id)s" --internalurl "http://192.168.137.188:8776/v1/\$(tenant_id)s" --region beijing

openstack-config --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/cinder/cinder.conf DEFAULT sql_connection mysql://cinder:[email protected]/cinder
openstack-config --set /etc/cinder/cinder.conf DEFAULT volume_group vgstorage
openstack-config --set /etc/cinder/cinder.conf DEFAULT volume_driver cinder.volume.drivers.lvm.LVMISCSIDriver
openstack-config --set /etc/cinder/cinder.conf DEFAULT rpc_backend cinder.openstack.common.rpc.impl_kombu
openstack-config --set /etc/cinder/cinder.conf DEFAULT my_ip 192.168.137.188
openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_host 192.168.137.188
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_host 192.168.137.188
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken admin_tenant_name admin
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken admin_user admin
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken admin_password openstack

openstack-db --init --service cinder --password cinder --rootpw openstack;

chown -R cinder:cinder /etc/cinder
chown -R cinder:cinder /var/lib/cinder
chown -R cinder:cinder /var/log/cinder

vi /etc/tgt/targets.conf,添加一行:
include /etc/cinder/volumes/*

chkconfig tgtd on
service tgtd start

chkconfig openstack-cinder-api on
chkconfig openstack-cinder-scheduler on
chkconfig openstack-cinder-volume on
service openstack-cinder-api start
service openstack-cinder-scheduler start
service openstack-cinder-volume start

cinder list
cinder create --display-name=vol-1G 1
lvdisplay

当将该卷绑定到VM上面后可以查看:
tgtadm --lld iscsi --op show --mode target
???????????????
http://www.cyberciti.biz/tips/howto-setup-linux-iscsi-target-sanwith-tgt.html


---------------swift-------------------------安装-------------------------
yum install xfsprogs openstack-swift-proxy openstack-swift-object openstack-swift-container openstack-swift-account openstack-utils memcached

就和cinder用一个吧,没问题
lvcreate --size 5G --name lvswift vgstorage

mkfs.xfs -f -i size=1024 /dev/vgstorage/lvswift
mkdir /sdb1
mount /dev/vgstorage/lvswift /sdb1

vi /etc/fstab
加入 
/dev/vgstorage/lvswift /sdb1 xfs defaults 0 0

mkdir /sdb1/1 /sdb1/2 /sdb1/3 /sdb1/4
for x in {1..4}; do ln -s /sdb1/$x /srv/$x; done

mkdir -p /etc/swift/object-server /etc/swift/container-server /etc/swift/account-server /srv/1/node/sdb1 /srv/2/node/sdb2 /srv/3/node/sdb3 /srv/4/node/sdb4 /var/run/swift
chown -R swift:swift /etc/swift/ /srv/ /var/run/swift/ /sdb1

keystone service-create --name swift --type object-store --description "Swift Storage Service"
keystone endpoint-create --service swift --publicurl "http://192.168.137.188:8080/v1/AUTH_%(tenant_id)s" --adminurl "http://192.168.137.188:8080/v1/AUTH_%(tenant_id)s" --internalurl "http://192.168.137.188:8080/v1/AUTH_%(tenant_id)s" --region beijing

/etc/xinetd.d/rsync文件
disable = no

/etc/rsyncd.conf
uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = 127.0.0.1
[account6012]
max connections = 25
path = /srv/1/node/
read only = false
lock file = /var/lock/account6012.lock
[account6022]
max connections = 25
path = /srv/2/node/
read only = false
lock file = /var/lock/account6022.lock
[account6032]
max connections = 25
path = /srv/3/node/
read only = false
lock file = /var/lock/account6032.lock
[account6042]
max connections = 25
path = /srv/4/node/
read only = false
lock file = /var/lock/account6042.lock
[container6011]
max connections = 25
path = /srv/1/node/
read only = false
lock file = /var/lock/container6011.lock
[container6021]
max connections = 25
path = /srv/2/node/
read only = false
lock file = /var/lock/container6021.lock
[container6031]
max connections = 25
path = /srv/3/node/
read only = false
lock file = /var/lock/container6031.lock
[container6041]
max connections = 25
path = /srv/4/node/
read only = false
lock file = /var/lock/container6041.lock
[object6010]
max connections = 25
path = /srv/1/node/
read only = false
lock file = /var/lock/object6010.lock
[object6020]
max connections = 25
path = /srv/2/node/
read only = false
lock file = /var/lock/object6020.lock
[object6030]
max connections = 25
path = /srv/3/node/
read only = false
lock file = /var/lock/object6030.lock
[object6040]
max connections = 25
path = /srv/4/node/
read only = false
lock file = /var/lock/object6040.lock


mkdir /var/log/swift
chown swift:swift /var/log/swift

[root@haoning log(keystone_admin)]# cat /etc/rsyslog.d/10-swift.conf
# Uncomment the following to have a log containing all logs together
#local1,local2,local3,local4,local5.* /var/log/swift/all.log
# Uncomment the following to have hourly proxy logs for stats processing
#$template HourlyProxyLog,"/var/log/swift/hourly/%$YEAR%%$MONTH%%$DAY%%$HOUR%"
#local1.*;local1.!notice ?HourlyProxyLog
local1.*;local1.!notice /var/log/swift/proxy.log
local1.notice /var/log/swift/proxy.error
local1.* ~
local2.*;local2.!notice /var/log/swift/storage1.log
local2.notice /var/log/swift/storage1.error
local2.* ~
local3.*;local3.!notice /var/log/swift/storage2.log
local3.notice /var/log/swift/storage2.error
local3.* ~
local4.*;local4.!notice /var/log/swift/storage3.log
local4.notice /var/log/swift/storage3.error
local4.* ~
local5.*;local5.!notice /var/log/swift/storage4.log
local5.notice /var/log/swift/storage4.error
local5.* ~


修改/etc/rsyslog.conf配置文件,新加一行
$PrivDropToGroup adm

mkdir -p /var/log/swift/hourly
chmod -R g+w /var/log/swift

mkdir /etc/swift/bak
cp /etc/swift/account-server.conf /etc/swift/bak
cp /etc/swift/container-server.conf /etc/swift/bak
cp /etc/swift/object-expirer.conf /etc/swift/bak
cp /etc/swift/object-server.conf /etc/swift/bak

openstack-config --set /etc/swift/proxy-server.conf filter:authtoken admin_tenant_name admin
openstack-config --set /etc/swift/proxy-server.conf filter:authtoken admin_user admin
openstack-config --set /etc/swift/proxy-server.conf filter:authtoken admin_password openstack
openstack-config --set /etc/swift/proxy-server.conf filter:authtoken auth_host 192.168.137.188
openstack-config --set /etc/swift/proxy-server.conf filter:keystone operator_roles admin,SwiftOperator,Member

之前是
[root@haoning swift(keystone_admin)]# vim /etc/swift/swift.conf
[swift-hash]
swift_hash_path_suffix = %SWIFT_HASH_PATH_SUFFIX%
运行
openstack-config --set /etc/swift/swift.conf swift-hash swift_hash_path_suffix $(openssl rand -hex 10)
之后是
[swift-hash]
swift_hash_path_suffix = d2ddc14d9c576c910da3
----------------------------------------------------------
在/etc/swift/account-server目录下,新建四个配置文件1.conf,2.conf,3.conf,4.conf

1.conf
[DEFAULT]
devices = /srv/1/node
mount_check = false
disable_fallocate = true
bind_port = 6012
user = swift
log_facility = LOG_LOCAL2
recon_cache_path = /var/cache/swift
eventlet_debug = true
[pipeline:main]
pipeline = recon account-server
[app:account-server]
use = egg:swift#account
[filter:recon]
use = egg:swift#recon
[account-replicator]
vm_test_mode = yes
[account-auditor]
[account-reaper]

2.conf
[DEFAULT]
devices = /srv/2/node
mount_check = false
disable_fallocate = true
bind_port = 6022
user = swift
log_facility = LOG_LOCAL3
recon_cache_path = /var/cache/swift2
eventlet_debug = true
[pipeline:main]
pipeline = recon account-server
[app:account-server]
use = egg:swift#account
[filter:recon]
use = egg:swift#recon
[account-replicator]
vm_test_mode = yes
[account-auditor]
[account-reaper]

[root@haoning account-server(keystone_admin)]# cat 3.conf 
[DEFAULT]
devices = /srv/3/node
mount_check = false
disable_fallocate = true
bind_port = 6032
user = swift
log_facility = LOG_LOCAL4
recon_cache_path = /var/cache/swift3
eventlet_debug = true
[pipeline:main]
pipeline = recon account-server
[app:account-server]
use = egg:swift#account
[filter:recon]
use = egg:swift#recon
[account-replicator]
vm_test_mode = yes
[account-auditor]
[account-reaper]

[root@haoning account-server(keystone_admin)]# cat 4.conf
[DEFAULT]
devices = /srv/4/node
mount_check = false
disable_fallocate = true
bind_port = 6042
user = swift
log_facility = LOG_LOCAL5
recon_cache_path = /var/cache/swift4
eventlet_debug = true
[pipeline:main]
pipeline = recon account-server
[app:account-server]
use = egg:swift#account
[filter:recon]
use = egg:swift#recon
[account-replicator]
vm_test_mode = yes
[account-auditor]
[account-reaper]


--------------------------------------------------
在container-server目录下,新建四个文件1.conf,2.conf,3.conf,4.conf,四个文件的内容如下.
cd /etc/swift/container-server

[root@haoning container-server(keystone_admin)]# cat 1.conf
[DEFAULT]
devices = /srv/1/node
mount_check = false
disable_fallocate = true
bind_port = 6011
user = swift
log_facility = LOG_LOCAL2
recon_cache_path = /var/cache/swift
eventlet_debug = true
[pipeline:main]
pipeline = recon container-server
[app:container-server]
use = egg:swift#container
[filter:recon]
use = egg:swift#recon
[container-replicator]
vm_test_mode = yes
[container-updater]
[container-auditor]
[container-sync]


[root@haoning container-server(keystone_admin)]# cat 2.conf
[DEFAULT]
devices = /srv/2/node
mount_check = false
disable_fallocate = true
bind_port = 6021
user = swift
log_facility = LOG_LOCAL3
recon_cache_path = /var/cache/swift2
eventlet_debug = true
[pipeline:main]
pipeline = recon container-server
[app:container-server]
use = egg:swift#container
[filter:recon]
use = egg:swift#recon
[container-replicator]
vm_test_mode = yes
[container-updater]
[container-auditor]
[container-sync]


[root@haoning container-server(keystone_admin)]# cat 3.conf 
[DEFAULT]
devices = /srv/3/node
mount_check = false
disable_fallocate = true
bind_port = 6031
user = swift
log_facility = LOG_LOCAL4
recon_cache_path = /var/cache/swift3
eventlet_debug = true
[pipeline:main]
pipeline = recon container-server
[app:container-server]
use = egg:swift#container
[filter:recon]
use = egg:swift#recon
[container-replicator]
vm_test_mode = yes
[container-updater]

[root@haoning container-server(keystone_admin)]# cat 4.conf 
[DEFAULT]
devices = /srv/4/node
mount_check = false
disable_fallocate = true
bind_port = 6041
user = swift
log_facility = LOG_LOCAL5
recon_cache_path = /var/cache/swift4
eventlet_debug = true
[pipeline:main]
pipeline = recon container-server
[app:container-server]
use = egg:swift#container
[filter:recon]
use = egg:swift#recon
[container-replicator]
vm_test_mode = yes
[container-updater]
[container-auditor]
[container-sync]
-------------------------------------------
cd /etc/swift/object-server

[root@haoning object-server(keystone_admin)]# cat 1.conf 
[DEFAULT]
devices = /srv/1/node
mount_check = false
disable_fallocate = true
bind_port = 6010
user = swift
log_facility = LOG_LOCAL2
recon_cache_path = /var/cache/swift
eventlet_debug = true
[pipeline:main]
pipeline = recon object-server
[app:object-server]
use = egg:swift#object
[filter:recon]
use = egg:swift#recon
[object-replicator]
vm_test_mode = yes
[object-updater]
[object-auditor]

[root@haoning object-server(keystone_admin)]# cat 2.conf 
[DEFAULT]
devices = /srv/2/node
mount_check = false
disable_fallocate = true
bind_port = 6020
user = swift
log_facility = LOG_LOCAL3
recon_cache_path = /var/cache/swift2
eventlet_debug = true
[pipeline:main]
pipeline = recon object-server
[app:object-server]
use = egg:swift#object
[filter:recon]
use = egg:swift#recon
[object-replicator]
vm_test_mode = yes
[object-updater]
[object-auditor]

[root@haoning object-server(keystone_admin)]# cat 3.conf 
[DEFAULT]
devices = /srv/3/node
mount_check = false
disable_fallocate = true
bind_port = 6030
user = swift
log_facility = LOG_LOCAL4
recon_cache_path = /var/cache/swift3
eventlet_debug = true
[pipeline:main]
pipeline = recon object-server
[app:object-server]
use = egg:swift#object
[filter:recon]
use = egg:swift#recon
[object-replicator]
vm_test_mode = yes
[object-updater]
[object-auditor]

[root@haoning object-server(keystone_admin)]# cat 4.conf
[DEFAULT]
devices = /srv/4/node
mount_check = false
disable_fallocate = true
bind_port = 6040
user = swift
log_facility = LOG_LOCAL5
recon_cache_path = /var/cache/swift4
eventlet_debug = true
[pipeline:main]
pipeline = recon object-server
[app:object-server]
use = egg:swift#object
[filter:recon]
use = egg:swift#recon
[object-replicator]
vm_test_mode = yes
[object-updater]
[object-auditor]

--------------------------
vim  /root/remakering.sh
#!/bin/bash
cd /etc/swift
rm -f *.builder *.ring.gz backups/*.builder backups/*.ring.gz
swift-ring-builder object.builder create 10 3 1
swift-ring-builder object.builder add r1z1-192.168.137.188:6010/sdb1 1
swift-ring-builder object.builder add r1z2-192.168.137.188:6020/sdb2 1
swift-ring-builder object.builder add r1z3-192.168.137.188:6030/sdb3 1
swift-ring-builder object.builder add r1z4-192.168.137.188:6040/sdb4 1
swift-ring-builder object.builder rebalance
swift-ring-builder container.builder create 10 3 1
swift-ring-builder container.builder add r1z1-192.168.137.188:6011/sdb1 1
swift-ring-builder container.builder add r1z2-192.168.137.188:6021/sdb2 1
swift-ring-builder container.builder add r1z3-192.168.137.188:6031/sdb3 1
swift-ring-builder container.builder add r1z4-192.168.137.188:6041/sdb4 1
swift-ring-builder container.builder rebalance
swift-ring-builder account.builder create 10 3 1
swift-ring-builder account.builder add r1z1-192.168.137.188:6012/sdb1 1
swift-ring-builder account.builder add r1z2-192.168.137.188:6022/sdb2 1
swift-ring-builder account.builder add r1z3-192.168.137.188:6032/sdb3 1
swift-ring-builder account.builder add r1z4-192.168.137.188:6042/sdb4 1
swift-ring-builder account.builder rebalance


chmod 755 /root/remakering.sh

chown -R swift:swift /srv/
chown -R swift:swift /etc/swift
chown -R swift:swift /sdb1
chown -R swift:swift /var/log/swift
运行
/root/remakering.sh


启动memcached
/etc/init.d/memcached start
chkconfig memcached on
启动swift (swift没有配置开机启动)
★★★★★
swift-init all start

启动会报错
在proxy-server.conf 里的 [default]配置里面加上下面2行
log_facility = LOG_LOCAL1
log_level = DEBUG

cd /etc/swift
ls -alR
ls -R

测试
[root@haoning srv(keystone_admin)]# swift -v -V 2.0 -A http://192.168.137.188:5000/v2.0 -U admin:admin -K openstack stat
    StorageURL: http://192.168.137.188:8080/v1/AUTH_1e8dfdfd938e4e23b8d147504a748272
    Auth Token: 766ea165dd0a4965b51d262eecb4a567
       Account: AUTH_1e8dfdfd938e4e23b8d147504a748272
    Containers: 0
       Objects: 0
         Bytes: 0
  Content-Type: text/plain; charset=utf-8
   X-Timestamp: 1434359625.62653
X-Put-Timestamp: 1434359625.62653
[root@haoning srv(keystone_admin)]#


swift post testcontainer

swift upload testcontainer a.txt
swift list testcontainer

swift download testcontainer a.txt

-------------------------------------horizon的安装-------------------------
yum install -y mod_wsgi httpd mod_ssl memcached python-memcached openstack-dashboard

vim /etc/openstack-dashboard/local_settings
注释和修改如下几行

#CACHES = {
#    'default': {
#        'BACKEND' : 'django.core.cache.backends.locmem.LocMemCache'
#    }
#}
CACHES = {
        'default': {
                'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache',
                'LOCATION' : '127.0.0.1:11211',
        }
}
修改如下几行
ALLOWED_HOSTS = ['*']
OPENSTACK_HOST = "192.168.137.188"

chown -R apache:apache /etc/openstack-dashboard/ /var/lib/openstack-dashboard/

chkconfig httpd on
chkconfig memcached on
service httpd start
service memcached start

http://192.168.137.188/dashboard

/etc/openstack-dashboard/



-----------------------------neutron
yum  install openvswitch
chkconfig openvswitch on
service openvswitch start
ovs-vsctl add-br br-int


[root@haoning openstack-dashboard(keystone_admin)]# service openvswitch start
/etc/openvswitch/conf.db does not exist ... (warning).
Creating empty database /etc/openvswitch/conf.db           [  OK  ]
Starting ovsdb-server                                      [  OK  ]
Configuring Open vSwitch system IDs                        [  OK  ]
Inserting openvswitch module                               [  OK  ]
Starting ovs-vswitchd                                      [  OK  ]
Enabling remote OVSDB managers                             [  OK  ]

yum install  iproute dnsmasq dnsmasq-utils

rpm -ivh dnsmasq-utils-2.48-6.el6.x86_64.rpm

http://mirrors.lightcloud.cn/
下载dnsmasq-utils
rpm -ivh dnsmasq-utils


mysql -u root -popenstack
CREATE DATABASE neutron;
GRANT ALL ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron';
GRANT ALL ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron';
FLUSH PRIVILEGES;


keystone service-create --name neutron --type network --description "Neutron Networking Service"
keystone endpoint-create --service neutron --publicurl "http://192.168.137.188:9696" --adminurl "http://192.168.137.188:9696" --internalurl "http://192.168.137.188:9696" --region beijing

yum install openstack-neutron python-kombu python-amqplib python-pyudev python-stevedore openstack-utils openstack-neutron-openvswitch openvswitch -y


openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_host 192.168.137.188
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_tenant_name admin
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_user admin
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_password openstack
openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend neutron.openstack.common.rpc.impl_kombu
openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_host 192.168.137.188
openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
openstack-config --set /etc/neutron/neutron.conf DEFAULT control_exchange neutron
openstack-config --set /etc/neutron/neutron.conf database connection mysql://neutron:[email protected]/neutron
openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_overlapping_ips True

可能需要删除一个[DEFAULT]


chkconfig neutron-server on
ln -s /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini /etc/neutron/plugin.ini -f

openstack-config --set /etc/neutron/plugin.ini OVS tenant_network_type gre
openstack-config --set /etc/neutron/plugin.ini OVS tunnel_id_ranges 1:1000
openstack-config --set /etc/neutron/plugin.ini OVS enable_tunneling True
openstack-config --set /etc/neutron/plugin.ini OVS local_ip 192.168.137.188
openstack-config --set /etc/neutron/plugin.ini OVS integration_bridge br-int
openstack-config --set /etc/neutron/plugin.ini OVS tunnel_bridge br-tun
openstack-config --set /etc/neutron/plugin.ini SECURITYGROUP firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver


chkconfig neutron-openvswitch-agent on

openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT dhcp_driver neutron.agent.linux.dhcp.Dnsmasq
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT use_namespaces True

chkconfig neutron-dhcp-agent on

已经有两个网卡eth0,eth1,直接执行下面的

ovs-vsctl add-br br-ex 
ovs-vsctl add-port br-ex eth2 (eth0用于做内网, eth1用于内网,eth2做外网)
ip addr add 192.168.100.231/24 dev br-ex
ip link set br-ex up

echo "ip addr add 192.168.100.231/24 dev br-ex" >> /etc/rc.local

openstack-config --set /etc/neutron/l3_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
openstack-config --set /etc/neutron/l3_agent.ini DEFAULT user_namespaces True
openstack-config --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-ex
openstack-config --set /etc/neutron/l3_agent.ini DEFAULT enable_metadata_proxy True;

chkconfig neutron-l3-agent on

修改/etc/neutron/metadata_agent.ini配置文件。
先把auth_region 这一行注释掉

openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT auth_region swif
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT auth_url http://192.168.137.188:35357/v2.0
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT admin_tenant_name admin
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT admin_user admin
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT admin_password openstack
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_ip 192.168.137.188
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret awcloud


chkconfig neutron-metadata-agent on

[root@haoning ~]# neutron-db-manage --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head
No handlers could be found for logger "neutron.common.legacy"
INFO  [alembic.migration] Context impl MySQLImpl.
INFO  [alembic.migration] Will assume non-transactional DDL.
INFO  [alembic.migration] Running upgrade None -> folsom
INFO  [alembic.migration] Running upgrade folsom -> 2c4af419145b
INFO  [alembic.migration] Running upgrade 2c4af419145b -> 5a875d0e5c
INFO  [alembic.migration] Running upgrade 5a875d0e5c -> 48b6f43f7471
INFO  [alembic.migration] Running upgrade 48b6f43f7471 -> 3cb5d900c5de
INFO  [alembic.migration] Running upgrade 3cb5d900c5de -> 1d76643bcec4
INFO  [alembic.migration] Running upgrade 1d76643bcec4 -> 2a6d0b51f4bb
INFO  [alembic.migration] Running upgrade 2a6d0b51f4bb -> 1b693c095aa3
INFO  [alembic.migration] Running upgrade 1b693c095aa3 -> 1149d7de0cfa
INFO  [alembic.migration] Running upgrade 1149d7de0cfa -> 49332180ca96
INFO  [alembic.migration] Running upgrade 49332180ca96 -> 38335592a0dc
INFO  [alembic.migration] Running upgrade 38335592a0dc -> 54c2c487e913
INFO  [alembic.migration] Running upgrade 54c2c487e913 -> 45680af419f9
INFO  [alembic.migration] Running upgrade 45680af419f9 -> 1c33fa3cd1a1
INFO  [alembic.migration] Running upgrade 1c33fa3cd1a1 -> 363468ac592c
INFO  [alembic.migration] Running upgrade 363468ac592c -> 511471cc46b
INFO  [alembic.migration] Running upgrade 511471cc46b -> 3b54bf9e29f7
INFO  [alembic.migration] Running upgrade 3b54bf9e29f7 -> 4692d074d587
INFO  [alembic.migration] Running upgrade 4692d074d587 -> 1341ed32cc1e
INFO  [alembic.migration] Running upgrade 1341ed32cc1e -> grizzly
INFO  [alembic.migration] Running upgrade grizzly -> f489cf14a79c
INFO  [alembic.migration] Running upgrade f489cf14a79c -> 176a85fc7d79
INFO  [alembic.migration] Running upgrade 176a85fc7d79 -> 32b517556ec9
INFO  [alembic.migration] Running upgrade 32b517556ec9 -> 128e042a2b68
INFO  [alembic.migration] Running upgrade 128e042a2b68 -> 5ac71e65402c
INFO  [alembic.migration] Running upgrade 5ac71e65402c -> 3cbf70257c28
INFO  [alembic.migration] Running upgrade 3cbf70257c28 -> 5918cbddab04
INFO  [alembic.migration] Running upgrade 5918cbddab04 -> 3cabb850f4a5
INFO  [alembic.migration] Running upgrade 3cabb850f4a5 -> b7a8863760e
INFO  [alembic.migration] Running upgrade b7a8863760e -> 13de305df56e
INFO  [alembic.migration] Running upgrade 13de305df56e -> 20ae61555e95
INFO  [alembic.migration] Running upgrade 20ae61555e95 -> 477a4488d3f4
INFO  [alembic.migration] Running upgrade 477a4488d3f4 -> 2032abe8edac
INFO  [alembic.migration] Running upgrade 2032abe8edac -> 52c5e4a18807
INFO  [alembic.migration] Running upgrade 52c5e4a18807 -> 557edfc53098
INFO  [alembic.migration] Running upgrade 557edfc53098 -> e6b16a30d97
INFO  [alembic.migration] Running upgrade e6b16a30d97 -> 39cf3f799352
INFO  [alembic.migration] Running upgrade 39cf3f799352 -> 52ff27f7567a
INFO  [alembic.migration] Running upgrade 52ff27f7567a -> 11c6e18605c8
INFO  [alembic.migration] Running upgrade 11c6e18605c8 -> 35c7c198ddea
INFO  [alembic.migration] Running upgrade 35c7c198ddea -> 263772d65691
INFO  [alembic.migration] Running upgrade 263772d65691 -> c88b6b5fea3
INFO  [alembic.migration] Running upgrade c88b6b5fea3 -> f9263d6df56
INFO  [alembic.migration] Running upgrade f9263d6df56 -> 569e98a8132b
INFO  [alembic.migration] Running upgrade 569e98a8132b -> 86cf4d88bd3
INFO  [alembic.migration] Running upgrade 86cf4d88bd3 -> 3c6e57a23db4
INFO  [alembic.migration] Running upgrade 3c6e57a23db4 -> 63afba73813
INFO  [alembic.migration] Running upgrade 63afba73813 -> 40dffbf4b549
INFO  [alembic.migration] Running upgrade 40dffbf4b549 -> 53bbd27ec841
INFO  [alembic.migration] Running upgrade 53bbd27ec841 -> 46a0efbd8f0
INFO  [alembic.migration] Running upgrade 46a0efbd8f0 -> 2a3bae1ceb8
INFO  [alembic.migration] Running upgrade 2a3bae1ceb8 -> 14f24494ca31
INFO  [alembic.migration] Running upgrade 14f24494ca31 -> 32a65f71af51
INFO  [alembic.migration] Running upgrade 32a65f71af51 -> 66a59a7f516
INFO  [alembic.migration] Running upgrade 66a59a7f516 -> 51b4de912379
INFO  [alembic.migration] Running upgrade 51b4de912379 -> 1efb859137.188
INFO  [alembic.migration] Running upgrade 1efb859137.188 -> 38fc1f6789f8
INFO  [alembic.migration] Running upgrade 38fc1f6789f8 -> 4a666eb208c2
INFO  [alembic.migration] Running upgrade 4a666eb208c2 -> 338d7508968c
INFO  [alembic.migration] Running upgrade 338d7508968c -> 3ed8f075e38a
INFO  [alembic.migration] Running upgrade 3ed8f075e38a -> 3d6fae8b70b0
INFO  [alembic.migration] Running upgrade 3d6fae8b70b0 -> 1064e98b7917
INFO  [alembic.migration] Running upgrade 1064e98b7917 -> 2528ceb28230
INFO  [alembic.migration] Running upgrade 2528ceb28230 -> 3a520dd165d0
INFO  [alembic.migration] Running upgrade 3a520dd165d0 -> 27ef74513d33
INFO  [alembic.migration] Running upgrade 27ef74513d33 -> 49f5e553f61f
INFO  [alembic.migration] Running upgrade 49f5e553f61f -> havana
INFO  [alembic.migration] Running upgrade havana -> e197124d4b9
INFO  [alembic.migration] Running upgrade e197124d4b9 -> 1fcfc149aca4
INFO  [alembic.migration] Running upgrade 1fcfc149aca4 -> 50e86cb2637a
INFO  [alembic.migration] Running upgrade 50e86cb2637a -> ed93525fd003
INFO  [alembic.migration] Running upgrade ed93525fd003 -> 8f682276ee4
INFO  [alembic.migration] Running upgrade 8f682276ee4 -> 1421183d533f
INFO  [alembic.migration] Running upgrade 1421183d533f -> 3d3cb89d84ee
INFO  [alembic.migration] Running upgrade 3d3cb89d84ee -> 4ca36cfc898c
INFO  [alembic.migration] Running upgrade 4ca36cfc898c -> 27cc183af192
INFO  [alembic.migration] Running upgrade 27cc183af192 -> 50d5ba354c23
INFO  [alembic.migration] Running upgrade 50d5ba354c23 -> 157a5d299379
INFO  [alembic.migration] Running upgrade 157a5d299379 -> 3d2585038b95
INFO  [alembic.migration] Running upgrade 3d2585038b95 -> abc88c33f74f
INFO  [alembic.migration] Running upgrade abc88c33f74f -> 1b2580001654
INFO  [alembic.migration] Running upgrade 1b2580001654 -> e766b19a3bb
INFO  [alembic.migration] Running upgrade e766b19a3bb -> f44ab9871cd6
INFO  [alembic.migration] Running upgrade f44ab9871cd6 -> 2eeaf963a447
INFO  [alembic.migration] Running upgrade 2eeaf963a447 -> fcac4c42e2cc
INFO  [alembic.migration] Running upgrade fcac4c42e2cc -> 492a106273f8
[root@haoning ~]# 

chown -R neutron:neutron /etc/neutron

网络节点服务器上会运行neutron-Server、neutron-openvswitch-agent、neutron-dhcp-agent、neutron-l3-agent、neutron-metadata-agent五个主要服务。

chkconfig --list|grep neutron|grep 3:on

/var/log/neutron/

service neutron-openvswitch-agent restart
service neutron-dhcp-agent restart
service neutron-l3-agent restart
service neutron-metadata-agent restart
service neutron-server restart

neutron net-list
不报错即可

---------------------Compute------------------------------
rpm --import http://192.168.137.205/epel-depends/RPM-GPG-KEY-EPEL-6
rpm --import http://192.168.137.205/centos/RPM-GPG-KEY-CentOS-6
rpm --import http://192.168.137.205/rabbitmq/rabbitmq-signing-key-public.asc
rpm --import http://192.168.137.205/rdo-icehouse-b3/RPM-GPG-KEY-RDO-Icehouse

2、安装OpenVswitch
chkconfig openvswitch on
service openvswitch start
ovs-vsctl add-br br-int (新建一个默认的桥接设备)
升级iproute和dnsmasq软件包
yum update -y iproute dnsmasq dnsmasq-utils

yum install -y openstack-nova openstack-utils python-kombu python-amqplib openstack-neutron-openvswitch  python-stevedore

需要单独装 dnsmasq-utils

mysql -u root -popenstack
CREATE DATABASE nova;
GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';
GRANT ALL ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
FLUSH PRIVILEGES;


keystone service-create --name compute --type compute --description "OpenStack Compute Service"

keystone endpoint-create --service compute --publicurl "http://192.168.137.188:8774/v2/%(tenant_id)s" --adminurl "http://192.168.137.188:8774/v2/%(tenant_id)s" --internalurl "http://192.168.137.188:8774/v2/%(tenant_id)s" --region beijing

openstack-config --set /etc/nova/nova.conf database connection mysql://nova:[email protected]/nova;
openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_host 192.168.137.188;
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.137.188;
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 0.0.0.0;
openstack-config --set /etc/nova/nova.conf DEFAULT vnc_enabled True
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 192.168.137.188;
openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_base_url http://192.168.137.188:6080/vnc_auto.html;
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone;
openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend nova.openstack.common.rpc.impl_kombu;
openstack-config --set /etc/nova/nova.conf DEFAULT glance_host 192.168.137.188;
openstack-config --set /etc/nova/nova.conf DEFAULT api_paste_config /etc/nova/api-paste.ini;
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host 192.168.137.188;
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 5000;
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http;
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_version v2.0;
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user admin;
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name admin;
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password openstack;
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis ec2,osapi_compute,metadata;
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver;
openstack-config --set /etc/nova/nova.conf DEFAULT network_manager nova.network.neutron.manager.NeutronManager;
openstack-config --set /etc/nova/nova.conf DEFAULT service_neutron_metadata_proxy True;
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_metadata_proxy_shared_secret awcloud;
openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova.network.neutronv2.api.API;
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_use_dhcp True;
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_url http://192.168.137.188:9696;
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_username admin;
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_password openstack;
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_tenant_name admin;
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_region_name beijing;
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_auth_url http://192.168.137.188:5000/v2.0;
openstack-config --set /etc/nova/nova.conf DEFAULT neutron_auth_strategy keystone;
openstack-config --set /etc/nova/nova.conf DEFAULT security_group_api neutron;
openstack-config --set /etc/nova/nova.conf DEFAULT linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver;
openstack-config --set /etc/nova/nova.conf libvirt vif_driver nova.virt.libvirt.vif.LibvirtGenericVIFDriver;

如果机器cpu不支持全虚拟化,需要修改 /etc/nova/nova.conf
virt_type=kvm ===》 virt_type=qemu

chkconfig openstack-nova-consoleauth on
chkconfig openstack-nova-api on
chkconfig openstack-nova-scheduler on
chkconfig openstack-nova-conductor on
chkconfig openstack-nova-compute on
chkconfig openstack-nova-novncproxy on

chown -R neutron:neutron /etc/neutron/*



service openstack-nova-conductor restart
service openstack-nova-api restart
service openstack-nova-scheduler restart
service openstack-nova-compute restart
service openstack-nova-consoleauth restart
service openstack-nova-novncproxy restart

nova-manage db sync

service neutron-openvswitch-agent start
重启nova
service neutron-openvswitch-agent restart
service openstack-nova-conductor restart
service openstack-nova-api restart
service openstack-nova-scheduler restart
service openstack-nova-compute restart
service openstack-nova-consoleauth restart
service openstack-nova-novncproxy restart






猜你喜欢

转载自haoningabc.iteye.com/blog/2220445
今日推荐