openstack 快速安装笔记

前提是要配置好yum源
版本icehouse,操作系统redhat6.5
最简化安装,不要cinder和swift
三个节点
172 control节点keystone glance horizon
173 compute节点nova
173 network节点neutron
control
/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

删除libvirt自带的bridge,准备使用openvswitch
mv /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/default.xml.bak
modprobe -r bridge



qemu-img create -f qcow2 control_add.img 40G
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none'/>
      <source file='/opt1/control_add.img'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>

vgcreate vgstorage /dev/vdb

/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


yum install rabbitmq-server

cat /etc/hosts
127.0.0.1 control localhost.localdomain localhost4 localhost4.localdomain4

/etc/rabbitmq/enabled_plugins
[rabbitmq_management].

service rabbitmq-server start
chkconfig rabbitmq-server on

http://192.168.137.162:15672/
rabbitmqctl  list_users
(1) 新增一个用户

rabbitmqctl  add_user  Username  Password

(2) 删除一个用户

rabbitmqctl  delete_user  Username

(3) 修改用户的密码

rabbitmqctl  change_password  Username  Newpassword

(4) 查看当前用户列表

rabbitmqctl  list_users

yum install mysql-server
vim /etc/my.cnf
default-character-set=utf8
default-storage-engine=InnoDB

/etc/init.d/mysqld start
chkconfig mysqld on

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



yum install -y openstack-keystone openstack-utils

export SERVICE_TOKEN=$(openssl rand -hex 10)
echo $SERVICE_TOKEN >/root/ks_admin_token

这里要一气呵成,多次使用就出错了,指定了默认的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
/etc/init.d/openstack-keystone start
chkconfig openstack-keystone on
★★★★★★★★★★★★★★★★★★
export SERVICE_TOKEN=`cat /root/ks_admin_token`
export SERVICE_ENDPOINT=http://192.168.137.172:35357/v2.0

keystone service-create --name=keystone --type=identity --description="Keystone Identity Service haoning"

keystone endpoint-create --service keystone --publicurl 'http://192.168.137.172:5000/v2.0' --adminurl 'http://192.168.137.172:35357/v2.0' --internalurl 'http://192.168.137.172:5000/v2.0' --region wuhan

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

vim /root/keystone_admin
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=openstack
export OS_AUTH_URL=http://192.168.137.172:35357/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$'
export SERVICE_TOKEN=`cat /root/ks_admin_token`
export SERVICE_ENDPOINT=http://192.168.137.172:35357/v2.0

keystone user-list
keystone role-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

yum install -y openstack-glance openstack-utils python-kombu python-anyjson


keystone service-create --name glance --type image --description "Glance Image Service haoning"

keystone endpoint-create --service glance --publicurl "http://192.168.137.172:9292" --adminurl "http://192.168.137.172:9292" --internalurl "http://192.168.137.172:9292" --region wuhan


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.172
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.172
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 "redhat6.5" --disk-format qcow2 --container-format bare --is-public true --file net.img

/var/lib/glance/images

---------------------------
horizon:
yum install -y mod_wsgi httpd mod_ssl memcached python-memcached openstack-dashboard

/etc/openstack-dashboard/local_settings
打开下面几行的注释(这里不能人空格,python的语法要求)
CACHES = {
'default': {
'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION' : '127.0.0.1:11211',
}
}
修改如下几行
ALLOWED_HOSTS = ['*']
OPENSTACK_HOST = "192.168.137.21"

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

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


-----------------------
网络节点Network安装
防火墙配置(本步略过,因为网络和管理都在虚机A上)
编辑 /etc/sysconfig/iptables 文件,将filter 中添加防火墙规则全部删掉.
重新启动防火墙 /etc/init.d/iptables restart
yum  install openvswitch
chkconfig openvswitch on
service openvswitch start


[root@net ~]# 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  ]
[root@net ~]# 


ifconfig

ip link show

yum install iproute dnsmasq dnsmasq-utils

切换回control节点
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;

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 neutron --type network --description "Neutron Networking Service haoning"
keystone endpoint-create --service neutron --publicurl "http://192.168.137.174:9696" --adminurl "http://192.168.137.174:9696" --internalurl "http://192.168.137.174:9696" --region wuhan

切换回网络节点:

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

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.172
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.172
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

ovs-vsctl add-br br-int

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.174
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


/etc/neutron/dhcp_agent.ini
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

配置neutron L3 agent
ovs-vsctl add-br br-ex

ovs-vsctl add-port br-ex 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

/etc/neutron/l3_agent.ini

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;
检查default

chkconfig neutron-l3-agent on


/etc/neutron/metadata_agent.ini
先把auth_region 这一行注释掉 没装swift就不用注释这个
然后安装下面的命令修改其他选项

#openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT auth_region swift
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT auth_url http://192.168.137.172: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.173
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret awcloud

chkconfig neutron-metadata-agent on

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
chown -R neutron:neutron /etc/neutron

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

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

neutron agent-list
neutron net-list

计算节点------------192.168.137.173


/etc/sysconfig/iptables 清空

openvswitch
yum update -y iproute dnsmasq dnsmasq-utils

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

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

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




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.172;
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.137.173;
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.173;
openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_base_url http://192.168.137.173: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.172;
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.172;
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.174: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.172: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;



/etc/nova/nova.conf

如果机器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

[root@compute ~]# chkconfig openvswitch on
[root@compute ~]# service openvswitch start

scp -r [email protected]:/etc/neutron /etc

修改 vi /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
local_ip = 192.168.137.173

首先确保 在173上能mysql -unova -h192.168.137.172 -pnova 访问172的数据库
nova-manage db sync

chown -R neutron:neutron /etc/neutron/*
chkconfig neutron-openvswitch-agent on
service neutron-openvswitch-agent start


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


http://192.168.137.172/dashboard
admin
openstack


你可能感兴趣的:(openstack)