Container Linux の設定ファイル (残骸)

Container Linux とは、Dockerでドカドカしたい人向けのOSらしいです。

OSインストール時に、 Container Linux Config という設定ファイルをトランスパイルして生成できる Ignition Config というJSONファイルを食わせてOS全体を一気に設定する仕組みになっているのですが、その設定ファイルを書いていたらなんか飽きたので、途中までのものをメモって供養します。

ちょっとしたsystemdの勉強にはなった。

storage:
  files:
    - path: /etc/sysctl.d/80-swappiness.conf
      filesystem: root
      contents:
        inline: "vm.swappiness=10"
systemd:
  units:
    - name: set-timezone.service
      enabled: true
      contents: |
        [Unit]
        Description=Set the time zone

        [Service]
        ExecStart=/usr/bin/timedatectl set-timezone Asia/Tokyo
        RemainAfterExit=yes
        Type=oneshot

        [Install]
        WantedBy=multi-user.target
    - name: var-vm-swapfile1.swap
      enabled: true
      contents: |
        [Unit]
        Description=Turn on swap
        Requires=create-swapfile.service
        After=create-swapfile.service

        [Swap]
        What=/var/vm/swapfile1

        [Install]
        WantedBy=multi-user.target
    - name: create-swapfile.service
      contents: |
        [Unit]
        Description=Create a swapfile
        RequiresMountsFor=/var
        ConditionPathExists=!/var/vm/swapfile1

        [Service]
        Type=oneshot
        ExecStart=/usr/bin/mkdir -p /var/vm
        ExecStart=/usr/bin/fallocate -l 1024m /var/vm/swapfile1
        ExecStart=/usr/bin/chmod 600 /var/vm/swapfile1
        ExecStart=/usr/sbin/mkswap /var/vm/swapfile1
        RemainAfterExit=true
networkd:
  units:
    - name: 00-eth0.network
      contents: |
        [Match]
        Name=eth0

        [Network]
        LinkLocalAddressing=no
        IPv6AcceptRA=no
        DNS=8.8.8.8 8.8.4.4
        Address=xxx.xxx.xxx.xxx/xx
        Gateway=xxx.xxx.xxx.xxx
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
locksmith:
  reboot_strategy: "reboot"