Fedora CoreOS 安装部署详解

news2024/11/28 16:43:11

《OpenShift 4.x HOL教程汇总》

Fedora CoreOS 的裸机安装方法_fedora coreos 安装-CSDN博客

OpenShift 4 - Fedora CoreOS (1) - 最简安装_fedora core 安装_dawnsky.liu的博客-CSDN博客

OpenShift 和 CoreOS

我们知道 Red Hat Enterprise Linux CoreOS(简称RHCOS)是 OpenShift 4 使用的 Linux 操作系统(虽然在Worker节点中也可以使用红帽的 RHEL 作为底层操作系统,但是大多数用户用的都是 RHCOS)。Fedora CoreOS(简称FCOS)是 RHCOS 的社区版。FCOS/RHCOS 是 Red Hat 在收购 CoreOS 公司后结合 CoreOS Container Linux 和 Fedora Atomic Host 的优点推出的新一代容器操作系统,其目标是提供最佳的容器主机,从而能安全,大规模地运行容器化的工作负载。FCOS/RHCOS 将 Ignition 与 rpm-ostree 等技术相集成,是一个自动更新的、最小的、整体的、对运行容器和 Kubernetes 进行了优化的操作系统。因为它们更符合“不可变架构(Immutable Infrastructure)” 理念,因此成为 RedHat 推荐的 OpenShift 4 底层操作系统。

在 OpenShift 4 安装过程会自动安装 CoreOS 的商业版 Red Hat Enterprise Linux CoreOS(简称 RHCOS)。根据 OpenShift 的文档说明, RHCOS 是无法独立运行安装的,它必须和 OpenShift 4 一起运行(因此 RHCOS 没有单独的订阅)。不过好在 CoreOS 还提供了可以 独立运行的社区版 Fedora CoreOS(简称 FCOS)可以完全免费使用。由于 Fedora CoreOS 可以无需 OpenShift 也可以独立安装运行,因此环境搭建过程简单高效,因此本系列使用 Fedora CoreOS 作为研究环境,而相关操作基本都可以适合商业版 RHCOS 环境。
RHCOS/FCOS 的安装/配置过程和一般的 RHEL 稍有差别。我们需要通过 Ignition 配置文件在安装 RHCOS 的时候 初始化网络、存储、内核、用户等方面的配置。

安装环境说明

Fedora CoreOS支持运行在多种IaaS环境下运行。本文安装采用基于虚拟化软件模拟BareMetal环境,其他安装环境请查看Fedora CoreOS的文档。另外还要确保虚拟机可以通过DHCP获得IP地址。

下载 Fedora CoreOS 相关介质

安装 Fedora CoreOS 需要下载2个文件:CoreOS ISO和FCCT (Fedora CoreOS Config Transpiler) ,其中Fedora CoreOS ISO文件是用来启动操作系统的,而由FCCT工具生成的Ignition文件是用来提供Fedora CoreOS系统启动参数。

说明:本章节的操作是在任意一台能上网的宿主机上进行,如果是Windows宿主机需要打开其SSH服务。下文使用“192.168.1.201”作为该宿主机的IP,实际操作请j将“192.168.1.201”替换为自己环境的IP地址。

3.1 下载 Fedora CoreOS ISO 文件

打开Fedofa网站的Fedora CoreOS | The Fedora Project网页,然后下载 “Bare Metal” 下的 ISO 文件。本文下载的ISO文件版本是“fedora-coreos-38.20230819.3.0-live.x86_64.iso”。

3.2 下载 FCCT (Fedora CoreOS Config Transpiler) 文件

打开Releases · coreos/butane · GitHub网页,下载“butane-aarch64-unknown-linux-gnu”文件,另存为fcct。该文件是用来将基于YAML格式的配置文件转换成基于JSON格式的Ignition文件。

安装 Fedora CoreOS

4.1 准备Ignition文件

  1. 执行以下命令,然后在“Password:”的提示后面输入密码(本文使用的密码就是“password”)。命令将返回密码加密后的字符串。
