Skip to main content
开放网络的先行者与推动者—星融元
加入我们 | 技术支持(Support)  TEL:(+86)4000989811

配置指导:Prometheus监控系统部署

Prometheus监控系统部署方案

1 Prometheus简介

Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,可以独立于任何公司进行维护。为了强调这一点,并阐明项目的治理结构,Prometheus于2016年加入Cloud Native Computing Foundation,作为继Kubernetes之后的第二个托管项目。

2 特性

  • 多维度数据模型-由指标键值对标识的时间序列数据组成
  • PromQL,一种灵活的查询语言
  • 不依赖分布式存储;单个服务器节点是自治的
  • 以HTTP方式,通过pull模型拉取时间序列数据
  • 支持通过中间网关推送时间序列数据
  • 通过服务发现或者静态配置,来发现目标服务对象
  • 支持多种多样的图表和界面展示

3 组件

  • Prometheus Server:用于收集和存储时间序列数据
  • Client Library:客户端库,为需要监控的服务生成相应的metrics并暴露给Prometheus server。当 Prometheus server来pull时,直接返回实时状态的metrics
  • Exporters:用于暴露已有的第三方服务的metrics给Prometheus
  • Alertmanager:从Prometheus server端接收到alerts后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件、pagerduty、OpsGenie、webhook等
  • Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。目前使用grafana的公司有很多,如paypal、ebay、intel等

4 适用场景

Prometheus适用于记录任何纯数字时间序列。它适用于以机器为中心的监控以及高度动态的面向服务架构的监控。在微服务的世界中,Prometheus的多维度数据收集和查询非常强大。

Prometheus是为服务的可靠性而设计的,当服务出现故障时,它可以使你快速定位和诊断问题。每个Prometheus服务器都是独立的,不依赖于网络存储或其他远程服务。当基础架构的其他部分损坏时,您可以依赖它,并且您不需要设置大量的基础架构来使用它。

5 目标

Google指出,监控分为白盒监控和黑盒监控之分。

白盒监控:通过监控内部的运行状态及指标判断可能会发生的问题,从而做出预判或对其进行优化。

黑盒监控:监控系统或服务,在发生异常时做出相应措施。

Prometheus监控的目标如下:

  • 根据历史监控数据,对未来做出预测
  • 发生异常时,及时报警,或做出相应措施
  • 根据监控报警及时定位问题根源
  • 通过可视化图表展示,便于直观获取信息

6 部署过程

本次部署一台Server。服务器最低配置要求8G内存,40G硬盘。服务器IP 192.168.4.150。

6.1 关闭SELinux

SeLinux不关闭会发生无法访问的情况。

