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:[email protected]/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 這三個進程。如果已經運行了。表示安裝就成功了。