标签 CoreOS 下的文章

Fedora CoreOS入门

现在被称为 DevOps 时代,操作系统的关注度似乎比工具要低一些。然而,这并不意味着操作系统没有创新。(编辑注:基于 Linux 内核的众多发行版所提供的多样化产品就是一个很好的例子)。Fedora CoreOS 就对这个 DevOps 时代的操作系统应该是什么样有着独特的理念。

Fedora CoreOS 的理念

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

安装并运行 Fedora CoreOS

要运行镜像,你可以使用 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 [email protected]
$ 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-ostree 和自动更新

zincati 服务使用自动更新驱动 rpm-ostreed。

检查虚拟机上当前运行的 Fedora CoreOS 版本,并检查 zincati 是否找到了更新:

$ ssh [email protected]
$ 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 [email protected]
$ 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 的信息。


via: https://fedoramagazine.org/getting-started-with-fedora-coreos/

作者:Clément Verna 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

CoreOS,一款最新的 Linux 发行版本,支持自动升级内核软件,提供各集群间配置的完全控制。

关于使用哪个版本的 Linux 服务器系统的争论,常常是以这样的话题开始的:

你是喜欢基于 Red Hat Enterprise Linux (RHEL)CentOS 或者 Fedora,还是基于 DebianUbuntu,抑或 SUSE 呢?

但是现在,一款名叫 CoreOS 容器 Linux 的 Linux 发行版加入了这场“圣战”。这个最近在 Linode 服务器上提供的 CoreOS,和它的老前辈比起来,它使用了完全不同的实现方法。

你可能会感到不解,这里有这么多成熟的 Linux 发行版本,为什么要选择用 CoreOS ?借用 Linux 主干分支的维护者,也是 CoreOS 顾问的 Greg Kroah-Hartman 先生的一句话:

CoreOS 可以控制发行版的升级(基于 ChromeOS 代码),并结合了 Docker 和潜在的核对/修复功能,这意味着不用停止或者重启你的相关进程,就可以在线升级。测试版本已经支持此功能,这是史无前例的。

当 Greg Kroah-Hartman 做出这段评价时,CoreOS 还处于 α 测试阶段,当时也许就是在硅谷的一个车库当中,开发团队正在紧锣密鼓地开发此产品,但 CoreOS 不像最开始的苹果或者惠普,其在过去的四年当中一直稳步发展。

当我参加在旧金山举办的 2017 CoreOS 大会时,CoreOS 已经支持谷歌云、IBM、AWS 和微软的相关服务。现在有超过 1000 位开发人员参与到这个项目中,并为能够成为这个伟大产品的一员而感到高兴。

究其原因,CoreOS 从开始就是为容器而设计的轻量级 Linux 发行版,其起初是作为一个 Docker 平台,随着时间的推移, CoreOS 在容器方面走出了自己的道路,除了 Docker 之外,它也支持它自己的容器 rkt (读作 rocket )。

不像大多数其他的 Linux 发行版,CoreOS 没有包管理器,取而代之的是通过 Google ChromeOS 的页面自动进行软件升级,这样能提高在集群上运行的机器/容器的安全性和可靠性。不用通过系统管理员的干涉,操作系统升级组件和安全补丁可以定期推送到 CoreOS 容器。

你可以通过 CoreUpdate 和它的 Web 界面上来修改推送周期,这样你就可以控制你的机器何时更新,以及更新以多快的速度滚动分发到你的集群上。

CoreOS 通过一种叫做 etcd 的分布式配置服务来进行升级,etcd 是一种基于 YAML 的开源的分布式哈希存储系统,它可以为 Linux 集群容器提供配置共享和服务发现等功能。

此服务运行在集群上的每一台服务器上,当其中一台服务器需要下线升级时,它会发起领袖选举,以便服务器更新时整个Linux 系统和容器化的应用可以继续运行。

对于集群管理,CoreOS 之前采用的是 fleet 方法,这将 etcd 和 systemd 结合到分布式初始化系统中。虽然 fleet 仍然在使用,但 CoreOS 已经将 etcd 加入到 Kubernetes 容器编排系统构成了一个更加强有力的管理工具。

