Quantcast
Channel: LinE's Blog
Viewing all articles
Browse latest Browse all 25

OpenStack部署小记-网络节点

$
0
0

基础部署

1.IP地址设置

首先将系统安装完成,然后按照架构设置中配置网络节点的网卡
编辑 /etc/network/interfaces
写入如下内容

vi /etc/network/interfaces

auto eth0
iface eth0 inet static
        address 10.0.1.30
        netmask 255.255.255.0

auto eth1
iface eth1 inet static
        address 10.0.3.30
        netmask 255.255.255.0

auto eth2
iface eth2 inet static
        address 192.168.100.30
        netmask 255.255.255.0
        gateway 192.168.100.2

然后重启网络,并启用网卡

service network restart
ifup eth0
ifup eth1
ifup eth2

查看网卡配置是否正确

ifconfig eth0
ifoonfig eth1
ifoonfig eth2


2.设置HOSTS

将四个节点的主机名分别写入到/etc/hosts中

rm -rfv /etc/hosts
echo "127.0.0.1       localhost"  >> /etc/hosts
echo "10.0.1.10       controller" >> /etc/hosts
echo "10.0.1.20       compute"    >> /etc/hosts
echo "10.0.1.30       network"    >> /etc/hosts
echo "10.0.1.40       storage"    >> /etc/hosts

3.设置DNS

这里使用114的DNS,将DNS写入到/etc/resolv.conf中

echo "nameserver 114.114.114.114" >> /etc/resolv.conf

4.测试网络连通性

依次Ping 四个节点以及百度,测试外网是否通畅

ping -c 2 controller|grep "64 bytes from"
ping -c 2 compute|grep "64 bytes from"
ping -c 2 network|grep "64 bytes from"
ping -c 2 storage|grep "64 bytes from"
ping -c 2 www.baidu.com|grep "64 bytes from"

5.升级系统

更新软件源,升级系统

apt-get update
apt-get upgrade

6.安装 NTP 时间同步

apt-get -y install ntp

删除/var/lib/ntp/ntp.conf.dhcp

rm -rfv /var/lib/ntp/ntp.conf.dhcp

编辑/etc/ntp.conf
删除里面的所有server
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
ntp.ubuntu.com
新加一个server指向controller

sed -i 's/server 0.ubuntu.pool.ntp.org//g' /etc/ntp.conf
sed -i 's/server 1.ubuntu.pool.ntp.org//g' /etc/ntp.conf
sed -i 's/server 2.ubuntu.pool.ntp.org//g' /etc/ntp.conf
sed -i 's/server 3.ubuntu.pool.ntp.org//g' /etc/ntp.conf
sed -i "s/server ntp.ubuntu.com/server controller iburst/g" /etc/ntp.conf

重新启动ntp服务

service ntp restart

7.配置 OpenStack 安装包源

安装Openstack的密钥环

apt-get -y install ubuntu-cloud-keyring

添加Openstack Kilo版本的安装源

echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" "trusty-updates/kilo main">/etc/apt/sources.list.d/cloudarchive-kilo.list

这里因为openstack的官方源速度太酸爽,所以我花了一天时间把这个源的amd64版本全部同步下来了,在本地开启一个HTTP服务,将ubuntu-cloud.archive.canonical.com.tar.gz解开,放置到Web根目录下,在节点上的HOSTS里写入域名指向即可
打包下载地址:http://pan.baidu.com/s/118iEa 密码: 9hmd

echo "10.0.1.200       ubuntu-cloud.archive.canonical.com"    >> /etc/hosts

更新源,然后升级系统

apt-get -y update
apt-get -y dist-upgrade

至此,基础服务部署完成

网络服务 Neutron

1.调整网络节点的网络参数

备份原有的参数文件

mv /etc/sysctl.conf /etc/sysctl.conf.bak
cat /etc/sysctl.conf.bak|grep -v "^#"|grep -v "^$">/etc/sysctl.conf

设置网络参数,编辑/etc/sysctl.conf

vi /etc/sysctl.conf
# -----------------------------------------
#开启ipv4的转发
net.ipv4.ip_forward = 1
#开启ipv4上所有的反向过滤
net.ipv4.conf.all.rp_filter = 0
#开启ipv4上默认的反向过滤
net.ipv4.conf.default.rp_filter = 0
# -----------------------------------------

生效配置

sysctl -p

2.安装 Neutron

apt-get -y install neutron-plugin-ml2 neutron-plugin-openvswitch-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent

3.配置 Neutron

首先去掉配置文件的注释和空行,并且进行备份

mv /etc/neutron/neutron.conf /etc/neutron/neutron.conf.bak
cat /etc/neutron/neutron.conf.bak |grep -v "^#"|grep -v "^$">/etc/neutron/neutron.conf

mv /etc/neutron/plugins/ml2/ml2_conf.conf /etc/neutron/plugins/ml2/ml2_conf.conf.bak
cat /etc/neutron/plugins/ml2/ml2_conf.ini.bak|grep -v "^#"|grep -v "^$">/etc/neutron/plugins/ml2/ml2_conf.ini

mv /etc/neutron/l3_agent.ini /etc/neutron/l3_agent.ini.bak
cat /etc/neutron/l3_agent.ini.bak|grep -v "^#"|grep -v "^$">/etc/neutron/l3_agent.ini

