kolla-ansible部署单节点OpenStack-Pike

时间:2022-09-12 19:41:46

一、准备工作

最小化安装CentOS 7.5,装完后,进行初始化

selinux,防火墙端口无法访问,主机名问题,都是安装的常见错误,一定要细心确认。

kolla的安装,要求目标机器是两块网卡:

  1. ens33,设置的IP是:192.168.41.13,之后Horizon访问就是通过这个IP地址;
  2. ens37,不分配IP,这个是让neutron的br-ex 绑定使用,虚拟机是通过这块网卡访问外网。
  3. 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的更多相关文章

  1. &num;&num;5&period;1 Nova控制节点-- openstack pike

    ##5.1 Nova控制节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##5.1 Nova控制节点 # co ...

  2. &num;&num;6&period;1 Neutron控制节点-- openstack pike

    ##6.1 Neutron控制节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##6.1 Neutron控制节 ...

  3. &num;&num;5&period;2 Nova计算节点-- openstack pike

    ##5.2 Nova计算节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##5.2 Nova计算节点 # co ...

  4. &num;&num;6&period;2 Neutron计算节点-- openstack pike

    ##6.2 Neutron计算节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##6.2 Neutron计算节 ...

  5. 【原】docker部署单节点consul

    docker下部署单节点的consul,最重要的是在run consul时,配置-bootstrap-expect=1 docker run --name consul1 -d -p : -p : - ...

  6. 007 Ceph手动部署单节点

    前面已经介绍了Ceph的自动部署,本次介绍一下关于手动部署Ceph节点操作 一.环境准备 一台虚拟机部署单节点Ceph集群 IP:172.25.250.14 内核: Red Hat Enterpris ...

  7. K8s二进制部署单节点 master组件 node组件 ——头悬梁

    K8s二进制部署单节点   master组件 node组件   --头悬梁 1.master组件部署 2.node   组件部署 k8s集群搭建: etcd集群 flannel网络插件 搭建maste ...

  8. K8s二进制部署单节点 etcd集群,flannel网络配置 ——锥刺股

    K8s 二进制部署单节点 master    --锥刺股 k8s集群搭建: etcd集群 flannel网络插件 搭建master组件 搭建node组件 1.部署etcd集群 2.Flannel 网络 ...

  9. mongodb部署单节点(一)

    部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu.com/s/1jIQAGlw 密码:l7pf) 第一步:上传该文 ...

随机推荐

  1. curl&plus;openssl编译

    curl不支持openssl的静态库,所以编译openssl的时候,应该加上shared 参数,记录一下我亲手编译的参数: ./configure --prefix=/usr/local/openss ...

  2. PBX 评测二

    //由于诸事繁多,结果评测一拖再拖. 博客园的优化还行啊,PBX220搜索, 第一页,第四个就是上一篇的评测文章. 配置没有什么说的(按照说明/还有这篇无线迷你IPPBX-PBX220). 以下是在公 ...

  3. spring &plus; myBatis 常见错误:SQL语法错误

    在程序运行时,有时候会出现如下错误: 这个错误通常是你的sqlmapper.xml中sql语句语法有错误.所以请仔细查看你sql语句是否正确,比如{#id}这样写就会报上述错误,其实应该#{id}这样 ...

  4. VS使用技巧&lpar;转&rpar;

    转自http://www.cnblogs.com/xpvincent/p/3596553.html i. Ctrl-M-O 折叠所有方法 ii. Ctrl-M-P 展开所有方法并停止大纲显示(不可以再 ...

  5. MS SQL SERVER 锁研究记录

    首先创建一直数据表 ChenJi,有如下字段: ID, DanWeiID,  Name,  ChenJi CREATE TABLE [dbo].[ChenJi]( [ID] [int] NOT NUL ...

  6. linux目录权限小记

    r : 拥有读取目录结构列表的权限 x:拥有进入此目录的权限 w: 1: 建立新的档案和目彔: 2删除已经存在的档案和目录(无论该档案的权限为何!) 3能够重命名档案和目录: 4 能够移动目录里面的 ...

  7. BZOJ 1978&colon; &lbrack;BeiJing2010&rsqb;取数游戏 game&lpar; dp &rpar;

    dp(x)表示前x个的最大值,  Max(x)表示含有因数x的dp最大值. 然后对第x个数a[x], 分解质因数然后dp(x) = max{Max(t)} + 1, t是x的因数且t>=L -- ...

  8. 分析Cocos2d-x横版ACT手游源 1、登录

    我自己的游戏代码 因为 游戏源 盯着外面的 我们能够能够理解 /******************************************************************** ...

  9. Django的MVT模式与MVC模式

    Django的MVT模式与MVC模式 在正式开始coding之前,我觉得有必要探讨下Django的MVT模式,理论和实践相结合,才能更好的掌握一门技术.Django中的MVT模式,Django就是属于 ...

  10. BZOJ4327&colon;&lbrack;JSOI2012&rsqb;玄武密码&lpar;SAM&rpar;

    Description 在美丽的玄武湖畔,鸡鸣寺边,鸡笼山前,有一块富饶而秀美的土地,人们唤作进香河.相传一日,一缕紫气从天而至,只一瞬间便消失在了进香河中.老人们说,这是玄武神灵将天书藏匿在此.  ...