Linux Shell 实现一键部署ovirt4

news2024/11/27 7:43:19

 

ovirt 前言

oVirt是一个开源分布式虚拟化解决方案,旨在管理您的整个企业基础设施。oVirt使用可信的KVM管理程序,并基于其他几个社区项目构建,包括libvirt、Gluster、PatternFly和Ansible。

Ovirt仅支持系统Centos / Redhat

ovirt download

ovirtovirt repo文档

download

download

参考

Linux 各系统下载使用参考

Red HatRocky Linux Oracle Linux

AlmaLinux 

ubuntususelinuxesxiRHEL标准安装系统安装参考YUM参考

MobaXterm 远程连接工具

Red Hat Enterprise 9.0 文档Kickstart 生成器
downloaddownloaddownloaddownloaddownloaddownloaddownload参考参考配置参考download参考Kickstart 
版本兼容性

ovirt 一键自动化部署编写

  • 最终实现在线repo 方式安装ovirt,初始化ovirt,ovirt自动化配置文件配置。
  • 用户密码 admin/Report@123
  • /answer-file.conf 自动化部署配置文件
  • /etc/ovirt-engine/engine.conf.d/11-setup-sso.conf ovirt修改portal域名或IP地址
  • /var/lib/ovirt-engine/setup/answers/ 默认ovirt 配置文件目录
vi ovirt_install.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/06/19
# install ovirt 4.4
# ovirt Only Redhat and Centos are supported

<<!
# ovirt official website
https://www.ovirt.org/

# repo ovirt
https://resources.ovirt.org/pub/yum-repo/

# download ovirt
https://resources.ovirt.org/

# ovirt installation parameter
engine-setup --hlep

# ovirt automates file generation to this directory by default
/var/lib/ovirt-engine/setup/answers/

# ovirt Change the portal domain name or IP address
/etc/ovirt-engine/engine.conf.d/11-setup-sso.conf

# ovirt user password
admin/Report@123
!

ovirt_password=Report@123
ovirt_conf=/answer-file.conf
ovirt_sso_conf=/etc/ovirt-engine/engine.conf.d/11-setup-sso.conf

