将应用程序部署到服务器上时,应用程序与其自身捆绑的内容与它期望从平台(操作系统和已安装的包)提供的内容之间通常存在分离。其中一点是平台可以独立于应用程序进行更新。例如,当需要将安全更新紧急应用于平台提供的包而不重建整个应用程序时,这很有用。
传统上,安全更新只是通过执行包管理器命令来在操作系统上安装更新版本的包(例如 RHEL 上的“yum update”)来应用的。但是随着容器技术的出现,比如 Docker,其中容器镜像本质上同时捆绑了应用程序和平台,保持容器系统最新的规范方法是什么?主机和容器都有自己的、独立的、需要更新的包集,在主机上更新不会更新容器内的任何包。随着 RHEL 7 的发布,其中 Docker 容器特别突出,听到 Redhat 推荐的处理容器安全更新的方法是很有趣的。
关于几个选项的想法:
所以这些方法似乎都不令人满意。
cloud-init 的输出(在云中启动虚拟机时自动运行脚本,例如在 Amazon EC2 中)去哪里了?我想知道我的初始化脚本是否成功执行。
有一个 /var/log/cloud-init.log 文件,但它似乎只包含部分输出(即来自 SSH 密钥初始化)。
有时,当使用systemctl stop test-server它停止 systemd 服务时会失败,并指出作业已取消:
Unable to stop service test-server: Job for test-server.service canceled.
Run Code Online (Sandbox Code Playgroud)
什么可能导致停止服务被取消?
注意:停止实际上是从 Ansible playbook 启动的,但看不出这有什么关系。
看来,GlassFish的项目本身不提供RPM软件包,而且也不JPackage上(http://jpackage.org/)。是否有其他人为 RHEL/CentOS 提供现成的 RPM 包?
相关说明:为什么 GlassFish v3 如此明显地缺少 RPM 包?人们不使用打包系统安装它吗?
redhat ×2
amazon-ec2 ×1
centos ×1
containers ×1
docker ×1
glassfish ×1
linux ×1
rpm ×1
security ×1
systemd ×1