CoreOS 也可以让你定制其它的操作系统相关规范,比如用 cloud-config 的方式管理网络配置、用户账号和 systemd 单元等。

综上所述,CoreOS 可以不断地自行升级到最新版本,能让你获得从单独系统到集群等各种场景的完全控制。如 CoreOS 宣称的,你再也不用为了改变一个单独的配置而在每一台机器上运行 Chef 了。

假如说你想进一步的扩展你的 DevOps 控制,CoreOS 能够轻松地帮助你部署 Kubernetes

CoreOS 从一开始就是构建来易于部署、管理和运行容器的。当然,其它的 Linux 发行版,比如 RedHat 家族的原子项目也可以达到类似的效果,但是对于那些发行版而言是以附加组件的方式出现的,而 CoreOS 从它诞生的第一天就是为容器而设计的。

当前容器和 Docker 已经逐渐成为商业系统的主流,如果在可预见的未来中你要在工作中使用容器,你应该考虑下 CoreOS,不管你的系统是在裸机硬件上、虚拟机还是云上。

如果有任何关于 CoreOS 的观点或者问题,还请在评论栏中留言。如果你觉得这篇博客还算有用的话,还请分享一下~


关于博主:Steven J. Vaughan-Nichols 是一位经验丰富的 IT 记者,许多网站中都刊登有他的文章,包括 ZDNet.comPC MagazineInfoWorldComputerWorldLinux TodayeWEEK 等。他拥有丰富的 IT 知识 - 而且他曾参加过智力竞赛节目 Jeopardy !他的相关观点都是自身思考的结果,并不代表 Linode 公司,我们对他做出的贡献致以最真诚的感谢。如果想知道他更多的信息,可以关注他的 Twitter @sjvn


via: https://medium.com/linode-cube/the-what-why-and-wow-behind-the-coreos-container-linux-fa7ceae5593c

作者:Steven J. Vaughan-Nichols 译者:吴霄/toyijiu 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linux 安全软件发现的漏洞可使得黑客获得 Root 权限

McAfee VirusScan Enterprise for Linux 版本中的远程代码执行缺陷,使黑客可以获得 root 权限,安全研究人员称只需欺骗该 app 使用恶意更新服务器即可实现。

来自 MIT Lincoln Laboratory 的 Andrew Fasano 在他的帖子中提到,他大概在 6 个月前发现了 McAfee 方案的漏洞,但是该安全公司只在本月初才打了补丁。

“第一眼看,McAfee VirusScan Enterprise for Linux 具备漏洞研究者喜欢的所有特征:它以 root 身份运行, 它宣称可使你的机器更安全,它不是特别流行,而且看起来它很久不更新。” 他写道。

在他的帖子中,Fasano 解释说一旦该 app 连接到被攻破的更新服务器,McAfee VirusScan Enterprise for Linux 就允许部署一个脚本,该脚本可使用 root 权限在目标机上启动。

McAfee 的 Linux 安全解决方案中有 10 个不同的漏洞,但研究人员说只需其中 4 个就可成功的攻陷 Linux 系统。

所有这些漏洞已在版本 1.9.2 到 2.0.2 中得到确认,建议所有 Linux 系统升级到 McAfee 本月发布的最新版本。

基于 Red Hat Enterprise Linux 7.3 的 CentOS Linux 7 (1611) 发布

2016 年 12 月 12 日, CentOS 维护人员 Karanbir Singh 高兴的宣布,期待已久的基于 Red Hat Enterprise Linux 的 CentOS Linux 7 (1611) 系统发布。

Red Hat 上个月宣布发布 Red Hat Enterprise Linux 7.3 系统,显然 CentOS Linux 7 是在它的基础上由 Karanbir Singh 和其他的优秀开发人员共同完成的。

“这个版本是用来自于 git.centos.org 的源文件编译的。此外,作为此次构建副产品的 SRPM(在代码和 buildsys 过程中很重要)也一同公布,以与我们发布的每一个二进制 RPM 匹配,” Karanbir Singh 在邮件列表中写到。

