OpenStack搭建和部署

news2025/1/18 10:41:06

Centos官网qcow2镜像修改root账号密码,开启ssh等

wget http://172.16.20.10/vmtemplate/KVM/wangrui/Debian/debian-10.2.0-openstack-amd64.qcow2

一、查看镜像文件信息

[debian-10.2-cloud]

name=Debian 10.2.0 (Buster) Cloud

osinfo=debian10

arch=x86_64

file=debian-10.2.0-openstack-amd64.qcow2

checksum[sha512]=296ad8345cb49e52464a0cb8bf4365eb0b9e4220c47ebdd73d134d51effc756d5554aee15027fffd038fef4ad5fa984c94208bce60572d58b2ab26f74bb2a5de

format=qcow2

size=566434304

revision=20191116

notes=Debian 10.2.0 (Buster).

This is a Debian installation, suited for running as OpenStack guest.

二、生成密码

使用openssl passwd -1 123456生成加密的密码:-1表示使用MD5算法对密码123456进行加密

[root@support01 ~]# openssl passwd -1 123456

$1$HDUWloxk$IZuLRX39Oa31T4YzCrCHL1

三、修改镜像密码

使用guestfish命令修改root账户密码,开启ssh远程登录

3.1、进入镜像

guestfish --rw -a debian-10.2.0-openstack-amd64.qcow2

进入交互命令界面依次执行run、list-filesystems、mount等指令

Welcome to guestfish, the guest filesystem shell for

editing virtual machine filesystems and disk images.

Type: 'help' for help on commands

      'man' to read the manual

      'quit' to quit the shell

><fs> run

><fs> list-filesystems

/dev/sda1: ext4

><fs> mount /dev/sda1  /

><fs>

3.2、编辑/etc/shadow,修改root账户的密码

><fs> vi /etc/shadow

root:*:18216:0:99999:7:::

daemon:*:18216:0:99999:7:::

bin:*:18216:0:99999:7:::

sys:*:18216:0:99999:7:::

sync:*:18216:0:99999:7:::

games:*:18216:0:99999:7:::

man:*:18216:0:99999:7:::

lp:*:18216:0:99999:7:::

mail:*:18216:0:99999:7:::

news:*:18216:0:99999:7:::

uucp:*:18216:0:99999:7:::

proxy:*:18216:0:99999:7:::

www-data:*:18216:0:99999:7:::

backup:*:18216:0:99999:7:::

list:*:18216:0:99999:7:::

irc:*:18216:0:99999:7:::

gnats:*:18216:0:99999:7:::

nobody:*:18216:0:99999:7:::

_apt:*:18216:0:99999:7:::

systemd-timesync:*:18216:0:99999:7:::

systemd-network:*:18216:0:99999:7:::

systemd-resolve:*:18216:0:99999:7:::

messagebus:*:18216:0:99999:7:::

unscd:*:18216:0:99999:7:::

ntp:*:18216:0:99999:7:::

sshd:*:18216:0:99999:7:::

将root:后面的第一个*替换为第二步加密之后的密码

替换后第一行为/etc/shadow第一行为

root:$1$HDUWloxk$IZuLRX39Oa31T4YzCrCHL1:18216:0:99999:7:::

编辑/etc/ssh/sshd_config

3.3、开启root账户ssh登录,在vi中:set number开启行号

><fs> vi /etc/ssh/sshd_config

第32行

#PermitRootLogin prohibit-password

释放掉注释,并修改值为yes,调整完之后第32行为

PermitRootLogin yes

第56行

#PasswordAuthentication yes

释放掉注释,调整完之后第56行为

PasswordAuthentication yes

编辑/root/.bashrc,开启ssh语法高亮以及内置命令别名等,1、3、4、8、15行为说明注释,除此之外释放所有注释

><fs> vi /root/.bashrc

编辑之前内容为:

# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not

# need this unless you want different defaults for root.

# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '

# umask 022

# You may uncomment the following lines if you want `ls' to be colorized:

# export LS_OPTIONS='--color=auto'

# eval "`dircolors`"

# alias ls='ls $LS_OPTIONS'

# alias ll='ls $LS_OPTIONS -l'

# alias l='ls $LS_OPTIONS -lA'

#

# Some more alias to avoid making mistakes:

# alias rm='rm -i'

# alias cp='cp -i'

# alias mv='mv -i'

编辑之后内容为:

# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not

# need this unless you want different defaults for root.

PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '

umask 022

# You may uncomment the following lines if you want `ls' to be colorized:

export LS_OPTIONS='--color=auto'

eval "`dircolors`"

alias ls='ls $LS_OPTIONS'

alias ll='ls $LS_OPTIONS -l'

alias l='ls $LS_OPTIONS -lA'

#

# Some more alias to avoid making mistakes:

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

最后执行quit或exit命令退出guestfish,将qcow2镜像文件注册到openstack,投递虚拟机实例即可

参考链接:

https://docs.openstack.org/image-guide/modify-images.html#guestfish

https://blog.51cto.com/superzhangqiang/1705678

https://blog.csdn.net/weixin_42551369/article/details/88946622

http://www.chenshake.com/openstack-mirror-and-password/ 

四、qcow2镜像创建实例时设置密码

在使用Linux系统镜像时,如果不使用密钥登录,可以在创建实例的时候使用脚本配置好密码,第三四行为自己需要修改的密码,两行必须相同。脚本如下:

#!/bin/bash

passwd root<<EOF

admin123

admin123

EOF

注意下面的"配置驱动"复选框请勾上,否则可能会配置后不生效。

 

修改镜像密码 方案2

4.2、libguestfs修改镜像密码

virt-customize命令行工具由libguestfs-tools包提供,可用于在各种Linux发行版上安装, Virt-customize可以通过安装软件包,编辑配置文件等来自定义虚拟机(磁盘映像),它通过修改guest虚拟机或磁盘映像来实现此目的,它适用于rawqcow2镜像格式

4.2.1安装libguestfs-tools包

4.2.2设置镜像的root密码为123456

[root@localhost kvm]# virt-customize -a disk/CentOS-7-x86_64-GenericCloud-1511.qcow2 --root-password password:123456[   0.0] Examining the guest ...[  15.5] Setting a random seed[  15.5] Setting passwords[  16.4] Finishing off

4.2.3使用参数--root-password random设置镜root密码为随机

[root@localhost kvm]# virt-customize -a disk/CentOS-7-x86_64-GenericCloud-1511.qcow2 --root-password random[   0.0] Examining the guest ...[   1.8] Setting a random seed[   1.8] Setting passwordsvirt-customize: Setting random password of root to a2QVjEg6LoYoLW6a[   2.6] Finishing off

4.2.4为其他用户设置密码,命令并不能创建用户只覆盖密码

[root@localhost kvm]# virt-customize -a disk/CentOS-7-x86_64-GenericCloud-1511.qcow2 --password tao:password:taoyuhang[   0.0] Examining the guest ...[   2.1] Setting a random seed[   2.2] Setting passwords[   2.9] Finishing off

4.2.5Openstack运行脚本注入密码

编辑nova.conf配置文件

[root@controller ~]# vim /etc/nova/nova.conf inject_password=true

启动实例时,在配置处输入自定义脚本直接输入修改密码命令

#!/bin/bashecho 'password'|passwd --stdin root

记得勾选Configuration Drive

五、OpenStack环境部署

5.1、获取centos操作系统ISO镜像

官网:https://www.centos.org/download/

5.2、创建新的虚拟机

(1)兼容性选择

(2)操作系统选择centos7

(3)给虚拟机命名为OpenStack

(4)处理器和内核选择

(5)虚拟机内存

(6)网络类型选择nat地址转换

(7)控制器等按照推荐使用

(8)创建一个新的磁盘存放

(9)指定磁盘容量

(10)选择磁盘文件存放位置

5.3、安装虚拟机

(1)进行虚拟机编辑

(1-1)勾选虚拟化引擎

(1-2)选择CD/DVD,使用下载好的centos7镜像文件,根据自己兴趣可以移除声卡和打印机

(2)安装虚拟机

(2-1)选择install centos7安装

(2-2)选择语言为中文简体

(2-3)设置网络和主机名

(2-3-1)打开以太网连接

(2-3-2)点击配置,设置dns解析

多个dns中间使用","隔开

(2-4)取消勾选kdump

(2-5)开始安装

(2-5-1)设置ROOT密码

(2-5-2)创建用户(可以创建也可以不创建)

5.4、准备OpenStack安装环境

(1)禁用防火墙和SELinux

(1-1)禁用防火墙

[root@localhost ~]# systemctl stop firewalld 停用防火墙

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# yum -y install vim 安装vim编辑器