install_basics() {
 
# Check if the script is being run as root
if [ "$(id -u)" != "0" ]; then
  echo "This script must be run as root."
  exit 1
fi
 
  # Check the CentOS/Red Hat version
if [[ -f /etc/redhat-release ]]; then
    OS=$(cat /etc/*release* | grep "^NAME=" | cut -d'=' -f2- | tr -d '"')
    VERSION=$(cat /etc/*release* | grep -oE '[0-9]+\.[0-9]+' | head -n1)
	
else
  echo -e "\033[31m This script only supports $OS $VERSION...\033[0m"
  exit 1
fi
 
# Check the ovirt version
if ! rpm -q ovirt-engine &> /dev/null; then
  echo -e "\033[32m ovirt for $OS $VERSION...\033[0m"
  case $VERSION in
 
# CentOS/RedHat 7 install 
    7.?)
	echo "install ovirt"
	install_ovirt
   ;;
 
# CentOS/RedHat 8 install
    8.?)
	echo "install ovirt"
	install_ovirt
   ;;
 
# CentOS/RedHat 9 install 
   9.?)
	echo "install ovirt"
	install_ovirt
   ;;
    *)
	
    echo -e "\033[31m Unsupported $OS $VERSION...\033[0m" 
    exit 1
    ;;
esac
	
    echo -e "\033[32m ovirt for $OS $VERSION successfully installed...\033[0m"
else
    echo -e "\033[33m ovirt for $OS $VERSION already installed...\033[0m"
fi
 
}

install_ovirt() {

echo "install cockpit"
yum install -y cockpit
systemctl enable --now cockpit.socket

echo "ovirt Online repo added"
yum install -y https://resources.ovirt.org/pub/yum-repo/ovirt-release44.rpm

echo "enable javapackages-tools,pki-deps,postgresql:12,mod_auth_openidc:2.3,nodejs:14"
dnf module -y enable javapackages-tools
dnf module -y enable pki-deps
dnf module -y enable postgresql:12
dnf module -y enable mod_auth_openidc:2.3
dnf module -y enable nodejs:14

echo "install ovirt-engine automation"
yum install -y vim tmux 
yum install -y ovirt-engine

echo "Create an ovirt-engine automation script"
cat >>$ovirt_conf<<EOF
# OTOPI answer file, generated by human dialog
[environment:default]
QUESTION/1/DWH_VACUUM_FULL=str:yes
QUESTION/1/ENGINE_VACUUM_FULL=str:yes
QUESTION/1/GRAFANA_USE_ENGINE_ADMIN_PASSWORD=str:yes
QUESTION/1/OVESETUP_APACHE_CONFIG_ROOT_REDIRECTION=str:yes
QUESTION/1/OVESETUP_APACHE_CONFIG_SSL=str:automatic
QUESTION/1/OVESETUP_CONFIG_ADMIN_SETUP=str:${ovirt_password}
QUESTION/1/OVESETUP_CONFIG_APPLICATION_MODE=str:both
QUESTION/1/OVESETUP_CONFIG_SAN_WIPE_AFTER_DELETE=str:no
QUESTION/1/OVESETUP_CONFIG_VMCONSOLE_PROXY=str:yes
QUESTION/1/OVESETUP_CONFIG_WEBSOCKET_PROXY=str:yes
QUESTION/1/OVESETUP_CORE_ENGINE_STOP=str:ok
QUESTION/1/OVESETUP_DIALOG_CONFIRM_SETTINGS=str:ok
QUESTION/1/OVESETUP_DWH_ENABLE=str:yes
QUESTION/1/OVESETUP_DWH_PERFORM_BACKUP=str:yes
QUESTION/1/OVESETUP_DWH_PROVISIONING_POSTGRES_ENABLED=str:automatic
QUESTION/1/OVESETUP_DWH_PROVISIONING_POSTGRES_LOCATION=str:local
QUESTION/1/OVESETUP_DWH_SCALE=str:2
QUESTION/1/OVESETUP_ENGINE_ENABLE=str:yes
QUESTION/1/OVESETUP_GRAFANA_ENABLE=str:yes
QUESTION/1/OVESETUP_NETWORK_FQDN_this=str:localhost.localdomain
QUESTION/1/OVESETUP_PKI_ORG=str:localdomain
QUESTION/1/OVESETUP_PROVISIONING_POSTGRES_ENABLED=str:automatic
QUESTION/1/OVESETUP_PROVISIONING_POSTGRES_LOCATION=str:local
QUESTION/1/OVESETUP_PROVISIONING__CL_POSTGRES_ENABLED=str:automatic
QUESTION/1/OVESETUP_UPDATE_FIREWALL=str:yes
QUESTION/1/ovirt-cinderlib-enable=str:yes
QUESTION/1/ovirt-provider-ovn-default-credentials=str:yes
QUESTION/1/ovirt-provider-ovn=str:yes
QUESTION/1/queryEnvKey_warnverify_OVESETUP_CONFIG/fqdn=str:yes
QUESTION/2/OVESETUP_CONFIG_ADMIN_SETUP=str:${ovirt_password}
QUESTION/2/OVESETUP_PROVISIONING_POSTGRES_LOCATION=str:local
EOF

echo "Example Initialize the ovirt-engine"
engine-setup --offline --config-append=$ovirt_conf

echo "SSO ALTERNATE ENGINE FQDNS name ip"
host_IP=`ifconfig -a | grep inet | grep -v '127.0.0.1' | awk '{ print $2}' | awk 'NR==1'`
sed -i "s#SSO_ALTERNATE_ENGINE_FQDNS=\"\"#SSO_ALTERNATE_ENGINE_FQDNS=\"${host_IP}\"#" $ovirt_sso_conf

echo "Restart engine service"
systemctl restart ovirt-engine

echo "check ovirt-engine version"
rpm -q ovirt-engine | awk -F '-' '{print $3}'

echo "rm ovirt conf"
rm -rf $ovirt_conf
}

main (){
	install_basics
}
main

执行安装ovirt 

ovirt_install.sh

访问ovirt

https://192.168.12.241/

  • admin/Report@123

管理门户

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

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

相关文章

npm利用verdaccio工具发布到私有仓库的教程

文章目录 概要安装方式运行方式相关的配置淘宝源修改开发访问地址设置用户删除用户更换源设置发布当前包 概要 提示&#xff1a;用于将可复制和常用的方法打包发布 例如&#xff1a; 可以将我们的公共组件和工具类以及SDK等核心的代码发布到外网中&#xff0c;需要我们常见私…

小白到运维工程师自学之路 第三十五集 (MongoDB的基本使用)

一、概述 MongoDB是一个非关系型数据库管理系统&#xff0c;它使用文档模型存储数据。MongoDB中的文档类似于JSON对象&#xff0c;可以包含键值对和嵌套文档。MongoDB提供了强大的查询语言、聚合框架、索引和直接在数据存储中运行的计算。 MongoDB被广泛应用于许多领域&#x…

MySQL开启远程访问权限

默认情况下&#xff0c;MySQL只允许本地登录&#xff0c;即只能在安装MySQL环境所在的主机下访问。 但是在日常开发和使用中&#xff0c;我们经常需要访问远端服务器的数据库&#xff0c;此时就需要开启服务器端MySQL的远程连接权限。1、生成环境&#xff0c;连接MySQL 2、查看…

STM32单片机(六)TIM定时器 -> 第七节:TIM编码器接口

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

vue引入jszip下载多个图片并压缩下载

vue引入jszip下载多个图片并压缩下载 jszip官网地址 先进行jszip下载 npm install jszip然后废话不多说直接上代码 <template><div><button click"downloadImages">下载图片</button></div> </template><script> impo…

shell内置命令

目录 内置命令介绍内置命令列表alisa内置命令alias别名定义语法unalias 别名删除语法alias演示 echo内置命令echo命令介绍echo输出语法echo输出转义字符 read内置命令介绍语法options支持的参数示例1&#xff1a;多个变量赋值 exit内置命令介绍语法示例&#xff1a;Shell脚本文…

OPC AE server服务的实现

OPC AE server的实现 日前实现了OPC AE server&#xff0c;特此记录备查。 1、事件分三类&#xff0c;从下图可知每类都包含啥内容了&#xff0c;CONDITION看起来主要是一些越限&#xff0c;熟悉其它协议的朋友应该对这个不陌生&#xff0c;一般这种事件产生时&#xff0c;会…

通过Selenium实现Web自动化测试的研究

目录 前言&#xff1a; 1 自动化测试概念 1.2 自动化测试发展阶段 2 自动化测试工具Selenium简介 3 具体测试过程 4 总结 前言&#xff1a; Web自动化测试是Web应用程序测试的重要组成部分&#xff0c;它通过模拟实际用户行为&#xff0c;对Web应用程序进行自动化测试并…

chatgpt赋能python:Python拆包:提高编程效率的神器

Python拆包&#xff1a;提高编程效率的神器 在Python编程中&#xff0c;拆包&#xff08;unpacking&#xff09;是一项非常有用的技巧。它可以让你将一个可迭代对象&#xff08;iterable&#xff09;中的元素分离开来&#xff0c;赋值给多个变量。这个过程一般称为“解包”&am…

小白到运维工程师自学之路 第三十八集 (redis高可用集群)

一、概述 Redis高可用集群是一种分布式系统&#xff0c;它由多个Redis节点组成&#xff0c;可以提供高可用性和容错性。在Redis高可用集群中&#xff0c;每个节点都可以处理客户端请求&#xff0c;并且数据会在多个节点之间进行复制和同步&#xff0c;以确保数据的可靠性和一致…

Day_51-53kNN分类器

目录 Day_51&#xff1a;kNN分类器 一. 前言 二. 机器学习基本术语 三. kNN算法的原理 1. kNN算法的思想 2. kNN算法的具体实现过程 四. 代码实现 1. 导包 2. 参数初始化 3. 数据的导入 4. 数据的抽取 5. 对于测试集进行预测 6. 核心代码 Day_52&#xff1a;knn分类器&am…

LabVIEW开发微控制器控制的并行机器人的实时视觉图像处理

LabVIEW开发微控制器控制的并行机器人的实时视觉图像处理 通过相机视觉&#xff0c;以对目标物体的不同颜色进行分类&#xff0c;并与平行机器人一起拾取和放置物体。通过使用MATLAB Simulink模拟合适的机器人工作空间来研究使用相机的效率和机器人的准确性。机械臂以使用运动学…

OpenMMLab-AI实战营第二期——5-2. MMSegmentation代码课

文章目录 1. 自定义数据集1.0 整理数据集为特定格式1.1 持久化运行&#xff08;用文件定义&#xff09;1.2 运行时生效&#xff08;直接运行时定义一个class&#xff09;1.3 注意事项 2. 配置文件3. 运行训练和测试X. 其他语义分割数据集 视频链接&#xff1a;MMSegmentation代…

ThreadPoolExecutor源码

介绍 ThreadPoolExecutor 是 Java 中实现线程池的一个类&#xff0c;它是 ExecutorService 接口的一个实现类。线程池可以用来优化线程的使用&#xff0c;避免频繁地创建和销毁线程&#xff0c;以及限制并发线程的数量&#xff0c;从而提高应用程序的性能。 public class Thr…

读发布!设计与部署稳定的分布式系统(第2版)笔记06_用户

1. 系统的人类用户天生就具备进行创造性破坏的本事 1.1. 用户会消耗内存 1.2. 用户会做奇怪和随机的事情 1.2.1. fuzzing工具箱、基于属性的测试或模拟测试 1.3. 恶意用户总是存在的 1.3.1. 灾祸总会发生&#xff0c;坏人肯定存在 1.4. 用户会合伙对付你 2. 难伺候的用户…

【linux】opencv修改摄像头分辨率

起因 发现linux系统下调用opencv修改摄像头分辨率&#xff0c;一直修改不成功。 原本 正常在window下面读取摄像头数据是如下代码&#xff1a; # capture from web camcap cv2.VideoCapture(0)# set widthcap.set(3, 1280)# set heightcap.set(4, 720)while self._run_flag…

武职302303笔记-day01

这里写自定义目录标题 开发永和小票开发步骤1、对页面进行需求分析 使用CSS的方式 Order.html问题&#xff1a;html代码和css样式代码交织 idea开发后端程序使用chatGPT给我们打工QRCreate.java 开发永和小票 开发步骤 1、对页面进行需求分析 页面是很多文字组成&#xff0c;…

虹科分享丨如何保证我们的数据安全?|数据保护

一、数据安全 你可能已经正在寻找加密服务来帮助保护你的组织的数据&#xff0c;但如果你是一个不熟悉实践或管理数据的人员&#xff0c;"数据加密 "这个短语可能会感觉像技术术语或只是像一个模糊的概念&#xff0c;没有具体的解决方案。 但事实上&#xff0c;数据…

git、axios、模块化导出引入、promise、webpack、

GIT总结 git config --global user.name "你的用户名" git config --global user.email "你的邮箱" git config -l 命令来查看配置信息 git init 仓库初始化 touch index.html 创建index.html文件 git add index.html 文件加入暂存区 git add -A 将全部文件…

车载以太网 - 网络层 - IPv4/IPv6

目录 一、网络层基本信息介绍 1、网络协议适用范围 2、IPv4和IPv6的地址 3、Ethernet Frames 的类型 二、两种类型IP地址的定义: ECU通信的几种方式 路由器(Router)和IP 地址的概念 路由实例介绍 三、IPv4地址介绍 地址分类&#xff1a; 各类型IP可支持的最大网络数…