点击这里查看此次发布的发布公告,包括此版本的重要信息,以及来自 CentOS QA 团队的关于此版本某些内容的细节说明。

现在已有 64 位上的 CentOS Linux 7 (1611) 可下载,可从这里下载。

面向安全的 CoreOS Linux 更名为 Container Linux

2016 年 12 月 12 日,CoreOS 开发者 Alex Polvi 宣布 CoreOS 这个面向安全的 GNU/Linux 发布版更名为 Container Linux by CoreOS。

更名的决定是在早些时候,CoreOS 主持的 2016 Tectonic 峰会上决定的,当时该团队还公布了下一代 CoreOS Tectonic enterprise Kubernetes 解决方案,以部署和管理大规模的容器,它基于 Kubernetes 1.5 版本来实现自驱动能力。

好消息是可以继续免费使用 10 个节点以内的 CoreOS Tectonic。 在此公告后 Kubernetes 1.5 很快会发布,建议您如果好奇它有什么新特性的话,看看它的发布公告。同时可以下载最新的 Container Linux

基于 SUSE Linux Enterprise 12 SP3 的 openSUSE Leap 42.3 进入开放开发阶段

2016 年 12 月 13 日,openSUSE Linux 开发者 Ludwig Nussel 宣布,openSUSE Leap 系统的下一个大版本进入开发阶段。

很多人还刚刚定制完崭新的 openSUSE Leap 42.2 的安装,开来这个开发团队是没有时间休息了。

openSUSE Leap 42.2 是基于 SUSE Linux Enterprise 12 Service Pack 2 (SP2) 系统,显然下一个大版本,openSUSE Leap 42.3,将基于 SUSE Linux Enterprise 12 Service Pack 3 (SP3), 预计 2017 年第三季度某个时候发布。

根据 Ludwig Nussel,SUSE Linux Enterprise 12 SP 3 比预计的 11 月发布早了一点,这也是 openSUSE Leap 42.3 现在开放开发,准备接收提交的新的包,bug 修复,以及最新 GNU/Linux 技术的原因。

今日关注

甲骨文宣布 Oracle VM VirtualBox 5.1 发布。主要更新有:

  • 实现了一个支持模拟 NVMe(NVM Express)设备的 NVMHCI 存储控制器
  • 支持多通道音频
  • 改进了运行在多个 CPU 之上的虚拟机性能
  • 可以在 Linux 上自动加载网络模块,而不需要依赖 DKMS
  • 支持 Linux 4.6 和 4.7 内核
  • 引入一个新的日志功能,用于过滤和高亮客户机的信息。

图文摘要

KDE Plasma 5.7.1 和 KDE Applications 16.04.3 发布。

Solus Linux 在第31期 TWIS 中宣布,它正式成为了滚动发行版。

CoreOS Linux 1068.6.0 发布。主要变化有:coreos-metadata 0.4.1、systemd 229、Docker 1.10.3 容器引擎、rkt 1.7.0 应用容器运行环境、etcd 0.4.9、fleet 0.11.7 分布式初始化系统。

基于 FreeBSD 10.3 的 NAS4Free 10.3.0.3 嵌入式存储发布。这一版本增加了许多项新功能,包括实现了诊断日志的搜索功能,支持在快照或者其他页中一次性删除多个选项,还可以设置或修改 UPS 监控凭证。

CoreOS发布了他的Linux发行版的商用支持版,并且宣称将废除手动更新。

国际数据集团新闻社消息——CoreOS发布了商用Linux发行版,以期能简化系统管理员的生活。这个Linux发行版可持续进行自动更新,不需要进行重大升级。

CoreOS提供其同名的Linux发行版做为商业服务,开始为一个月100美元。

“商家现在可以开始考虑将CoreOS作为他们系统团队的延伸,对于企业Linux客户,这将是他们会需要的最后一次迁移。”CoreOS的创始人和CEO在一份声明中这样说。

