kolla-ansible部署单节点OpenStack-Pike
一、准备工作
最小化安装CentOS 7.5,装完后,进行初始化
selinux,防火墙端口无法访问,主机名问题,都是安装的常见错误,一定要细心确认。
kolla的安装,要求目标机器是两块网卡:
- ens33,设置的IP是:192.168.41.13,之后Horizon访问就是通过这个IP地址;
- ens37,不分配IP,这个是让neutron的br-ex 绑定使用,虚拟机是通过这块网卡访问外网。
- ens38 选择nat网络,主要用于安装时连接外网下载包等
hosts绑定(/etc/hosts)
192.168.41.13 kolla
除系统外盘,再添加一块硬盘,用于存在,创建卷。
要启动cinder存储服务,需先添加一块新的硬盘,然后创建pv、vg
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb #vg名取名为 cinder-volumes,这里主要跟 kolla配置文件里vg名一致
只允许vm实例访问块存储卷,对LVM可能出现异常做设置
vi /etc/lvm/lvm.conf
修改 devices 下面的,有多少块硬盘就写多少块,如果不想使用系统盘,则不写a|sda
devices {
...
filter = [ "a|sda|", "a|sdb|", "r|.*|" ]
重启lvm服务
systemctl restart lvm2-lvmetad.service
配置国内pipy源
mkdir ~/.pip
cat << EOF > ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
EOF
安装pip
yum -y install epel-release
yum -y install python-pip
如果pip install 出现问题可以试试命令
pip install setuptools==33.1.1
二、安装基础包
一定要先启用EPEL的repo源
yum -y install python-devel libffi-devel gcc openssl-devel git python-pip qemu-kvm qemu-img
安装docker
1)下载RPM包
2)安装Docker 1.12.6,创建安装1.12.6比较稳定
yum localinstall -y docker-engine-1.12.6-1.el7.centos.x86_64.rpm docker-engine-selinux-1.12.6-1.el7.centos.noarch.rpm
也可以参考官方文档安装:
https://docs.docker.com/engine/installation/linux/centos/
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce #或 yum install docker-ce-1.12.6
配置Docker共享挂载
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
设置访问私有的Docker仓库
公共的:https://hub.docker.com/u/kolla/,但下载比较慢
编辑 vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.41.13:4000
重启服务
systemctl daemon-reload && systemctl enable docker && systemctl restart docker
下载kolla官方提供的镜像
wget 原来官方的下载地址http://tarballs.openstack.org/kolla/images/centos-source-registry-pike.tar.gz已经转到到https://hub.docker.com/u/kolla/,4G左右
mkdir -p /data/registry
tar -zxvf centos-source-registry-pike-5.0.1.tar.gz -C /data/registry
这样就把kolla的docker镜像文件放到Regisitry服务器上。
Registry 服务器
默认docker的registry是使用5000端口,对于OpenStack来说,有端口冲突,所以改成4000
docker run -d -v /data/registry:/var/lib/registry -p 4000:5000 --restart=always --name registry registry
测试是否成功:
# curl -k localhost:4000/v2/_catalog
# curl -k localhost:4000/v2/lokolla/centos-source-fluentd/tags/list
{"name":"lokolla/centos-source-fluentd","tags":["5.0.1"]}
Ansible
Kolla项目的Mitaka版本要求ansible版本低于2.0,Newton版本以后的就只支持2.x以上的版本。
yum install -y ansible
三、安装kolla
升级pip:
pip install -U pip -i https://pypi.tuna.tsinghua.edu.cn/simple
安装docker模块:pip install docker
安装kolla-ansible
cd /home
git clone -b stable/pike https://github.com/openstack/kolla-ansible.git
cd kolla-ansible
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple
复制相关文件
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
cp /usr/share/kolla-ansible/ansible/inventory/* /home/
如果是在虚拟机里再启动虚拟机,那么需要把virt_type=qemu,默认是kvm
mkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
cpu_mode = none
EOF
生成密码文件
kolla-genpwd
编辑 vim /etc/kolla/passwords.yml
keystone_admin_password: admin123
这是登录Dashboard,admin使用的密码,根据需要进行修改。
编辑 vim /etc/kolla/globals.yml 文件
kolla_internal_vip_address: "192.168.41.13" //外部访问地址,如果是非HA环境,是控制节点IP
docker_registry: "192.168.41.13:4000" //镜像库,用部署节点的镜像库 ,这里与前面配docker服务启动脚本配置的IP一样,如果使用主机名,这里也要使用主机名
docker_namespace: "lokolla"
kolla_install_type: "source"
openstack_release: "5.0.1"
network_interface: "ens33" //网络接口,默认就这一个接口,这里以ens33作为API网络
api_interface: "{{ network_interface }}" //用的是ens33
neutron_external_interface: "ens37" //ens37作为外部网络
enable_cinder: "yes" //启用cinder
enable_cinder_backend_iscsi: "yes"
enable_cinder_backend_lvm: "yes" //cinder后端用lvm
enable_haproxy: "no" //不启用haproxy
enable_heat: "no"
#默认创建外部网络的物理网络是physnet1
四、安装openstack
安装OpenStack
检查:kolla-ansible prechecks -i /home/all-in-one
部署:kolla-ansible deploy -i /home/all-in-one
验证部署
kolla-ansible post-deploy
这样就创建 /etc/kolla/admin-openrc.sh 文件
. /etc/kolla/admin-openrc.sh
安装OpenStack client端
pip install --ignore-installed python-openstackclient
部署经验
(1)如果,在部署过程中失败了,亦或是变更了配置信息,需要重新部署,则执行如下命令,清除掉已部署的 Docker 容器,即 OpenStack 服务。
kolla-ansible destroy -i /home/multinode --yes-i-really-really-mean-it
接着,umount 卸掉 Ceph OSD 挂载的目录,如 /dev/sdb1。
umount /dev/sdb1
删除掉 /var/lib/ceph 目录下的 OSD 文件:
rm -rf /var/lib/ceph/osd/*
删除掉 OSD 盘的分区,如 /dev/sdb:
parted /dev/sdb rm 1 rm 2
重新对 OSD 盘进行分区,如 /dev/sdb:
parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_1 1 -1
最后,执行部署命令即可。
(2)除此外,还有一些小工具,在需要时,可以使用。
- kolla-ansible prechecks:在执行部署命令之前,先检查环境是否正确;
- tools/cleanup-containers:可用于从系统中移除部署的容器;
- tools/cleanup-host:可用于移除由于网络变化引发的 Docker 启动的neutron-agents 主机;
- tools/cleanup-images:可用于从本地缓存中移除所有的 Docker image。
最后,可以使用 docker ps -a
命令查看到安装的 OpenStack 所有服务的容器。
故障诊断与排除
通过 Kolla 和 Ansible 部署或运行 OpenStack 环境时,如果出现问题,通常可以使用如下一些方法来排查/解决。
(1)查看指定容器(即指定的服务)的输出日志信息。
docker logs container_name
(2)进入到 fluentd 日志收集容器里,查看指定服务的日志。
docker exec -it fluentd bash
接着,CD 到 /var/log/kolla/SERVICE_NAME 目录下。
(3)还可以,直接 CD 到主机的 /var/lib/docker/volumes/kollalogs/data/ 目录下,查看指定服务的日志信息。
(4)一些 Ceph的管理命令,如下:
- docker exec -it ceph_mon ceph osd pool ls
- docker exec -it ceph_mon ceph -s
- docker exec -it ceph_mon rbd ls images
- docker exec -it ceph_mon rbd ls volumes
- docker exec -it ceph_mon rbd ls vms
当然,也可以直接进入到 Ceph 容器中,直接执行相关命令,如下所示。
# docker exec -it -u root ceph_mon bash
查看OSD状态和Ceph集群状态:
ceph osd tree
ceph health
ceph -s
查看 Ceph 的实时运行状态:
ceph -w
查看 Ceph 存储空间:
ceph df
ceph osd df
查看 Ceph 集群monitor信息:
ceph mon statceph osd dump |grep pool
要检查监视器的法定人数状态,执行下面的命令:
ceph quorum_status
查看OSD Journal分区大小:
ceph --show-config|grep osd_journal_size
kolla-ansible部署单节点OpenStack-Pike的更多相关文章
- ##5.1 Nova控制节点-- openstack pike
##5.1 Nova控制节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##5.1 Nova控制节点 # co ...
- ##6.1 Neutron控制节点-- openstack pike
##6.1 Neutron控制节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##6.1 Neutron控制节 ...
- ##5.2 Nova计算节点-- openstack pike
##5.2 Nova计算节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##5.2 Nova计算节点 # co ...
- ##6.2 Neutron计算节点-- openstack pike
##6.2 Neutron计算节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##6.2 Neutron计算节 ...
- 【原】docker部署单节点consul
docker下部署单节点的consul,最重要的是在run consul时,配置-bootstrap-expect=1 docker run --name consul1 -d -p : -p : - ...
- 007 Ceph手动部署单节点
前面已经介绍了Ceph的自动部署,本次介绍一下关于手动部署Ceph节点操作 一.环境准备 一台虚拟机部署单节点Ceph集群 IP:172.25.250.14 内核: Red Hat Enterpris ...
- K8s二进制部署单节点 master组件 node组件 ——头悬梁
K8s二进制部署单节点 master组件 node组件 --头悬梁 1.master组件部署 2.node 组件部署 k8s集群搭建: etcd集群 flannel网络插件 搭建maste ...
- K8s二进制部署单节点 etcd集群,flannel网络配置 ——锥刺股
K8s 二进制部署单节点 master --锥刺股 k8s集群搭建: etcd集群 flannel网络插件 搭建master组件 搭建node组件 1.部署etcd集群 2.Flannel 网络 ...
- mongodb部署单节点(一)
部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu.com/s/1jIQAGlw 密码:l7pf) 第一步:上传该文 ...
随机推荐
- shiro学习笔记 (一)shiro的简介
shirio的功能 Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境.Shiro可以帮助我们完成:认证.授权.加密.会话管理.与Web集成.缓存等 ...
- 位(bit)、字节(Byte)、MB(兆位)之间的换算关系
B是Byte的缩写,意思是字节:b是bit的缩写,意思是比特位:Kb是千比特位,KB是千字节:MB意思是兆字节: 换算关系: 1MB=1024KB=1024B*1024=1048576B: 8bit= ...
- 解决At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs
在写spring security小程序时遇到 At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug l ...
- VS Code 使用小技巧
所有插件查找地址(https://marketplace.visualstudio.com/) 编码快捷方式(http://docs.emmet.io/cheat-sheet/) 安装插件出现 错误 ...
- ecmall 支付成功 订单状态没有改变解决办法
问题原因:ecmall版本较低,或者是没有更新支付宝接口导致的.支付宝修改了返回参数,给支付宝增加了一个返回的状态:TRADE_SUCCESS. 解决方案: 需要修改“includes\payment ...
- nodejs的express框架
介绍: Express是由路由和中间件构成一个的nodejs的一种web应用框架; 功能: 可以设置中间件来响应 HTTP 请求. 定义了路由表用于执行不同的 HTTP 请求动作. 可以通过向模板传递 ...
- Python网络爬虫第二弹《http和https协议》
一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...
- Windows编程___创建窗口
创建Windows窗口不难,可以简要的概括为: 1,# 注册一个窗口类 填充WNDCLASS结构 书写窗口消息处理函数WinProc 2,# 创建一个窗口 填写基本的窗口信息 3,# 显示窗口 4,# ...
- github如何删除新建仓库(致新手)
github作为开发人员的必备用具.那么,作为一个新手如何删除github中建立的仓库呢? 1.以删除My test为例
- seo:网站被黑的预防及处理方法
一.网站被黑的类型有哪些 1.网站挂木马 :通过网站后台 FTP等植入恶意代码 2.网站域名被恶意泛解析 3.跳转 4.百度快照劫持:黑客劫持快照在你不工作的时候进入你的网站的,一般是凌晨1点到5. ...