$ openssl passwd -1 -salt yoursalt
Password:
$1$yoursalt$7/tmQXmlhL0pYfN/fyBZS1
  1. 执行命令生成密钥对。执行后可以在当前目录下生成公钥id_rsa.pub和私钥id_rsa
$ ssh-keygen -N '' -f ./id_rsa
Generating public/private rsa key pair.
Your identification has been saved in ./ssh-key/id_rsa.
Your public key has been saved in ./ssh-key/id_rsa.pub.
The key fingerprint is:
SHA256:YvrEIpVUwTbJAXZcB+KJEhPPQGIu4XOwWB696Z90sJE root@node1
The key's randomart image is:
+---[RSA 2048]----+
|o+Ooo=*=o..      |
|==oO.=Bo .       |
|o=o.=+oo         |
|. ooo.E          |
|   .o o+S        |
|   ..+o..        |
|  . oooo         |
|   . +o          |
|      .          |
+----[SHA256]-----+
  1. 查看id_rsa.pub公钥。
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIBxVOCdtNHBgbEVQseDdRonC/OlP5qm7MoKeuwYFjvg6UKXl8MTplQ4ErV1r994XnkErRBzlxsPdn/s7/alJ8CJ3Po39QDMlJvvy/nG3Vak/naxc6hXwL4to1oJrMhyp7YsY2EzPke+b1FyWD6NZ27mhJnCmNhw4pND6QxfZulVCnlolg9BeTSuXaIRrgLnjdSU+9ojTz6BMVo5MWY+xXRNrydlI4rx19tnd0c62SwQnvjO8i+hCXzNAkwGb8J5KDLs7jYZhjOW4IyHa95NdgWlRDcVICQSbA0makjJyIFK9KDzaTYM0MvCpSkMXo9uTFKwPiKfhBrKw9n8nBegXN root@node1
  1. 创建内容如下的config.fcc的文件。其中用户名为core,另外需要将“password_hash”和“ssh_authorized_keys”替换前2步生成的密码和公钥字符串。需要注意的是远程登录CoreOS需要使用证书,而直接登录CoreOS才可以直接使用用户名和密码。
variant: fcos
version: 1.1.0
passwd:
  users:
    - name: core
      password_hash: "$1$yoursalt$7/tmQXmlhL0pYfN/fyBZS1"
      ssh_authorized_keys:
        - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIBxVOCdtNHBgbEVQseDdRonC/OlP5qm7MoKeuwYFjvg6UKXl8MTplQ4ErV1r994XnkErRBzlxsPdn/s7/alJ8CJ3Po39QDMlJvvy/nG3Vak/naxc6hXwL4to1oJrMhyp7YsY2EzPke+b1FyWD6NZ27mhJnCmNhw4pND6QxfZulVCnlolg9BeTSuXaIRrgLnjdSU+9ojTz6BMVo5MWY+xXRNrydlI4rx19tnd0c62SwQnvjO8i+hCXzNAkwGb8J5KDLs7jYZhjOW4IyHa95NdgWlRDcVICQSbA0makjJyIFK9KDzaTYM0MvCpSkMXo9uTFKwPiKfhBrKw9n8nBegXN root@node1"
  1. 执行命令,使用fcct将config.fcc转换成config.ign。
$ fcct config.fcc -o config.ign
$ more config.ign
{
  "ignition": {
    "version": "3.1.0"
  },
  "passwd": {
    "users": [
      {
        "name": "core",
        "passwordHash": "$1$yoursalt$7/tmQXmlhL0pYfN/fyBZS1",
        "sshAuthorizedKeys": [
          "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIBxVOCdtNHBgbEVQseDdRonC/OlP5qm7MoKeuwYFjvg6UKXl8MTplQ4ErV1r994XnkErRBzlxsPdn/s7/alJ8CJ3Po39QDMlJvvy/nG3Vak/naxc6hXwL4to1oJrMhyp7YsY2EzPke+b1FyWD6NZ27mhJnCmNhw4pND6QxfZulVCnlolg9BeTSuXaIRrgLnjdSU+9ojTz6BMVo5MWY+xXRNrydlI4rx19tnd0c62SwQnvjO8i+hCXzNAkwGb8J5KDLs7jYZhjOW4IyHa95NdgWlRDcVICQSbA0makjJyIFK9KDzaTYM0MvCpSkMXo9uTFKwPiKfhBrKw9n8nBegXN root@node1"
        ]
      }
    ]
  }
}