商业Linux订阅并不是什么新鲜事:Red HatSuse都在为他们各自的发行版提供商业订阅。

因为这些以Linux为基础的公司使用的应用程序和库都是开源和免费提供的,所以订阅的费用不包括软件本身,而收费来自更新、漏洞修复、集成以及发生问题时的技术支持。

CoreOS公司声称,CoreOS将会和这些发行版不同,它将不会有重大更新,而在那些发行版中这些更新通常需要一次更新所有的包。在CoreOS中,它的更新和新特征将会在就绪后自动安装入操作系统中。

服务中提供了一个叫做CoreUpdate的仪表盘,如果管理员不想自动更新所有包,它可用于标明选取哪些软件包获取更新。

CoreUpdate可以同时管理多个机器,而且提供了回滚功能——在更新引起问题可使用。

CoreOS于去年十二月发布,它的设计旨在关注开源操作系统内核的新兴使用——用于大量基于云计算的虚拟服务器。

CoreOS的设计使其平均消耗要少于其他Linux发行版通常消耗的一半。系统中所有的程序运行在Docker虚拟化容器中,所以它们几乎可以在瞬间就开始运行。

由于CoreOS分为两部分的新用法使其更新更为容易。一部分放置当前版本的系统,而另一部分系统来进行升级,平滑地进行升级包或者整个系统。

CoreOS服务可以运行在本地,或者在Amazon,Google和Rackspace云服务上。

CoreOS周一还宣布他们收到了来自Kleiner Perkins Caulfield and Byers风险投资公司的800万美元的支持。他们此前还收到了红杉资本和斐然资本的投资。


作者Joab Jackson负责IDG新闻服务机构中企业软件和通用技术的新闻。Twitter上关注Joab@Joab\_Jackson。Joab的电子邮箱地址是mailto:[email protected]


via: http://www.computerworld.com/s/article/9249460/CoreOS_Linux_ending_the_upgrade_cycle?taxonomyId=122

译者:linuhap 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

随着CoreOS稳定版的发布,我们相信我们已经为SysAdmin节准备好了一个不错的惊喜。从现在起,用户可以在产品环境中运行CoreOS了。这个版本对于想运行CoreOS的用户来说,是最经考验的、最安全的、最可靠的CoreOS版本。这对我们来说,是一个重大的里程碑。自从2013年八月我们第一个alpha版本发布以来,我们做了:

  • 191个发布版本
  • 通过alpha和beta频道测试了成千上万的服务器
  • 支持10个以上平台,从裸机到Rackspace和Google云平台的主要镜像

对我们来说这是一个极为重要的日子,因为我们为了稳定版的发布付出了努力的工作。当然,如果没有社区的帮助,我们完成不了这些工作,感谢你们所有对项目的支持和贡献。

CoreOS 367.1.0, 这是我们在稳定频道上的第一个版本, 包括以下内容:

  • Linux 3.15.2
  • Docker 1.0.1
  • 所有主流的云服务商的支持, 包括 Rackspace Cloud, Amazon EC2 (包括 HVM) 和 Google Compute Engine
  • 通过 CoreOS Managed Linux 的商业支持

如果你还没有阅读我们的Update Philosophy,我们建议您先看看。

请注意:稳定发布版本为了保持稳定性而不包括etcd和fleet ,此发布版仅针对基本的操作系统和Docker1.0。etcd和fleet的稳定版本支持会在随后的发布版本中。

如果想开始在产品中运行CoreOS,请确保阅读我们的快速指南“切换到发布频道”。如果你正在装新的机器,请确保在一开始就把他们建立在你想要的更新频道上。

最后,感谢社区的支持,我们迫不及待地想听到你们的反馈。对那些在产品环境中运行CoreOS上,希望得到额外支持的用户,请确保查看我们的Managed Linux 建议,因为我们已经有了一个完整的支持团队,他们正在准备回答你遇到的任何问题。

SysAdmin节快乐,感谢你们让互联网变得如此令人惊叹。


via: https://coreos.com/blog/stable-release/

作者:Alex Polvi 译者:lfzark 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出