标签: cloud-init

如何在 Ubuntu 云 VM 映像上禁用`apt-daily.service`?

Ubuntu 16.04 服务器 VM 映像显然每 12 小时左右启动一次“apt-daily.service”;此服务执行各种与 APT 相关的任务,例如刷新可用软件包列表、在需要时执行无人值守升级等。

当从虚拟机“快照”启动时,服务会立即触发,因为(我认为)systemd 很快意识到计时器早就应该关闭了。

但是,正在运行的 APT 会阻止其他apt进程运行,因为它持有/var/lib/dpkg. 指示这的错误消息如下所示:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Run Code Online (Sandbox Code Playgroud)

我需要禁用这个自动化的 APT 任务,直到 Ansible 完成机器设置(通常涉及安装包);有关更多信息和上下文,请参阅https://github.com/gc3-uzh-ch/elasticluster/issues/304

我尝试了各种选项来通过“用户数据”脚本禁用“无人值守升级”功能cloud-init,但到目前为止所有这些都失败了。

1.禁用systemd任务

systemd 任务apt-daily.serviceapt-daily.timer. 我尝试使用以下命令的各种组合来禁用一个或另一个,或同时禁用两者;仍然,在apt-daily.serviceVM 准备好接受 SSH 连接后不久就启动了:

    #!/bin/bash

    systemctl stop apt-daily.timer
    systemctl disable apt-daily.timer
    systemctl mask apt-daily.service …
Run Code Online (Sandbox Code Playgroud)

ubuntu systemd cloud-init

82
推荐指数
3
解决办法
9万
查看次数

Azure VM cloud-init 覆盖 /etc/fstab

我添加了一个额外的数据磁盘,如将数据磁盘附加到 Linux VM 文档中所述。

有问题的分区是/dev/sdc1. 我将这一行添加到了最底部。不幸的是,cloud-init 的魔力以一种糟糕的方式发挥了它的奇迹,并在 /etc/fstab 中的条目周围移动,最终我得到了一个“隐藏”的挂载点。

root@qwerz:/mnt/builds/docker# cat /etc/fstab
# CLOUD_IMG: This file was created/modified by the Cloud Image build process
UUID=cfadafca-7199-49b1-a353-072629b7fcdf       /        ext4   defaults,discard        0 0
LABEL=UEFI      /boot/efi       vfat    defaults,discard        0 0
UUID=0195f789-b5fa-4bea-a91d-dc120bafb23a       /mnt/builds             ext4    defaults,nofail   1   2
#/dev/sdc1      /mnt/builds     ext4    default,nofail  0       0
/dev/disk/cloud/azure_resource-part1    /mnt    auto    defaults,nofail,x-systemd.requires=cloud-init.service,comment=cloudconfig       0       2
root@qwerz:/mnt/builds/docker#
Run Code Online (Sandbox Code Playgroud)

问题 1:我应该将自定义点移到 /mnt 之外吗?
问题 2:cloud-init 的东西到底在做什么,我可以摆脱它吗?

root@qwerz:/mnt/builds/docker# dpkg -l |grep cloud-init
ii  cloud-init                          19.1-1-gbaa47854-0ubuntu1~18.04.1           all          Init scripts for cloud instances …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu cloud-init

6
推荐指数
1
解决办法
7179
查看次数

下载存储库“epel”元数据时出错

cloud-init为了通过重试其他操作来处理下面显示的错误消息,直到它正确工作而不抛出错误,必须在下面的启动脚本摘录中更改哪些特定语法?

触发错误的命令:

我们的启动脚本中似乎触发错误的命令是:

dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Run Code Online (Sandbox Code Playgroud)

错误信息:

错误消息似乎是:

azure-arm: Errors during downloading metadata for repository 'epel':
azure-arm:   - Status code: 503 for https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=x86_64&infra=$infra&content=$contentdir (IP: 123.45.678.901)
azure-arm:   - Status code: 503 for https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=x86_64&infra=$infra&content=$contentdir (IP: 123.45.678.908)
azure-arm:   - Status code: 503 for https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=x86_64&infra=$infra&content=$contentdir (IP: 98.765.43.21)
azure-arm: Error: Failed to download metadata for repo 'epel': Cannot prepare internal mirrorlist: Status code: 503 for https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=x86_64&infra=$infra&content=$contentdir (IP: 86.753.09.11)
Run Code Online (Sandbox Code Playgroud)

上下文

Packer 使用启动脚本在 azure 中构建 RHEL 7 映像cloud-init。正常情况下,构建工作正常。但是,现在,当下面给出的行由于某些依赖性问题而抛出下面给出的错误时,构建失败。

我们需要如何重写中断行周围的行,以便安装顺利完成?

dnf install我们的要求是直接从特定文件执行操作rpm …

bash rhel dnf cloud-init packer

5
推荐指数
1
解决办法
7319
查看次数

标签 统计

cloud-init ×3

ubuntu ×2

bash ×1

dnf ×1

linux ×1

packer ×1

rhel ×1

systemd ×1