| #cloud-config |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| autoinstall: |
| version: 1 |
| # Disable ssh server during installation, otherwise packer tries to connect and exceed max attempts |
| early-commands: |
| - systemctl stop ssh |
| # Configure the locale |
| locale: en_US |
| keyboard: |
| layout: us |
| refresh-installer: |
| update: yes |
| channel: stable |
| # Create a single-partition with no swap space. Kubernetes |
| # really dislikes the idea of anyone else managing memory. |
| # For more information on how partitioning is configured, |
| # please refer to https://curtin.readthedocs.io/en/latest/topics/storage.html. |
| storage: |
| swap: |
| size: 0 |
| grub: |
| replace_linux_default: false |
| config: |
| - type: disk |
| id: disk-0 |
| size: smallest |
| grub_device: true |
| preserve: false |
| ptable: msdos |
| wipe: superblock |
| - type: partition |
| id: partition-0 |
| device: disk-0 |
| size: -1 |
| number: 1 |
| preserve: false |
| flag: boot |
| - type: format |
| id: format-0 |
| volume: partition-0 |
| fstype: ext4 |
| preserve: false |
| - type: mount |
| id: mount-0 |
| device: format-0 |
| path: / |
| updates: 'all' |
| ssh: |
| install-server: true |
| allow-pw: true |
| # Customize the list of packages installed. |
| packages: |
| - open-vm-tools |
| - openssh-server |
| - cloud-init |
| - wget |
| - tasksel |
| # Create the default user. |
| # Ensures the "cloud" user doesn't require a password to use sudo. |
| user-data: |
| disable_root: false |
| timezone: UTC |
| users: |
| - name: cloud |
| # openssl passwd -6 -stdin <<< cloud |
| passwd: $6$pAFEBhaCDzN4ZmrO$kMmUuxhPMx447lJ8Mtas8n6uqkojh94nQ7I8poI6Kl4vRGeZKE57utub1cudS1fGyG8HUxK9YHIygd7vCpRFN0 |
| groups: [adm, cdrom, dip, plugdev, lxd, sudo] |
| lock-passwd: false |
| sudo: ALL=(ALL) NOPASSWD:ALL |
| shell: /bin/bash |
| |
| # This command runs after all other steps; it: |
| # 1. Disables swapfiles |
| # 2. Removes the existing swapfile |
| # 3. Removes the swapfile entry from /etc/fstab |
| # 4. Removes snapd, https://bugs.launchpad.net/subiquity/+bug/1946609 |
| # 5. Cleans up any packages that are no longer required |
| # 6. Removes the cached list of packages |
| late-commands: |
| - curtin in-target --target=/target -- swapoff -a |
| - curtin in-target --target=/target -- rm -f /swap.img |
| - curtin in-target --target=/target -- sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab |
| - chroot /target apt-get purge -y snapd |
| - curtin in-target --target=/target -- apt-get purge --auto-remove -y |
| - curtin in-target --target=/target -- apt-get clean |
| - curtin in-target --target=/target -- rm -rf /var/lib/apt/lists/* |