- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Fedora CoreOS 入门由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
现在被称为 DevOps 时代,操作系统的关注度似乎比工具要低一些。然而,这并不意味着操作系统没有创新。(编辑注:基于 Linux 内核的众多发行版所提供的多样化产品就是一个很好的例子)。Fedora CoreOS 就对这个 DevOps 时代的操作系统应该是什么样有着独特的理念.
。
Fedora CoreOS(FCOS)是由 CoreOS Container Linux 和 Fedora Atomic Host 合并而来。它是一个专注于运行容器化应用程序的精简的独体操作系统。安全性是首要重点,FCOS 提供了自动更新,并带有 SELinux 强化.
为了使自动更新能够很好地工作,它们需要非常健壮,目标是运行 FCOS 的服务器在更新后不会崩溃。这是通过使用不同的发布流(stable、testing 和 next)来实现的。每个流每 2 周发布一次,更新内容会从一个流推广到另一个流(next -> testing -> stable)。这样落地在 stable 流中的更新就有机会经过长时间的测试.
。
对于这个例子,让我们使用 stable 流和一个 QEMU 基础镜像,我们可以作为一个虚拟机运行。你可以使用 coreos-installer 来下载该镜像.
在你的(Workstation)终端上,更新镜像的链接后,运行以下命令(编辑注:在 Silverblue 上,基于容器的 coreos 工具是最简单的方法,可以尝试一下。说明可以在 https://docs.fedoraproject.org/en-US/fedora-coreos/tutorial-setup/ 中找到,特别是 “Setup with Podman or Docker” 一节。):
$ sudo dnf install coreos-installer 。
$ coreos-installer download --image-url https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/32.20200907.3.0/x86_64/fedora-coreos-32.20200907.3.0-qemu.x86_64.qcow2.xz 。
$ xz -d fedora-coreos-32.20200907.3.0-qemu.x86_64.qcow2.xz 。
$ ls 。
fedora-coreos-32.20200907.3.0-qemu.x86_64.qcow2 。
要定制一个 FCOS 系统,你需要提供一个配置文件,Ignition 将使用这个文件来配置系统。你可以用这个文件来配置诸如创建用户、添加受信任的 SSH 密钥、启用 systemd 服务等等.
以下配置创建了一个 core 用户,并在 authorized_keys 文件中添加了一个 SSH 密钥。它还创建了一个 systemd 服务,使用 podman 来运行一个简单的 “hello world” 容器:
version: "1.0.0" 。
variant: fcos 。
passwd
users
- name: core 。
ssh_authorized_keys
- ssh-ed25519 my_public_ssh_key_hash fcos_key 。
systemd
units
- 。
contents: | 。
[Unit] 。
Description=Run a hello world web service 。
After=network-online.target 。
Wants=network-online.target 。
[Service] 。
ExecStart=/bin/podman run --pull=always --name=hello --net=host -p 8080:8080 quay.io/cverna/hello 。
ExecStop=/bin/podman rm -f hello 。
[Install] 。
WantedBy=multi-user.target 。
enabled: true 。
name: hello.service 。
在配置中加入你的 SSH 密钥后,将其保存为 config.yaml。接下来使用 Fedora CoreOS Config Transpiler(fcct)工具将这个 YAML 配置转换成有效的 Ignition 配置(JSON 格式).
直接从 Fedora 的资源库中安装 fcct,或者从 GitHub 中获取二进制文件:
$ sudo dnf install fcct 。
$ fcct -output config.ign config.yaml 。
要运行镜像,你可以使用 libvirt 堆栈。要在 Fedora 系统上使用 dnf 软件包管理器安装它:
$ sudo dnf install @virtualization 。
现在让我们创建并运行一个 Fedora CoreOS 虚拟机:
$ chcon --verbose unconfined_u:object_r:svirt_home_t:s0 config.ign 。
$ virt-install --name=fcos \ 。
--vcpus=2 \ 。
--ram=2048 \ 。
--import \ 。
--network=bridge=virbr0 \ 。
--graphics=none \ 。
--qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${PWD}/config.ign" \ 。
--disk=size=20,backing_store=${PWD}/fedora-coreos-32.20200907.3.0-qemu.x86_64.qcow2 。
安装成功后,会显示一些信息并提供登录提示符:
Fedora CoreOS 32.20200907.3.0 。
Kernel 5.8.10-200.fc32.x86_64 on an x86_64 (ttyS0) 。
SSH host key: SHA256:BJYN7AQZrwKZ7ZF8fWSI9YRhI++KMyeJeDVOE6rQ27U (ED25519) 。
SSH host key: SHA256:W3wfZp7EGkLuM3z4cy1ZJSMFLntYyW1kqAqKkxyuZrE (ECDSA) 。
SSH host key: SHA256:gb7/4Qo5aYhEjgoDZbrm8t1D0msgGYsQ0xhW5BAuZz0 (RSA) 。
ens2: 192.168.122.237 fe80::5054:ff:fef7:1a73 。
Ignition: user provided config was applied 。
Ignition: wrote ssh authorized keys file for user: core 。
Ignition 配置文件没有为 core 用户提供任何密码,因此无法通过控制台直接登录。(不过,也可以通过 Ignition 配置为用户配置密码。) 。
使用 Ctrl + ] 组合键退出虚拟机的控制台。然后检查 hello.service 是否在运行:
$ curl http://192.168.122.237:8080 。
Hello from Fedora CoreOS.
使用预先配置的 SSH 密钥,你还可以访问虚拟机并检查其上运行的服务:
$ ssh core@192.168.122.237 。
$ systemctl status hello 。
● hello.service - Run a hello world web service 。
Loaded: loaded (/etc/systemd/system/hello.service; enabled; vendor preset: enabled) 。
Active: active (running) since Wed 2020-10-28 10:10:26 UTC; 42s ago 。
zincati 服务使用自动更新驱动 rpm-ostreed.
检查虚拟机上当前运行的 Fedora CoreOS 版本,并检查 zincati 是否找到了更新:
$ ssh core@192.168.122.237 。
$ rpm-ostree status 。
State: idle 。
Deployments
● ostree://fedora:fedora/x86_64/coreos/stable 。
Version: 32.20200907.3.0 (2020-09-23T08:16:31Z) 。
Commit: b53de8b03134c5e6b683b5ea471888e9e1b193781794f01b9ed5865b57f35d57 。
GPGSignature: Valid signature by 97A1AE57C3A2372CCA3A4ABA6C13026D12C944D0 。
$ systemctl status zincati 。
● zincati.service - Zincati Update Agent 。
Loaded: loaded (/usr/lib/systemd/system/zincati.service; enabled; vendor preset: enabled) 。
Active: active (running) since Wed 2020-10-28 13:36:23 UTC; 7s ago 。
… 。
Oct 28 13:36:24 cosa-devsh zincati[1013]: [INFO ] initialization complete, auto-updates logic enabled 。
Oct 28 13:36:25 cosa-devsh zincati[1013]: [INFO ] target release '32.20201004.3.0' selected, proceeding to stage it 。
。
... zincati reboot ... 。
重启后,我们再远程登录一次,检查新版的 Fedora CoreOS:
$ ssh core@192.168.122.237 。
$ rpm-ostree status 。
State: idle 。
Deployments
● ostree://fedora:fedora/x86_64/coreos/stable 。
Version: 32.20201004.3.0 (2020-10-19T17:12:33Z) 。
Commit: 64bb377ae7e6949c26cfe819f3f0bd517596d461e437f2f6e9f1f3c24376fd30 。
GPGSignature: Valid signature by 97A1AE57C3A2372CCA3A4ABA6C13026D12C944D0 。
ostree://fedora:fedora/x86_64/coreos/stable 。
Version: 32.20200907.3.0 (2020-09-23T08:16:31Z) 。
Commit: b53de8b03134c5e6b683b5ea471888e9e1b193781794f01b9ed5865b57f35d57 。
GPGSignature: Valid signature by 97A1AE57C3A2372CCA3A4ABA6C13026D12C944D0 。
rpm-ostree status 现在显示了两个版本的 Fedora CoreOS,一个是 QEMU 镜像中的版本,一个是更新后的最新版本。有了这两个版本,就可以使用 rpm-ostree rollback 命令回滚到之前的版本.
最后,你可以确保 hello 服务仍在运行并提供内容:
$ curl http://192.168.122.237:8080 。
Hello from Fedora CoreOS.
更多信息参见:Fedora CoreOS 更新.
要进行事后清理,使用以下命令删除虚拟机和相关存储:
$ virsh destroy fcos 。
$ virsh undefine --remove-all-storage fcos 。
。
Fedora CoreOS 为在容器中运行应用程序提供了一个坚实而安全的操作系统。它在推荐主机使用声明式配置文件进行配置的 DevOps 环境中表现出色。自动更新和回滚到以前版本的操作系统的能力,可以在服务的运行过程中带来安心的感觉.
通过关注项目文档中的教程,了解更多关于 Fedora CoreOS 的信息.
原文地址:https://linux.cn/article-12912-1.html 。
最后此篇关于Fedora CoreOS 入门的文章就讲到这里了,如果你想了解更多关于Fedora CoreOS 入门的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
Fedora 21 带有丑陋的 Gnome 3,我安装了 XFCE 和 MATE,但我不知道如何将它们中的任何一个设置为默认的 X 窗口管理器。从 Gnome 3 注销后,我没有从已安装的窗口管理器中
我有软呢帽 25。我读了这篇文章 - http://docs.mitmproxy.org/en/stable/certinstall.html#certinstall , 但 fedora 的信息不存
安装 Fedora 19 桌面版后,我运行 Qt Example 的系统托盘。但我找不到系统托盘图标。 事件概览中没有通知区域。 请让我知道显示通知区域或托盘图标。 最佳答案 将鼠标快速移动到右下角应
我正在使用使用快捷方式的文本编辑器ctrl+alt+arrowup/arrowdown这是在 Fedora 20 中切换工作区的默认键。所以我需要更改快捷键以使其在文本编辑器中工作。我改变了快捷方式
当我尝试在新的 64 位 Fedora 28 安装上运行 64 位程序时出现此错误。 我尝试通过以下方式安装 ncurses 库: sudo yum install ncurses-libs sudo
我正在使用 GNOME 运行 Fedora 27 桌面版。我已尝试过网络上所有的说明,但没有找到任何可以让我设置与远程用户共享屏幕的内容。谁能帮我解决这个问题吗? 提前非常感谢您的回复。 这是迄今为止
我从 Atomic 官方网站下载了一个 qcow2 图像,但我对启动这个 qcow2 图像的步骤感到非常沮丧,而且谷歌没有提供有用的明确提示。 谁能给我一些关于如何启动 qcow2 虚拟机的明确提示?
我正在尝试使用“mpif90”在 Fedora 21 中编译一些代码。 首先我用'yum'安装openmpi: [root@localhost Inversion]# yum install open
我最近买了一个新硬盘,我想在上面安装 Fedora,但是电脑很旧,无法从 USB 启动,而且我无法使用 DVD。 我想使用我当前安装的 Fedora 在新硬盘上安装一个新副本。 我有 ISO。我正在使
虽然 Fedora 34 将在下月底左右才会正式发布,但针对更晚才会到来的 Fedora 35 目前已有一些变更提案被提交。其中,在众多的早期变化中值得注意的一点是在其操作系统发布信息中把操作系统从
Fedora 33 很有可能会成为 Fedora 有史以来最大的版本之一,最大不仅仅体现在新添加的重要功能,如Fedora 桌面版本将默认使用Btrfs 文件系统,在新增功能的数量方面,到目前为止,
DNF 和 RPM 作为包管理器有什么区别?一种与另一种的优势是什么,这些优势将适用于哪些情况? 最佳答案 这些工具协同工作。 DNF 处理依赖解决、在网络上查找文件、存储库管理等。 RPM 处理实际
我刚刚安装了 Fedora 23 的 Cinnamon spin 的新版本。尽管我喜欢 Nautilus/Nemo,但我想将 Thunar 设置为我的默认文件浏览器。我尝试在 /usr/share/a
我是 Linux 和 VirtualBox 的新手,但是我已经通过 Windows 7 上的 VirtualBox 设置了一台 guest Fedora 19 机器(32 位,因为我没有 VT-x 功
我刚刚安装了 Fedora 23 的 Cinnamon spin 的新版本。尽管我喜欢 Nautilus/Nemo,但我想将 Thunar 设置为我的默认文件浏览器。我尝试在 /usr/share/a
在目录 /lib/systemd/system 中,我创建了一个文件 XYZ.service。 运行 systemctl start XYZ 时,它不会返回。我必须按 Ctrl-C 才能发出命令。想知
我正在尝试在 64 位 Fedora 21 上运行 32 位可执行文件。 #include int main(){ printf ("Hello C\n"); return 1; }
我不知道如何在 fedora 24 中安装 lex 和 yacc。我在 ubuntu 16 中安装了它。使用以下命令: sudo apt-get update sudo apt-get install
Chromium 是否支持语音合成 API?我需要安装声音吗?如果是这样,我该怎么做?我正在使用 Fedora。我需要安装额外的软件包才能使用像视频这样的声音吗? 我试过这段代码: var msg =
dnf 命令会在您每次更新时下载整个软件包,而 yum 使用 deltarpm 并下载较少的数据。 怎么用dnf as yum来保存数据? 最佳答案 安装 deltarpm打包并添加 deltarpm
我是一名优秀的程序员,十分优秀!