mv /etc/neutron/dhcp_agent.ini /etc/neutron/dhcp_agent.ini.bak
cat /etc/neutron/dhcp_agent.ini.bak|grep -v "^#"|grep -v "^$">/etc/neutron/dhcp_agent.ini

mv /etc/neutron/metadata_agent.ini /etc/neutron/metadata_agent.ini.bak
cat /etc/neutron/metadata_agent.ini.bak|grep -v "^#"|grep -v "^$">/etc/neutron/metadata_agent.ini

设置neutron,编辑/etc/neutron/neutron.conf

vi /etc/neutron/neutron.conf
# -----------------------------------------
[DEFAULT]
#消息队列使用RabbitMQ
rpc_backend = rabbit
#指定认证使用keystone
auth_strategy = keystone
#指定核心插件为ml2
core_plugin = ml2
#指定开启路由服务
service_plugins = router
#指定允许IP地址重叠
allow_overlapping_ips = True
#显示详细日志输出
verbose = True
# -----------------------------------------
[database]
#注释掉之前的连接信息
#connection = sqlite:////var/lib/neutron/neutron.sqlite
# -----------------------------------------
[keystone_authtoken]
#注释掉之前的内容
#auth_uri = http://127.0.0.1:35357/v2.0/
#identity_uri = http://127.0.0.1:5000
#admin_tenant_name = %SERVICE_TENANT_NAME%
#admin_user = %SERVICE_USER%
#admin_password = %SERVICE_PASSWORD%

#使用5000和35357端口进行身份校验
auth_uri = http://controller:5000
auth_url = http://controller:35357
#校验方式为密码(password)
auth_plugin = password
#指定项目和用户域为 defalut
project_domain_id = default
user_domain_id = default
#指定项目名称为service
project_name = service
#指定认证用户名为neutron
username = neutron
#指定认证密码为NEUTRON_PASS
password = NEUTRON_PASS
# -----------------------------------------
[oslo_messaging_rabbit]
#消息队列RabbitMQ的主机
rabbit_host = controller
#消息队列RabbitMQ的账号
rabbit_userid = openstack
#消息队列RabbitMQ的密码,该密码可查询密码表的RABBIT_PASS获得
rabbit_password = RABBIT_PASS
# -----------------------------------------

设置ML2插件,编辑/etc/neutron/plugins/ml2/ml2_conf.ini

vi /etc/neutron/plugins/ml2/ml2_conf.ini
# -----------------------------------------
[ml2]
#启用的网络驱动
type_drivers = flat,vlan,gre,vxlan
#指定租户使用的网络类型
tenant_network_types = gre
#指定OVS驱动
mechanism_drivers = openvswitch
# -----------------------------------------
[ml2_type_flat]
#指定flat网络为扩展网络
flat_networks = external
# -----------------------------------------
[ml2_type_gre]
#指定隧道ID范围
tunnel_id_ranges = 1:1000
# -----------------------------------------
[securitygroup]
#指定开启安全组
enable_security_group = True
#指定开启IPSET设置
enable_ipset = True
#指定OVS iptables的防火墙驱动
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
# -----------------------------------------
[ovs]
#指定本地IP,这里的IP填写与计算节点相连的IP地址
#我这里按照拓扑为10.0.3.30
local_ip = 10.0.3.30
#指定映射网络
bridge_mappings = external:br-ex
# -----------------------------------------
[agent]
#指定隧道类型
tunnel_types = gre
# -----------------------------------------

配置L3代理,编辑/etc/neutron/l3_agent.ini

vi /etc/neutron/l3_agent.ini
# -----------------------------------------
[DEFAULT]
#指定接口驱动
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
#指定外部网络桥接,这里设置为空,目的是为了在一个代理上启用多个外部网络
external_network_bridge =
#指定开启失效命名空间路由清除
router_delete_namespaces = True
#显示详细日志输出
verbose = True
# -----------------------------------------

配置DHCP代理,编辑/etc/neutron/dhcp_agent.ini

vi /etc/neutron/dhcp_agent.ini
# -----------------------------------------
[DEFAULT]
#自顶接口驱动
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
#指定DHCP驱动
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
#指定开启失效命名空间路由清除
dhcp_delete_namespaces = True
##显示详细日志输出
verbose = True
# -----------------------------------------

配置Metadata,编辑/etc/neutron/metadata_agent.ini

vi /etc/neutron/metadata_agent.ini
# -----------------------------------------
[DEFAULT]
#指定nova的metadata主机
nova_metadata_ip = controller
#指定metadata共享密钥,密钥可以在密码表中的METADATA_SECRET查询
metadata_proxy_shared_secret = METADATA_SECRET
# -----------------------------------------

4.配置 OVS 服务

service openvswitch-switch restart
#添加虚拟网卡br-ex
ovs-vsctl add-br br-ex
#设置虚拟网卡的映射,将br-ex与eth2进行映射
#这里的eth2为网络拓扑中网路节点的外网网卡
ovs-vsctl add-port br-ex eth2
#重启相关服务
service neutron-plugin-openvswitch-agent restart
service neutron-l3-agent restart
service neutron-dhcp-agent restart
service neutron-metadata-agent restart

至此,网络节点的安装就全部完成了


Viewing all articles
Browse latest Browse all 25

Trending Articles