{% extends 'base.jinja2' %}
{% set boot_character_delay = 300 %}
{% set base_ip_args = 'ip=:::::eth0:dhcp' %}
{% set console_device = console_device | default('ttyAMA1') -%}
{% set baud_rate = baud_rate | default(115200) -%}


{% set grub_installed_device = grub_installed_device | default('(hd2,gpt1)') %}



{% block vland %}
{% endblock vland %}

{% block body %}

device_type: amberwing_rep-grub

actions:
  deploy:
    methods:
      tftp:
      ssh:
        options:
{{ ssh_options }}
        host: '{{ ssh_host|default('') }}'
        user: {{ ssh_user|default('root') }}
        port: {{ ssh_port|default(22) }}
        identity_file: {{ ssh_identity_file }}
  boot:
     connections:
       serial:
       ssh:
     methods:
      grub:
        menu_options: {{ grub_method }}
        parameters:
{% if grub_method == 'centos' %}
          interrupt_prompt: {{ grub_interrupt_prompt|default('Press \'e\' to edit the selected item, or \'c\' for a command prompt.') }}
{% elif grub_method == 'ubuntu' %}
          interrupt_prompt: {{ grub_interrupt_prompt|default(' Press enter to boot the selected OS') }}
{% elif grub_method == 'pxe' %}
          interrupt_prompt: {{ grub_interrupt_prompt|default('Press \'e\' to edit the selected item, or \'c\' for a command prompt.') }}
{% endif %}
          bootloader_prompt: {{ grub_efi_bootloader_prompt|default('grub>') }}
          boot_message: {{ kernel_boot_message | default("Booting Linux Kernel...") }}
        ramdisk:
          commands:
          - insmod net
          - insmod efinet
          - insmod tftp
          - insmod gzio
          - insmod part_gpt
          - load_video
          - set gfxpayload=keep
          - set net_default_server={SERVER_IP}
          - net_add_addr eno0 efinet0 "{{DEVICE_IP1}}"
          - linux (tftp)/{KERNEL} root={{ root_uuid|default('/dev/sda1') }}  ro quiet
          - initrd (tftp)/{RAMDISK}
          - boot
        centos_installer:
          commands:
          - insmod net
          - insmod efinet
          - insmod tftp
          - insmod gzio
          - set net_default_server={SERVER_IP}
          - net_add_addr eno0 efinet0 "{{DEVICE_IP1}}"
          - linux (tftp)/{KERNEL} ip={{DEVICE_IP1}}::{{GATEWAY}}:{{NETMASK}}:localhost:{{net_device_centos}}:none:10.128.0.10:10.128.0.11 inst.ks=http://{SERVER_IP}:8080/{PRESEED_CONFIG}
          - initrd (tftp)/{RAMDISK}
          - boot
        centos_installed:
          commands:
          - insmod net
          - insmod efinet
          - insmod tftp
          - insmod gzio
          - insmod part_gpt
          - insmod xfs
          - insmod chain
          - set net_default_server={SERVER_IP}
          - net_add_addr eno0 efinet0 "{{DEVICE_IP1}}"
          - ls
          - ls {{ grub_installed_device }}
          - sleep 10
          - set root={{ grub_installed_device }}
          - sleep 10
          - ls {{ grub_installed_device }}
          - sleep 10
          - chainloader {{ grub_installed_device }}/efi/centos/grubaa64.efi
          - sleep 10
          - boot
        ubuntu_installer:
          commands:
          - insmod net
          - insmod efinet
          - insmod tftp
          - insmod gzio
          - insmod part_gpt
          - insmod ext2
          - load_video
          - set net_default_server={SERVER_IP}
          - net_add_addr eno0 efinet0 "{{DEVICE_IP1}}"
          - linux (tftp)/{KERNEL} auto=true interface={{net_device_ubuntu}} priority=critical noshell BOOT_DEBUG=1 DEBIAN_FRONTEND=text hostname=localhost netcfg/get_ipaddress={{DEVICE_IP1}} netcfg/get_netmask=255.255.255.0 netcfg/get_gateway=10.5.21.1 netcfg/get_nameservers=10.128.0.10 10.128.0.11 domain=hxtcorp.net netcfg/disable_dhcp=true url=tftp://{SERVER_IP}/{PRESEED_CONFIG} efi=noruntime --- quiet
          - initrd (tftp)/{RAMDISK}
          - boot
        ubuntu_installed:
          commands:
          - insmod net
          - insmod efinet
          - insmod tftp
          - insmod gzio
          - insmod part_gpt
          - insmod xfs
          - insmod chain
          - set net_default_server={SERVER_IP}
          - net_add_addr eno0 efinet0 "{{DEVICE_IP1}}"
          - ls
          - ls {{ grub_installed_device }}
          - sleep 10
          - set root={{ grub_installed_device }}
          - sleep 10
          - ls {{ grub_installed_device }}
          - sleep 10
          - chainloader {{ grub_installed_device }}/efi/ubuntu/grubaa64.efi
          - sleep 10
          - boot
        centos_nfs:
          commands:
          - insmod net
          - insmod efinet
          - insmod tftp
          - insmod gzio
          - insmod part_gpt
          - insmod xfs
          - insmod ext2
          - load_video
          - set gfxpayload=keep
          - set net_default_server={SERVER_IP}
          - net_add_addr eno0 efinet0 "{{DEVICE_IP1}}"
          - linux (tftp)/{KERNEL} root=/dev/nfs rw {{ base_nfsroot_args }} ip={{DEVICE_IP1}}:{SERVER_IP}:{{GATEWAY}}:{{NETMASK}}::{{net_device_centos}}:off
          - initrd (tftp)/{RAMDISK}
          - boot

{% endblock body %}
{% block timeouts %}
timeouts:
  actions:
    grub-main:
      seconds: 54000
    bootloader-action:
      seconds: 54000
    bootloader-interrupt:
      seconds: 3000
    bootloader-commands:
      seconds: 6000
    auto-login:
      seconds: 600
    auto-login-action:
      seconds: 600
    installer-wait:
      seconds: 5400
    pdu-reboot:
      seconds: 3000
  connections:
    pdu-reboot:
      seconds: 3000
    grub-main:
       seconds: 54000
    bootloader-action:
       seconds: 54000
    installer-wait:
      seconds: 5400
    bootloader-retry:
      seconds: 3000
    bootloader-interrupt:
      seconds: 300
    bootloader-commands:
      seconds: 600
{% endblock timeouts %}

