要运行镜像,你可以使用 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 服务仍在运行并提供内容:
(编辑:云计算网_泰州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|