4.2 安装并访问 Fedora CoreOS

  1. 创建一个名为Fedora-CoreOS的虚拟机。使用前面下载的Fedora CoreOS ISO文件 - “fedora-coreos-32.20200907.3.0-live.x86_64.iso”- 作为启动盘,然后将系统的启动顺序设为硬盘第一优先,最后使用Bridge类型的网络
  2. 启动虚拟机,启动完成后虚拟机的控制台会停在以下截图。注意:图上红色提示没有找到Ignition文件。另外根据截图的说明我们可以知道当原始的CoreOS ISO首次启动的时候,它是运行在内存中的。此时我们需要提供给它Ignition文件,CoreOS才可以完成安装。

  1. 在CoreOS虚拟机控制台里执行以下命令,将前面生成的config.ign文件从外部宿主机传入CoreOS虚拟机的当前目录下。
[core@bogon ~]$ scp root@192.168.1.201:/root/config.ign ./
  1. 在CoreOS虚拟机控制台里执行以下命令,根据“config.ign”文件将CoreOS安装到“/dev/sda”硬盘(可以使用“fdisk -l”命令确认有系统中“/dev/sda”)。
[core@bogon ~]$ sudo coreos-installer install /dev/sda --ignition-file config.ign
  1. 完成安装后重启CoreOS虚拟机。

4.3 登录访问 CoreOS

  1. 在CoreOS虚拟机完成启动后可以在CoreOS虚拟机控制台里用core/password登录进CoreOS。

  1. 在外部宿主机中执行命令,确认可以使用前面创建的私钥登录CoreOS
$ ssh core@<COREOS_IP> -i id_rsa
Fedora CoreOS 32.20200907.3.0
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/c/server/coreos/
 
Last login: Tue Oct  6 15:15:50 2020
  1. 确认在外部宿主机中已经无法直接通过用户名/密码登录CoreOS了(这是因为缺省CoreOS只能通过证书登录,后面我们将设置可以使用username/password登录)。
$ ssh core@<COREOS_IP>
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

设置coreos可以使用username/password登录

#. 1. 修改core用户密码
$. sudo passwd core
 
#  2. 修改sshd配置
$. sudo vi /etc/ssh/sshd_config
# 修改相应字段为如下内容:
    PasswordAuthentication yes
 
# 3. 重启sshd服务    
$. sudo systemctl restart sshd.service
$. systemctl status sshd.service 
 
# 4. 接下来就可以用xshell等工具远程登录rhcos机器了
  1. CoreOS 添加用户并赋予sudo权限

使用root账号登录CoreOS

username 为你要添加的用户登录名

  1. 添加用户到root组
useradd -g rot username
  1. 添加 sudo 权限
visudo -f /etc/sudoers.d/username
  1. 打开文件输入
user1ALL=(ALL) NOPASSWD: ALL

保存退出

  1. 使用username登录系统,然后执行下面代码检查是否授权成功
username@server ~ $ sudo docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

参考

Fedora CoreOS installation on Bare Metal Server

Content Moved :: Fedora Docs

How to Create an Ignition Configuration File - Vultr.com

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

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

相关文章

SP2-1503|0152:CMD窗口的SQLPLUS命令无法登录Oracle

场景还原 今天有小伙伴把Oracle卸载后重新安装&#xff0c;尝试以下三种方案均无法登录数据库 1.、在使用PLSQL Developer时&#xff0c;输入账号密码机械能登录操作&#xff0c;弹出空白弹框界面 即没有任何提示错误代码 只有一个白板的框 2、利用自身的SQL PLUS登录直接窗…

