Как настроить GRUB с помощью cloud-init без перезагрузки системы? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь включить поддержку лимита Swap Docker через cloud-init, не перезагружая систему после обновления GRUB.Чтобы включить его, общие шаги:

  1. Отредактируйте файл / etc / default / grub, добавив GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

  2. Обновить GRUB.

  3. Перезагрузка системы

Я просто хочу исключить третий шаг - перезагрузка системы, чтобы применить модификацию GRUB.Можем ли мы сделать это, используя bootcmd или #cloud-boothook или есть опция, подобная prebootcmd.Я пробовал что-то вроде ниже, но GRUB, кажется, не работает без перезагрузки системы.

#cloud-config

package_update: true

# Setup swap memory
disk_setup:
    ephemeral0:
        table_type: mbr
        layout: [66, [33, 82]]
        overwrite: True
fs_setup:
    - device: ephemeral0.1
      filesystem: ext4
    - device: ephemeral0.2
      filesystem: swap
mounts:
    - ["ephemeral0.1", "/mnt"]
    - ["ephemeral0.2", "none", "swap", "sw", "0", "0"]

# Enable Docker's swap limit support
bootcmd:
    - [ sh, -c, 'sudo echo GRUB_CMDLINE_LINUX=\"cgroup_enable=memory swapaccount=1\" >> /etc/default/grub' ]
    - [ sh, -c, 'sudo update-grub' ]


# Install docker and docker-compose
runcmd:
    - [ sh, -c, 'curl -sSL https://get.docker.com/ | sh' ]
    - [ sh, -c, 'sudo curl -L https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep "tag_name" | cut -d \" -f4)/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose' ]
    - [ sh, -c, 'sudo chmod +x /usr/local/bin/docker-compose' ]

# Add default auto created user to docker group
system_info:
    default_user:
        groups: [docker]
...