(1-2)配置文件将防火墙永久关闭

通过修改/etc/selinux/config,将“SELINUX”的值设置为“disable”,重启系统。

[root@localhost ~]# vim /etc/selinux/config 编辑配置文件

[root@localhost ~]# reboot 重启系统

(2)停用NetworkManager服务

CentOS 7 网络默认由NetworkManager(网络管理器)负责管理,但是 NetworkManager与OpenStack网络组件 Neutron 有冲突,应停用它,改用传统的网络服务 network来管理网络。

(2-1)停用NetworkManager

[root@localhost ~]# systemctl stop NetworkManager 停用NetworkManager

[root@localhost ~]# systemctl disable NetworkManager

(2-2)使用network管理网络

[root@localhost ~]# systemctl start network 开启network服务

[root@localhost ~]# systemctl enable network

(3)修改虚拟机IP地址

(3-1)通过修改/etc/sysconfig/network-scripts/ifcfg-ens33更改网卡的IP地址参数。

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO="static" 将网络地址获取设置为静态

DNS1="61.139.2.69" dns服务器地址

DNS2="8.8.8.8"

IPADDR="192.168.80.152" IP地址

NETMASK="255.255.255.0" 子网掩码

GATEWAY="192.168.80.2" 默认网关,有nat地址转换的默认网关为“xxx.xxx.xxx.2”

(3-2)重启network服务

[root@localhost ~]# systemctl restart network

(4)修改主机名

[root@localhost ~]# hostnamectl set-hostname lincan

root@localhost ~]# vim /etc/hosts

192.168.80.128 lincan lincan.localdomain

更改主机名,就必须将新的主机名追加到/etc/hosts配置文件中,否则,在使用 RDO 安装 OpenStack的过程中启动 rabbitmq-server 服务时会失败,从而导致安装不成功。

(5)更改编译语言

如果安装的CentOS7是非英语版本,那么需要在/etc/environment配置文件中添加以下定义。

[root@lincan ~]# vim /etc/environment

LANG=en_US.utf-8

LC_ALL=en_US.utf-8

(6)设置时间同步

(6-1)安装时间同步器

整个OpenStack环境中所有节点的时间必须是同步的。在CentOS7中一般使用时间同步软件Chrony;如果没有安装,就执行以下命令进行安装。

[root@lincan ~]# yum -y install chrony

(6-2)添加时间服务器

可以在/etc/chrony.conf配置文件中增加国内的NTP服务器地址如阿里云。

[root@lincan ~]# vim /etc/chrony.conf

server ntp1.aliyun.com iburst

(6-3)检查系统时间

执行timedatectl命令查看时间。若发现本地时间不对,解决的方法是将时区设置为国内的,可以执行以下命令设置时区为上海。

#timedatectl set-timezone "Asia/Shanghai"

[root@lincan ~]# timedatectl

(7)安装所需数据库

执行以下命令以设置OpenStack库(支持Train版本)。

#yum -y update

#yum -y install centos-release-openstack-train

(7-1)更新数据库

[root@lincan ~]# yum -y update

(7-2)安装train版本

[root@lincan ~]# yum -y install centos-release-openstack-train

(8)安装packstack

执行以下命令安装 openstack-packstack及其依赖包。

(8-1)更新数据库

[root@lincan ~]# yum -y update

(8-2)安装 openstack-packstack及其依赖包

[root@lincan ~]# yum -y install openstack-packstack

(9)安装packstack安器

Packstack 是 RDO的OpenStack 安装工具,用于取代手动设置 OpenStack Packstack 基于 Puppet 工具,通过Puppet 部署 OpenStack各组件。Puppet是一种 Linux、 UNIX和Windows平台的集中配置管理系统,使用自有的Puppet描述语言,可管理配置文件、用户、任务、软件包、系统服务等。

Packstack安装器的基本用法如下:packstack [选项] [--help]

1.--gen-answer-file=GEN_ANSWER_FILE:产生应答文件模板。

2.--answer-file=ANSWER_FILE:依据应答文件的配置信息以非交互模式运行该工具

3.--install-hosts=INSTALL_HOSTS:在一组主机上进行批量安装,主机列表以逗号分隔。

4.--allinone:将所有功能集中安装在单一主机上。

(9-1)将所有功能集中安装在单一主机上。

[root@lincan ~]# packstack --allinone

安装过程出现问题

192.168.80.152_controller.pp: [ ERROR ]