【SpringBoot集成Redis + Session持久化存储到Redis】

目录 SpringBoot集成Redis 1.添加 redis 依赖 2.配置 redis 3.手动操作 redis Session持久化存储到Redis 1.添加依赖 2.修改redis配置 3.存储和读取String类型的代码 4.存储和读取对象类型的代码 5.序列化细节 SpringBoot集成Redis 1.添加 redis 依赖 …

运算放大器学习笔记

目录 一、基本定理二、基本定义三、负反馈电路四、同向放大电路五、反向放大电路六、差分放大电路 一、基本定理 【电路示意图】 开环放大公式 VOAvo(V-V-) 开环放大倍数&#xff08;增益&#xff09;非常大&#xff0c;105 或 106 输入阻抗超级大&#xff08;可以理解为电…

辅助驾驶功能开发-控制篇(03)-基于PID的请求角度转扭矩算法

1 文档概述 本文档主要描述请求角度转扭矩的功能、性能要求、算法程序设计,后续可作为程序编程和功能及性能测试参考文档。 2 功能要求 转角扭矩管理(SteeringTorqueManager)将方向盘请求转角转换为电机叠加扭矩,进行横向路径跟踪,并与驾驶员方向盘手感交互,实现自适应调整…

2023年五一杯数学建模B题快递需求分析问题求解全过程论文及程序

2023年五一杯数学建模 B题 快递需求分析问题 原题再现&#xff1a; 网络购物作为一种重要的消费方式&#xff0c;带动着快递服务需求飞速增长&#xff0c;为我国经济发展做出了重要贡献。准确地预测快递运输需求数量对于快递公司布局仓库站点、节约存储成本、规划运输线路等具…

红魔8SPro强解BL+完美ROOT权限-刷MIUI14系统-修复指纹丢失/内存等问题

早前我们刷过红魔8pro手机&#xff0c;该手机支持解锁BL刷入MIU14系统&#xff0c;红魔8Pro由于官方并没有修改解锁BL指令&#xff0c;所以我们的解锁BL非常简单&#xff0c;只需要在fastboot下一键完成。随着红魔8SPro的上架&#xff0c;红魔UI6.0的发布&#xff0c;官方解锁指…

【数据仓库设计基础1】关系数据模型理论与数据仓库Inmon方法论

文章目录 一. 关系数据模型中的结构1&#xff0e;关系2&#xff0e;属性3&#xff0e;属性域4&#xff0e;元组5. 关系数据库6&#xff0e;关系表的属性7&#xff0e;关系数据模型中的键 二. 关系完整性1&#xff0e;空值&#xff08;NULL&#xff09;2&#xff0e;关系完整性规…

2022/9/13总结

Vue 路由的封装抽离 为了便于维护 &#xff0c;我们通常需要将路由模块抽离出来 在vue中&#xff0c;如果要写路径&#xff0c;可以写绝对路径 使用 代表从src目录下去寻找&#xff0c;能避免出现很多错误 声明式导航 -- 导航链接 vue-router提供了一个全局组件router-l…

nodejs系列-使用nodejs链接MongoDB数据库问题总结

参考文档 mongodbMongoose 问题1. 不支持preferredcms_db_name、cms_db_collection选项 throw new error_1.MongoParseError(${optionWord} ${Array.from(unsupportedOptions).join(, )} ${isOrAre} not supported);^MongoParseError: options preferredcms_db_name, cms_db…

SVN 和 GIT 命令对比

参考 https://blog.csdn.net/justry_deng/article/details/82259470 # TortoiseSVN打分支、合并分支、切换分支 https://www.huliujia.com/blog/802a64152bbbe877c95c84ef2fdf3857a056b536/ # 版本控制&#xff1a;Git与Svn的命令对应关系 TortoiseSVN打分支、合并分支、切换…