[root@localhost  ~]# setenforce 0
[root@localhost  ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

6.2 关闭防火墙

防止安装时出现各个组件的端口不能访问的问题。

[root@localhost  ~]#systemctl stop firewalld && systemctl disable firewalld                          

6.3 下载安装包

[root@localhost~]#wget\ https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz
[root@localhost~]#wget\ https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertmanager-0.20.0.linux-amd64.tar.gz 
[root@localhost~]#wget \
https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

6.4 配置Prometheus Server

解压Prometheus压缩包,并配置Prometheus配置文件。

[root@localhost  ~]# mkdir /root/monitor
[root@localhost  ~]# tar -xvf prometheus-2.16.0.linux-amd64.tar.gz -C /root/monitor
[root@localhost  ~]# mv prometheus-2.16.0.linux-amd64 prometheus
[root@localhost  ~]# vi /home/monitor/prometheus/prometheus.yml
global:
  scrape_interval: 30s
evaluation_interval: 30s
scrape_timeout: 10s
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 192.168.4.150:9093
rule_files:
  - /root/monitor/prometheus/rule/*.rules
scrape_configs:
- job_name: 'node'
  file_sd_configs:
  - refresh_interval: 1m
    files:
    - node.json
[root@localhost  ~]# vi /root/monitor/prometheus/node.json
[
  {
    "targets": [ "192.168.5.135:9100"],
    "labels": {
      "grafana": "prometheus",
      "tera": "exporter",
      "job": "node"
    }
  }
]

6.5 System配置Prometheus

使用System配置Prometheus实现服务自启。

[root@localhost  ~]# vi /usr/lib/systemd/system/prometheus.service
[Unit]
After=docker.service
[Service]
ExecStart=/root/monitor/prometheus/prometheus \
--config.file=/root/monitor/prometheus/prometheus.yml \ 
--storage.tsdb.path=/root/monitor/prometheus/data/ --web.external-url=http://:9090
Restart=always
[Install]
WantedBy=multi-user.target

6.6 配置Alertmanager

解压Alertmanaget安装包,Alertmanager接收Prometheus监控信息并将告警信息通过邮件发送到接收人。

[root@localhost  ~]# tar -xvf alertmanager-0.20.0.linux-amd64.tar.gz -C /root/monitor
[root@localhost  ~]# mv alertmanager-0.20.0.linux-amd64.tar.gz alertmanager
[root@localhost  ~]# vi /home/monitor/alertmanager/alertmanager.yml
global:
  resolve_timeout: 10m
  smtp_smarthost: ''
  smtp_from: 'email'
  smtp_auth_username: 'email'
  smtp_auth_password: 'password'
  smtp_hello: 'Hello'
  smtp_require_tls: false
templates:
route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 1m
  repeat_interval: 360m
  receiver: asterfusion
receivers:
- name: asterfusion
  email_configs:
  - to: '接收人1'
    send_resolved: true Restart=always
[Install]
WantedBy=multi-user.target

6.7 System配置Alertmanager

使用System配置Alertmanager实现服务自启。

[root@localhost  ~]#vi /usr/lib/systemd/system/alertmanager.service
[Unit]想·
After=docker.service
[Service]
ExecStart=/root/monitor/alertmanager/alertmanager  --web.listen-address=192.168.4.150:9093\
--config.file=/root/monitor/alertmanager/alertmanager.yml\  
--storage.path=/root/monitor/alertmanager
Restart=always
[Install]
WantedBy=multi-user.target

6.8 部署Granfana

[root@localhost  ~]# wget https://dl.grafana.com/oss/release/grafana-6.7.1-1.x86_64.rpm 
[root@localhost  ~]# yum -y install grafana-6.7.1-1.x86_64.rpm

6.9 部署Node_exporter

部署Node_exporter采集服务器资源信息。

[root@localhost  ~]# tar -xvf node_exporter-0.18.1.linux-amd64.tar.gz -C /root/monitor
[root@localhost  ~]# mv node_exporter-0.18.1.linux-amd64.tar.gz node_exporter

6.10 System配置Node_exporter

使用Sysytem管理Node_exporter实现服务自启。

[root@localhost  ~]#vi /usr/lib/systemd/system/node.service
[Unit]
After=docker.service
[Service]
ExecStart=/root/monitor/node_exporter/node_exporter 
Restart=always
[Install]
WantedBy=multi-user.target

6.11 添加监控主机

在Prometheus文件夹下创建node.json文件,添加需要监控的主机列表。

[root@localhost  ~]# vi /root/monitor/prometheus/node.json
[
  {
    "targets": [ "192.168.4.150:9100"],
    "labels": {
      "grafana": "controller",
      "tera": "exporter",
      "job": "node"
    }
  },
]

6.12 添加报警

在Prometheus的rule文件夹下定义报警规则,满足条件则把信息推送到Alertmanager。

[root@localhost  ~]# mkdir /root/monitor/prometheus/rule
[root@localhost  ~]# vi /root/monitor/prometheus/rule/node.rules
groups:
- name: nodedown
  rules:
  - alert: nodeDown
    expr: up{tera="exporter"} == 0
    for: 1m
    labels:
      severity: serious
    annotations:
      summary: "Instance {{ $labels.instance }} node is Down"
      description: "{{ $labels.instance }} node is Down"

6.13 启动服务

Prometheus监控所有组件都是用System管理。

[root@localhost  ~]# systemctl start prometheus.service && systemctl enable prometheus.service
[root@localhost  ~]# systemctl start node.service && systemctl enable node.service
[root@localhost  ~]# systemctl start alertmanager && systemctl enable alertmanager
[root@localhost  ~]# systemctl start grafana-server && systemctl enable grafana-server

6.14 监控Web

Prometheus Web URL: http://192.168.4.150:9090。

Alertmanager Web URL: http://192.168.4.150:9093。

Node_exporter Web URL: http://192.168.4.150:9100。

Grafana Web URL : http://192.168.4.150:3000。

7 参考资料

  1. Prometheus官网:https://prometheus.io/
  2. Grafana官网:https://grafana.com/

如有其它问题,请填写右侧需求表单联系我们。

配置指导:搭建PXE远程批量安装服务器


关注星融元


在大规模服务器部署时,面对成百上千台服务器,通过手动插入光盘或者USE驱动器来安装操作系统无比繁琐,让大量工程师在现场挨个安装系统也不切实际,PXE的出现使得网络远程批量自动安装和配置操作系统成为现实。

什么是PXE?

PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel设计的协议,它允许计算机通过网络启动。这个协议工作在Client/Server模式下,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。

相比其他工具,PXE更好地解决了以下问题:

  • 自动化:PXE允许自动安装和配置操作系统,减少了手动操作的工作量。
  • 远程实现:通过网络远程安装操作系统,无需物理介质,方便管理远程服务器。
  • 规模化:特别适用于大规模服务器部署,可以同时装配多台服务器。。

PXE工作原理和配置

工作原理

  1. PXE启动:当终端进入网卡启动时,会发送一个特殊的PXE启动请求到本地网络上的DHCP服务器。
  2. DHCP服务:DHCP服务器收到PXE启动请求后,会向计算机发送DHCP响应,DHCP响应包含了计算的网络配置信息,以及PXE引导服务器的IP地址——TFTP Server(Trivial File Transfer Protocol)。
  3. TFTP传输:计算机收到DHCP响应后,会使用TFTP从Server下载引导文件——pxelinux.0或者bootx64.efi。
  4. 加载引导文件:计算机加载并执行从TFTP下载的引导文件。引导文件通常是一个小型的Linux内核,能够连接到PXE服务器并获取操作系统镜像。
  5. 获取配置信息:引导文件连接到PXE服务器后,会通过TFTP发送请求以获取更多的配置信息。
  6. 获取操作系统镜像:PXE服务器根据计算机的请求,将系统镜像发送给计算机。
  7. 操作系统加载:一旦操作系统映像文件下载完成,计算机会加载并执行该映像文件。此时,计算机将完全从网络上运行操作系统,而无需本地硬盘上的安装。

PXE启动流程

注意:虽然PXE很好用,但启动时也需要满足以下条件

  1. 网卡支持PXE,目前新出的网卡基本都支持,同时需要完成BIOS的启动项配置。
  2. 传统启动模式(Legacy)下,PXE客户端会请求pxelinux.0;UEFI启动会请求bootx64.efi。
  3. 也可以采用nfsboot方式,该流程采用的是ISO镜像下载再安装的方式。

由于星融元交换机的开放性,PXE Server所需的组件能全部部署在CX-M上,即一台CX-M设备即可满足PXE的需求。

安装配置

安装配置

安装配置

星融元已通过PXE成功实现了大规模服务器的商业部署、自动化操作系统安装,从安装配置TFTP到准备启动文件、安装配置TFTP、配置HTTP Server、配置启动文件、配置DHCP到最后的验证,都可以在PXE配置文档中学会。

在现代IT环境中,通过PXE自动化流程部署系统可以减少人为错误,有助于提高效率、简化管理并确保一致性,亲手配置试试吧~

技术手册-PXE配置指导手册

相关文章

配置指导:Kolla-Ansible 在容器环境中部署 OpenStack


关注星融元


OpenStack简介

OpenStack是一个云操作系统,它控制整个数据中心的大型计算、存储和网络资源池,所有这些资源都通过一个仪表板进行管理,该仪表板赋予管理员控制权,同时允许用户通过web界面提供资源。

它为私有云和公有云提供可扩展的弹性的云计算服务,提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。

Kolla-Ansible简介

Kolla旨在为运行OpenStack提供生产就绪的容器和部署工具。

Kolla-Ansible是Kolla的子项目,该项目使用Ansible部署Kolla容器映像。

Kolla-Ansible是开箱即用的工具,即使你是个新手也可以快速部署OpenStack,也允许你根据需求定制化的部署。

目标

在容器中部署OpenStack最大的特点就是升级,用户基本是无感知的状态下完成。同时可以实现本地与云端一致,一次开发随处运行,通过迁移到不同的设备,快速的完成部署和升级操作。

本文将以详细操作指导的方式,给出一种在Docker容器环境中部署OpenStack的指导方法。

环境准备

两台server,一台作为controller,另一台作为compute节点,操作系统CentOS 7.6.1810 镜像CentOS-7-x86_64-DVD-1810.iso。服务器具体配置要求如下:

  • 2个千兆网口
  • 至少8G内存
  • 磁盘至少40G
  • 计算节点的BISO中开启CPU嵌套虚拟化(INTEL叫VT-x,AMD的叫AMD-V)

Kolla-Ansible部署过程

关闭SELinux 【控制节点、计算节点】

SELinux不关闭的情况下无法实现,会限制ssh免密码登录

[root@localhost  ~]#setenforce 0

[root@localhost  ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/sysconfig/selinux

关闭防火墙【控制节点、计算节点】

防止安装时出现各个组件的端口不能访问的问题

[root@localhost  ~]#systemctl stop firewalld && systemctl disable firewalld

禁用宿主机的 Libvirt 服务

大多数操作系统会默认启动 Libvirt,但使用 Kolla 来部署 OpenStack 的话,Libvirt 应该在容器中运行并管理虚拟机。所以宿主机的 Libvirt 需要被关闭,以免造成冲突。

[root@localhost  ~]#systemctl stop libvirtd.service
[root@localhost  ~]#systemctl disable libvirtd.service

设置主机名,hosts文件【控制节点、计算节点】

控制节点

[root@localhost  ~]#hostname controller
[root@localhost  ~]#echo “controller”> /etc/hostname

计算节点根据节点名称修改

[root@localhost  ~]#vim /etc/hosts
192.168.4.2 controller
192.168.4.150 computer1

修改网卡名称【控制节点、计算节点】

说明:网卡名字不是必须改,保持各服务器使用的网卡名称一样。

网卡1:

[root@localhost  ~]#cd /etc/sysconfig/network-scripts
[root@localhost  ~]#vim ifcfg-enp6s0f0
IPADDR=192.168.1.*
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
NAME=eno1
DEVICE=eno1

网卡2:

[root@localhost  ~]#cd /etc/sysconfig/network-scripts
[root@localhost  ~]#vim ifcfg-enp6s0f1
IPADDR=192.168.2*
NETMASK=255.255.255.0
GATEWAY=192.168.21
NAME=eno2
DEVICE=eno2

修改网卡文件名称:

[root@localhost  ~]#mv ifcfg-enp6s0f0 ifcfg-eno1
[root@localhost  ~]#mv ifcfg-enp6s0f1 ifcfg-eno2

修改net配置文件

[root@localhost  ~]#vi /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM==”net”,ACTION==”add”,DRIVERS==”?*”,ATTR{address}==”78:24:af:85:0c:ac”,ATTR{type}==”1″, NAME=”eno1″    
SUBSYSTEM==”net”,ACTION==”add”,DRIVERS==”?*”,ATTR{address}==”78:24:af:85:0c:ad”,ATTR{type}==”1″, NAME=”eno2″

ATTR和服务器两网口MAC地址保持一致

重启服务器

[root@localhost  ~]#reboot

重启网络服务

[root@localhost  ~]#systemctl restart network

安装【控制节点、计算节点】

[root@localhost  ~]#yum install -y epel-release
[root@localhost  ~]#yum install -y python-pip
[root@localhost  ~]#pip install -U pip

安装编译环境【控制节点】

[root@controller  ~]#yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python

安装ansible【控制节点】

[root@controller  ~]#pip install -U ansible

l  安装docker【控制节点、计算节点】

[root@localhost  ~]#tee /etc/yum.repos.d/docker.repo <<-‘EOF’
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
[root@localhost  ~]#yum install -y docker-engine docker-engine-selinux

  • 问题1 安装docker失败,提示与其他安装包冲突Error: docker-engine-selinux conflicts with 2:container-selinux-2.107-3.el7.noarch

解决方法如下:

[root@compute1 ~]#rpm -qa |grep container-selinux-2.107-3.el7.noarch
[root@compute1 ~]#yum -y remove container-selinux-2.107-3.el7.noarch

设置Docker【控制节点、计算节点】

[root@localhost  ~]#mkdir /etc/systemd/system/docker.service.d
[root@localhost  ~]#tee /etc/systemd/system/docker.service.d/kolla.conf << ‘EOF’
[Service]
MountFlags=shared
EOF

重启相关服务【控制节点、计算节点】

[root@localhost  ~]#systemctl daemon-reload
[root@localhost  ~]#systemctl enable docker
[root@localhost  ~]#systemctl restart docker

安装模块【控制节点、计算节点】

[root@localhost  ~]#pip install docker

安装【控制节点】

[root@controller  ~]#yum install git

安装kolla-ansible【控制节点】

[root@controller  ~]#pip install kolla-ansible

如果报如下错误

Cannot uninstall ‘PyYAML’. It is a distutils installed project and thus we

cannot accurately determine which files belong to it which would lead to only a

partial uninstall.

[root@controller  ~]#rm -rf /usr/lib64/python2.7/site-packages/PyYAML*

拷贝配置文件【控制节点】

[root@controller  ~]#cp -r  /usr/share/kolla-ansible/etc_examples/kolla  /etc/kolla/

[root@controller  ~]#cp  /usr/share/kolla-ansible/ansible/inventory/*  /home/

配置免密登录【控制节点】

[root@controller  ~]#ssh-keygen                        #一路回车
[root@controller  ~]#ssh-copy-id controller         #回车后输入服务器密码
[root@controller  ~]#ssh-copy-id computer1          #回车后输入服务器密码

存储节点配置【计算节点】

(演示版本可以跳过此步骤)

  • 要启动cinder存储服务,需先添加一块新的硬盘,然后创建pv、vg

[root@computer1 ~]#pvcreate /dev/sdb
[root@computer1 ~]#vgcreate cinder-volumes /dev/sdb  //vg名取名为 cinder-volumes,这里主要跟 kolla配置文件里vg名一致

  • 问题1 如果出现创建不了pv

解决方法如下:

[root@compute1 ~]#pvcreate devsdb
Device /dev/sdb excluded by a filter.

解决:

[root@compute1 ~]#dd if=/dev/urandom of=/dev/sdb bs=512 count=64
64+0 records in
64+0 records out
32768 bytes (33 kB) copied, 0.00760562 s, 4.3 MB/s
[root@compute1 ~]#pvcreate /dev/sdb                            
Physical volume “/dev/sdb” successfully created.

重启服务【计算节点】

[root@compute1 ~]#systemctl restart lvm2-lvmetad.service

修改【控制节点】

[root@controller ~]#vim /home/multinode
[control]
controller
[network]
controller
[inner-compute]
[external-compute]
computer1
[compute:children]
inner-compute
external-compute
[storage]
computer1
[monitoring]
controller
[deployment]
controller

获取docker镜像【控制节点、计算节点】

  • 使用kolla官方镜像源

[root@localhost  ~]#vim /etc/kolla/globals.yml
kolla_install_type: “binary”
openstack_release: “stein”
docker_namespace: “kolla”

  • 下载镜像包

[root@controller  ~]#kolla-ansible pull -i /home/multinode

修改全局配置文件globals.yml【控制节点】

管理网口eno1,外网网口eno2

如果采用cinder磁盘存储

kolla_base_distro: “centos”

kolla_install_type: “binary”
openstack_release: “stein”
kolla_internal_vip_address: “192.168.4.2”
# Valid options are [ qemu, kvm, vmware, xenapi ]
nova_compute_virt_type: “kvm”
network_interface: “eno1”
api_interface: “{{ network_interface }}”
neutron_external_interface: “eno2”
neutron_plugin_agent: “openvswitch”
enable_cinder: “yes”
enable_cinder_backend_iscsi: “no”
enable_cinder_backend_lvm: “yes”
enable_haproxy: “yes”
enable_heat: “yes”
glance_enable_rolling_upgrade: “no”
ironic_dnsmasq_dhcp_range:
tempest_image_id:
tempest_flavor_ref_id:
tempest_public_network_id:
tempest_floating_network_name:

如果采用外部ceph存储:

kolla_base_distro: “centos”

kolla_install_type: “binary”
openstack_release: “stein”
kolla_internal_vip_address: “192.168.4.2”
# Valid options are [ qemu, kvm, vmware, xenapi ]
nova_compute_virt_type: “qemu”
nova_backend_ceph: “yes”
network_interface: “eno1”
api_interface: “{{ network_interface }}”
neutron_external_interface: “eno2”
neutron_plugin_agent: “openvswitch”
enable_ceph: “no”
enable_cinder_backup: “yes”
cinder_backup_driver: “ceph”
enable_cinder: “yes”
enable_cinder_backend_iscsi: “no”
enable_cinder_backend_lvm: “no”
enable_haproxy: “yes”
enable_heat: “yes”
enable_sahara: “yes”
enable_trove: “yes”
cinder_backend_ceph: “yes”
glance_backend_ceph: “yes”
glance_enable_rolling_upgrade: “no”
ironic_dnsmasq_dhcp_range:
tempest_image_id:
tempest_flavor_ref_id:
tempest_public_network_id:
tempest_floating_network_name:

生成密码文件passwords.yml【控制节点】

这个密码文件可以使用工具自动生成,也可以手动输入但是手动输入需要注意格式,在:后需要空一格

再输入;而且ssh_key也比较麻烦所以推荐使用工具自动生成但是直接输入

[root@controller  ~]#kolla-genpwd

修改dashboard登录密码

[root@controller  ~]#vi /etc/kolla/passwords.yml

keystone_admin_password: admin

修改部署文件multinode【控制节点】

[root@controller  ~]#vim /home/multinode
[control]
controller
[network]
controller
[inner-compute]
[external-compute]
computer1
[compute:children]
inner-compute
external-compute
[monitoring]
controller
[storage]
computer1
[deployment]
localhost       ansible_connection=local

检查配置【控制节点】

[root@controller  ~]#kolla-ansible prechecks -i /home/multinode

配置SchedNova主机基础环境【控制节点】

[root@controller  ~]#kolla-ansible -i /home/multinode bootstrap-servers

部署OpenStack【控制节点】

[root@controller  ~]#kolla-ansible deploy -i /home/multinode

验证OpenStack安装【控制节点】

[root@controller  ~]#kolla-ansible post-deploy -i /home/multinode

OpenStack更新【控制节点】

### 修改镜像版本(此处不用更新,以后想更新版本再更新)

[root@controller  ~]# vim /etc/kolla/globals.yml
openstack_release: “stein”
[root@controller  ~]# kolla-ansible upgrade -i /home/multinode

重启所有应用【控制节点】

[root@controller  ~]#kolla-ansible -i /home/multinode reconfigure

环境还原【控制节点】

#如果安装有错误,想重新安装,可以选择如下操作

##将删除所有容器和卷

[root@controller  ~]#kolla-ansible destroy –yes-i-really-really-mean-it -i /home/multinode

生成 admin-openrc.sh【控制节点】

[root@controller  ~]#kolla-ansible post-deploy

初始demo【控制节点】

执行后会自动下载cirros镜像, 创建网络, 并创建一批测试虚拟机.

[root@controller  ~]#/usr/share/kolla-ansible/init-runonce

查询登录密码【控制节点】

[root@controller  ~]#grep admin /etc/kolla/passwords.yml

安装OpenStack命令行客户端【控制节点】

[root@controller  ~]#pip install python-openstackclient

创建实例到指定计算节点

  • 查看有效区域

[root@controller  ~]#openstack availability zone list

  • 查看有效主机列表

[root@controller  ~]#openstack host list

  • 查看有效计算节点列表

[root@controller  ~]#openstack hypervisor list

  • 查询网络id

[root@controller  ~]#openstack network list

  • 查看安全组

[root@controller  ~]#openstack security group list

  • 创建flavor

[root@controller  ~]#openstack flavor create –id 0 –vcpus 1 –ram 64 –disk 1 m1.nano
[root@controller  ~]#openstack flavor create –id 1 –vcpus 1 –ram 512 –disk 1 m1.tiny
[root@controller  ~]#openstack flavor create –id 2 –vcpus 1 –ram 2048 –disk 20 m1.small
[root@controller  ~]#openstack flavor create –id 3 –vcpus 2 –ram 4096 –disk 40 m1.medium
[root@controller  ~]#openstack flavor create –id 4 –vcpus 4 –ram 8192 –disk 80 m1.large
[root@controller  ~]#openstack flavor create –id 5 –vcpus 8 –ram 16384 –disk 160 m1.xlarg

  • 创建实例

[root@controller  ~]#openstack server create –flavor m1.nano \
–image cirros  \
–nic net-id=88b84388-40d2-48d9-b4ec-ab0dfa9b244e \
–security-group 5431def1-8856-4e48-ab02-50b9d459f9b1  \
–key-name mykey  \
–availability-zone nova:computer2:computer2  instance2

–flavor 实例类型

–image 镜像

–nic 网络 net-id网络id 第4步查得

 –availability-zone nova:compute1:compute1 前三步查得

compute1为指定计算节点。

结论

从上面的安装过程我们发现Kolla-Ansible来完成OpenStack安装过程非常的简洁,不需要过多修改OpenStack的配置文件,从而可以很轻松的完成部署和升级等操作。

参考资料

  1. OpenStack官网: openstack.org
  2. Kolla-Ansible项目官网:https://wiki.openstack.org/wiki/Kolla#Kolla
  3. Kolla-Ansible官网安装:https://docs.openstack.org/kolla-ansible/latest/

相关文章

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2