Applying Puppet manifests [ ERROR ]

ERROR : Error appeared during Puppet run: 192.168.80.152_controller.pp

Notice: /Stage[main]/Nova::Db::Sync/Exec[nova-db-sync]/returns: Error: (pymysql.err.OperationalError) (1045, u"Access denied for user 'nova'@'lincan' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)

You will find full trace in log /var/tmp/packstack/20230221-101322-6tiImI/manifests/192.168.80.152_controller.pp.log

Please check log file /var/tmp/packstack/20230221-101322-6tiImI/openstack-setup.log for more information

Additional information:

* Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks

* A new answerfile was created in: /root/packstack-answers-20230221-101325.txt

* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.

* File /root/keystonerc_admin has been created on OpenStack client host 192.168.80.152. To use the command line tools you need to source the file.

* To access the OpenStack Dashboard browse to http://192.168.80.152/dashboard .

Please, find your login credentials stored in the keystonerc_admin in your home directory.

You have new mail in /var/spool/mail/root

解决问题:win10系统版本更新16.2.4

win11系统更新17.0.0

安装成功

(9-2)运行Packstack安装OpenStack

查看openstack主要组件版本号:

#nova-manage --version

[root@lincan ~]# nova-manage --version

(10)登入OpenStack

用户名demo或admin

查看密码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1340141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

洛谷P1498 南蛮图腾

题目背景 自从到了南蛮之地&#xff0c;孔明不仅把孟获收拾的服服帖帖&#xff0c;而且还发现了不少少数民族的智慧&#xff0c;他发现少数民族的图腾往往有着一种分形的效果&#xff0c;在得到了酋长的传授后&#xff0c;孔明掌握了不少绘图技术&#xff0c;但唯独不会画他们…

nginx原理和配置项详解

一、nginx原理 Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP代理服务器。其工作原理和配置项如下&#xff1a; 工作原理&#xff1a; 反向代理&#xff1a;Nginx可以作为反向代理服务器&#xff0c;接收客户端的请求&#xff0c;然后将请求转…

GIT提交、回滚等基本操作记录

1、add文件时warning: LF will be replaced by CRLF in .idea/workspace.xml. 原因&#xff1a;windows中的换行符为 CRLF&#xff0c; 而在Linux下的换行符为LF&#xff0c;所以在执行add . 时会出现以下提示 解决&#xff1a;git config core.autocrlf false 2、GIT命令&…

【linux】如何查看服务器磁盘IO性能

查看服务器磁盘IO性能 在服务器运维过程中&#xff0c;了解服务器的磁盘IO性能是非常重要的。磁盘IO性能直接影响到服务器的响应速度和处理能力。本文将介绍如何使用dd命令来查看服务器磁盘IO性能。 1. 什么是dd命令&#xff1f; dd命令是Linux系统中的一个非常强大的工具&a…

C++ 之LeetCode刷题记录(三)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅&#xff0c;多学多练&#xff0c;尽力而为。 先易后难&#xff0c;先刷简单的。 13、罗马数字转整数 罗马数字包含以下七种字符: I&#xff0c…

Java开发框架和中间件面试题(8)

目录 82.Mybatis一级缓存&#xff0c;二级缓存&#xff1f; 83.Mybatis如何防止SQL注入&#xff1f; 84.mybatis中resultType和resultMap有什么区别&#xff1f; 85.如何在SpringBoot中禁用Actuator断点安全性&#xff1f; 86.什么是SpringBoot&#xff1f;SpringBoot有哪些…

1.3MySQL中的自连接

自己的表和自己连接&#xff0c;核心&#xff1a;一张表拆为两张一样的表。 语法&#xff1a;select 字段列表 from 表 [as] 表别名1,表 [as] 表别名2 where 条件...; 关于怎样把一个表拆分成一个表&#xff0c;只要给它们分别取别名就行 categoryidpidcategoryname21信息…

单片机外设矩阵键盘之行列扫描识别原理与示例

单片机外设矩阵键盘之行列扫描识别原理与示例 1.概述 这篇文章介绍单片机通过行列扫描的方式识别矩阵键盘的按键&#xff0c;通过程序执行相应的操作。 2.行列扫描识别原理 2.1.独立按键识别原理 为什么需要矩阵按键 独立按键操作简单&#xff0c;当数量较多时候会占用单片机…

Flink1.17实战教程(第二篇:DataStream API)

系列文章目录 Flink1.17实战教程&#xff08;第一篇&#xff1a;概念、部署、架构&#xff09; Flink1.17实战教程&#xff08;第二篇&#xff1a;DataStream API&#xff09; Flink1.17实战教程&#xff08;第三篇&#xff1a;时间和窗口&#xff09; Flink1.17实战教程&…

MYSQL一一外键约束

概念&#xff1a;外键用来让两张表的数据之间建立联系&#xff0c;从而保证数据的一致性和完整性 建立外键&#xff1a; ①这是在建立表的时候建立外键的方法 ②这是在建立完表之后建立外键的方法&#xff1a; 删除外键&#xff1a; 现在有一张员工表&#xff08;emp&#xf…

【easy-ES使用】1.基础操作:增删改查、批量操作、分词查询、聚合处理。

easy-es、elasticsearch、分词器 与springboot 结合的代码我这里就不放了&#xff0c;我这里直接是使用代码。 基础准备&#xff1a; 创建实体类&#xff1a; Data // 索引名 IndexName("test_jc") public class TestJcES {// id注解IndexId(type IdType.CUSTOMI…

C#获取windows系统资源使用情况

1.前言 之前有一篇博客介绍如何获取Linux服务器上的资源使用情况《Java 获取服务器资源&#xff08;内存、负载、磁盘容量&#xff09;》&#xff0c;这里介绍如何通过C#获取Window系统的资源使用。 2.获取服务器资源 2.1.内存 [DllImport("kernel32.dll")][retu…

CSDN规则详解——csdn那些你不知道的事儿(点赞、评论、收藏)

文章目录 每日一句正能量前言点赞评论收藏原力等级和博客等级后记 每日一句正能量 “只有奋斗者才能成为胜利者&#xff0c;只有坚持者才能创造奇迹。” - 迈克尔乔丹 这句话来自于世界著名篮球运动员迈克尔乔丹&#xff0c;他以无与伦比的天赋和努力成为了篮球界的传奇人物。他…

产品经理如何培养思维模式和创新能力?

作为一名产品经理&#xff0c;我们需要具备一定的思维模式和创新能力&#xff0c;以应对不断变化的市场和技术环境。在本文中&#xff0c;我将分享一些培养产品经理思维模式和创新能力的方法。 一、培养市场洞察力 作为产品经理&#xff0c;我们需要深入了解市场和用户需求&a…

表单(HTML)

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>个人信息</title></head><body><h1>个人信息</h1><form><fieldset><legend>基本信息</legend><label for"…

【日常聊聊】编程语言的未来:趋势、多样性、人工智能融合、教育与生态系统

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; 日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言&#xff1a; 正文 1. 编程语言的发展趋势 1.1 新语言和编程范式的涌现 1.2 影响和挑战 2. 编程语言的多样性 2.1 互操作性和可移…

爬虫工作量由小到大的思维转变---<第三十章 Scrapy Redis 第一步(配置同步redis)>

前言: 要迈向scrapy-redis进行编写了;首要的一步是,如何让他们互通?也就是让多台电脑连一个任务(这后面会讲); 现在来做一个准备工作,配置好redis的同步!! 针对的是windows版本的redis同步,实现主服务和从服务共享一个redis库; 正文: 正常的redis for windows 的安装这里就…

制作gif动图软件,视频转gif动图生成器

生活在这个快节奏的时代&#xff0c;我们总是希望能够抓住那些转瞬即逝的美好。而gif动图&#xff0c;正是这样一种能够让时间静止、让美好定格的存在。从视频到gif动图&#xff0c;不仅仅是格式的转换&#xff0c;更是情感的传递与分享。 所需工具&#xff1a; 一个【媒体梦…

Fiddler工具 — 2.补充:HTTP协议介绍(一)

1、HTTP协议介绍 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写&#xff0c;是用于从万维网(WWW:World Wide Web )服务器传输超文本&#xff08;也可以说是资源&#xff09;到本地浏览器的传送协议。 HTTP协议是基于TCP协议的应用层协议&#xff0c;它不关心…

K8S 全局架构图 —— 筑梦之路

kube-apiserver&#xff1a; Kubernetes API 服务器验证并配置 API 对象的数据&#xff0c; 这些对象包括 pods、services、replicationcontrollers 等。API 服务器为 REST 操作提供服务&#xff0c;并为集群的共享状态提供前端&#xff0c; 所有其他组件都通过该前端进行交互。…