Qt应用开发(基础篇)——菜单栏 QMenuBar

一、前言 QMenuBar类继承于QWidget&#xff0c;该类提供了一个水平菜单栏。 菜单栏使用 QMenuBar菜单栏&#xff0c;顾名思义是菜单QMenu和动作QAction的容器&#xff0c;一般在软件的顶部经常会见到它。菜单栏包含了一系列下拉的菜单&#xff0c;使用addMenu()函数添加QMenu菜…

【ICASSP 2023】ST-MVDNET++论文阅读分析与总结

主要是数据增强的提点方式。并不能带来idea启发&#xff0c;但对模型性能有帮助 Challenge&#xff1a; 少有作品应用一些全局数据增强&#xff0c;利用ST-MVDNet自训练的师生框架&#xff0c;集成了更常见的数据增强&#xff0c;如全局旋转、平移、缩放和翻转。 Contributi…

leetcode 673. 最长递增子序列的个数

2023.9.13 做本题之前先复习一下 最长递增子序列 &#xff0c;在此基础上还要加个count数组&#xff0c;用于记录当前下标 最长递增子序列的个数。 本题还是有些难度&#xff0c;日后再来二刷。

lv4 嵌入式开发-7 文件IO(概念、打开、关闭、读、写)

目录 1 文件I/O 介绍 2 文件I/O – 文件描述符fd&#xff08;File Descriptor&#xff09; 3 文件I/O – open 4 文件I/O – close 5 文件I/O – read 6 文件I/O – write 7 文件IO – lseek 8 标准I/O – 思考和练习 掌握文件描述符的含义 1 文件I/O 介绍 什么是文件…

php 实现stripe支付流程

1.申请账号获取密钥key 2.申请创建商品&#xff0c;创建价格&#xff0c;创建支付&#xff0c; //创建商品 public function create_product(){ $_key self::STRIPE_KEY;$stripe new \Stripe\StripeClient($_key);$arr $stripe->products->create([name > $good…

Arcgis多值提取至点所有波段数值一样

Arcgis多值提取至点所有波段数值一样 问题描述 进行多值提取多波段后的结果&#xff0c;所有波段数值都是一样的。 原因 操作流程问题&#xff0c;输入栅格只选择了一个栅格文件 解决方案 实际上&#xff0c;每个波段都会对应一个栅格文件&#xff0c;要把这些添加进去 这…

【网络编程】深入理解TCP协议二(连接管理机制、WAIT_TIME、滑动窗口、流量控制、拥塞控制)

TCP协议 1.连接管理机制2.再谈WAIT_TIME状态2.1理解WAIT_TIME状态2.2解决TIME_WAIT状态引起的bind失败的方法2.3监听套接字listen第二个参数介绍 3.滑动窗口3.1介绍3.2丢包情况分析 4.流量控制5.拥塞控制5.1介绍5.2慢启动 1.连接管理机制 正常情况下&#xff0c;TCP需要经过三…

淘宝/天猫获取商品销量详情 API 返回值说明

item_get_sales-获取商品销量详情 API测试工具 taobao.item_get_sales 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_…

SEO优化排名的技巧与注意点(百度SEO排名的五大注意点)

关键词排名是指在搜索引擎中&#xff0c;用户搜索相关关键词时&#xff0c;网站出现的顺序。SEO优化是提高网站排名的一种方法。优化关键词排名的目的是提高网站流量和知名度。但是要注意遵循百度SEO排名的规则。 下面介绍一下百度SEO排名的五大注意点和优化关键词的六种方式。…

Arcgis提取每个像元的多波段反射率值

Arcgis提取每个像元的多波段反射率值 数据预处理 数据预处理阶段需要对遥感图像进行编辑传感器参数、辐射定标、大气校正、正射校正&#xff0c;具体流程见该文章 裁剪研究区 对于ENVI处理得到的tiff影像&#xff0c;虽然是经过裁剪了&#xff0c;但是还存在黑色的背景值&a…