1. 安装epel库。因为现在主要的Centos上的openstack的相关package都在epel上。
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
注:在楼下的机器下,只需要把172.16.0.1机器/etc/yum.repos/下的文件都复制到要扩展的节点的/etc/yum.repos/目录下即可。
2. 关闭iptables和selinux
关闭iptables
chkconfig iptables off
service iptables stop
关闭selinux或者设置为permissive
vim /etc/sysconfig/selinux
以下是我的selinux文件
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
3. 设置Ntp client
你可以设置本地的ntp服务器 然后设置那个server为你本地时间同步的server.过程如下。
yum install ntp
vim /etc/ntp.conf
在ntp.conf里加入一行
server your_local_ntp_server_ip
注:在楼下的MDC中,your_local_ntp_server_ip 为172.19.1.220. 即在ntp.conf 里添加一行
server 172.19.1.220
4. 因为现在的一些bug,要改下 /etc/sysctl.conf. 确保下面的三个配置如下,
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1
5.建一个文件 /etc/sysconfig/modules/openstack-quantum-linuxbridge.modules 内容为
#!/bin/sh
modprobe -b bridge >/dev/null 2>&1
exit 0
6. 改变文件的权限
chmod ugo+x /etc/sysconfig/modules/openstack-quantum-linuxbridge.modules
7. 重启,使上面的配置生效
reboot
8. 安装openstack-utils 和dnsmasq
yum install openstack-utils dnsmasq-utils
9. 安装nova相关的包
yum install openstack-nova python-cinderclient
10. 更改nova.conf 和api-paste
我的nova.conf 示例
[DEFAULT]
logdir = /var/log/nova
state_path = /var/lib/nova
lock_path = /var/lib/nova/tmp
volumes_dir = /etc/nova/volumes
dhcpbridge = /usr/bin/nova-dhcpbridge
dhcpbridge_flagfile = /etc/nova/nova.conf
force_dhcp_release = True
injected_network_template = /usr/share/nova/interfaces.template
libvirt_nonblocking = True
libvirt_inject_partition = -1
network_manager = nova.network.manager.FlatDHCPManager
iscsi_helper = tgtadm
sql_connection = mysql://nova:nova@172.19.1.220/nova
compute_driver = libvirt.LibvirtDriver
firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver
rpc_backend = nova.openstack.common.rpc.impl_qpid
rootwrap_config = /etc/nova/rootwrap.conf
auth_strategy = keystone
flat_interface = eth0
public_interface = eth0
####
flat_network_bridge=br100
fixed_range=10.0.0.0/24
network_size=256
#flat_injected=False
connection_type=libvirt
multihost=True
ec2_dmz_host=172.19.1.220
routing_source_ip=172.19.1.220
my_ip=172.16.0.1
###
volume_api_class = nova.volume.cinder.API
enabled_apis = ec2,osapi_compute,metadata
qpid_hostname = 172.19.1.220
glance_api_servers = 172.19.1.220:9292
glance_host = 172.19.1.220
libvirt_type = qemu
#network setup
#network_api_class = nova.network.quantumv2.api.API
#quantum_admin_username = quantum
#quantum_admin_password = quantum
#quantum_admin_auth_url = http://172.19.1.220:35357/v2.0/
#quantum_auth_strategy = keystone
#quantum_admin_tenant_name = service
#quantum_url = http://172.19.1.220:9696/
#libvirt_vif_driver = nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver
# NOVNC CONSOLE
novnc_enabled=True
novncproxy_base_url=http://155.69.146.51:6080/vnc_auto.html
xvpvncproxy_base_url = http://155.69.146.51:6081/console
#vncserver_proxyclient_address和vncserver_listen的ip要和节点ip一样
vncserver_proxyclient_address=172.16.0.1
vncserver_listen=172.16.0.1
#########
[keystone_authtoken]
admin_tenant_name = admin
admin_user = admin
admin_password = admin
auth_host = 172.19.1.220
auth_port = 35357
auth_protocol = http
signing_dir = /tmp/keystone-signing-nova
如果要新增其他的compute节点,只需要改变三个配置。他们是
my_ip=172.16.0.1
vncserver_proxyclient_address=172.16.0.1
vncserver_listen=172.16.0.1
分别配置为那台机器的ip。其余的配置都一样。
注:对于楼下的MDC而言,直接从172.16.0.1机器的/etc/nova/nova.conf 复制这个配置文件到新机器的/etc/nova/下,然后用sed -i 命令将172.16.0.1 字符统一替换为新机器的ip。(也可以手动更改上面提到的三个配置。将my_ip,vncserver_proxyclient_address,vncserver_listen配置为新机器的ip)
对于api-paste.ini
openstack-config --set /etc/nova/api-paste.ini filter:authtoken admin_token your_admin_token
注:注意把your_admin_token修改为你们在配置controller时确定的admin_token。对于楼下而言,直接复制172.16.0.1机器中的/etc/nova/api-paste.ini文件到其他机器的对应目录下就好。
11. 更改 /etc/libvirt/qemu.conf。在末尾添加以下几行。
clear_emulator_capabilities = 0
user = "root"
group = "root"
cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc", "/dev/hpet", "/dev/net/tun",
]
注:如果你也是使用的qemu(楼下是使用的qemu,故需要以下的步骤),请添加一个超链接,然后重启libvirt服务。
sudo ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-system-x86_64
sudo service libvirtd restart
12. 启动相关服务。
chkconfig libvirtd on
chkconfig messagebus on
service libvirtd start
service messagebus start
virsh net-destroy default
virsh net-autostart default --disable
chkconfig openstack-nova-network on
chkconfig openstack-nova-compute on
chkconfig openstack-nova-metadata-api on
service openstack-nova-network start
service openstack-nova-compute start
service openstack-nova-metadata-api start
13. 检验是否成功安装Compute节点
ps -ax | grep nova 查看下有没有成功运行nova-compute,nova network, metadata-api 这三个进程。如果已经运行了。表示安装就成功了。