Назад | Перейти на главную страницу

Как установить переменные sysctl в CoreOS cloud-init?

Ищу способ установить CoreOS sysctl настройки во время его cloud-init этап.

Версия CoreOS cloud-init позволяет использовать только несколько директив конфигурации и отличается от обычного cloud-init. Например, нет runcmd раздел (см. http://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config/).

systemd предоставляет способ управлять sysctl настройки через файлы (http://www.freedesktop.org/software/systemd/man/sysctl.d.html). Я использую CoreOS cloud-init write_files раздел для создания файла в /etc/sysctl.d/50-nf_conntrack.conf. Но он не будет поднят, потому что облачная конфигурация CoreOS происходит после sysctl.d настройка уже произошла.

Возможно, я мог бы как-нибудь использовать другой systemd unit файл, чтобы перезапустить sysctl.d Ед. изм? Как этого добиться?

См. Ответ в системе отслеживания проблем CoreOS на github: https://github.com/coreos/bugs/issues/747#issuecomment-142764415

В будущем может быть более простой способ, но сейчас вы можете просто написать модуль для вызова systemd-sysctl во время cloudinit; он будет запущен после записи любых файлов, указанных в write_files:

#cloud-config 
.... 
coreos:
  units:
    - name: update-sysctl.service
      command: start
      content: |
        [Unit]
        Description=Update sysctl values written by cloud-config
        [Service]
        ExecStart=/usr/lib/systemd/systemd-sysctl ...

Спасибо другим за советы.

Вы можете сделать это для запуска произвольных команд, подобных runcmd.

- name: runcmd.service
  command: start
  content: |
    [Unit]
    Description=Runs a command

    [Service]
    Type=oneshot
    ExecStart=/bin/sh -c "touch /etc/environment;"

Вы можете просто позвонить sysctl в файле самостоятельно, чтобы настройки вступили в силу немедленно, а файл конфигурации будет использоваться для последующих перезагрузок (если ваш экземпляр является постоянным).

Я бы использовал Команда выполнения для этого.

runcmd:
- sysctl -p /etc/sysctl.d/50-nf_conntrack.conf