personal-servers/provision-pinky/firecracker.yml

58 lines
1.8 KiB
YAML

# Setup Firecracker for VMs
- name: Firecracker
hosts: servers
become_method: ansible.builtin.sudo
become: true
tasks:
- name: Get firecracker
become: false
ansible.builtin.get_url:
url: https://github.com/firecracker-microvm/firecracker/releases/download/v1.7.0/firecracker-v1.7.0-aarch64.tgz
dest: ~ralsina/firecracker.tgz
mode: '0644'
- name: Get kernel
become: false
ansible.builtin.get_url:
url: https://s3.amazonaws.com/spec.ccfc.min/img/quickstart_guide/aarch64/kernels/vmlinux.bin
dest: ~ralsina/vmlinux.bin
mode: '0644'
- name: Get root image
become: false
ansible.builtin.get_url:
url: https://s3.amazonaws.com/spec.ccfc.min/img/quickstart_guide/aarch64/rootfs/bionic.rootfs.ext4
dest: ~ralsina/bionic.rootfs.ext4
mode: '0644'
- name: Unpack firecracker
become: false
ansible.builtin.unarchive:
src: ~ralsina/firecracker.tgz
dest: ~ralsina
remote_src: true
- name: Install firecracker
become: true
ansible.builtin.command:
cmd: mv /home/ralsina/release-v1.7.0-aarch64/firecracker-v1.7.0-aarch64 /usr/bin/firecracker
creates: /usr/bin/firecracker
- name: Setup systemd unit for firecracker
become: true
ansible.builtin.copy:
dest: /etc/systemd/system/firecracker.service
content: |
[Unit]
Description=Firecracker VM Manager
[Service]
Type=simple
ExecStart=/usr/bin/firecracker --api-sock /tmp/firecracker.socket
Restart=always
[Install]
WantedBy=default.target
mode: '0644'
- name: Start and enable service
become: true
ansible.builtin.service:
name: firecracker
state: started
enabled: true