diff options
-rw-r--r-- | roles/install-config/templates/config.boot.j2 | 11 | ||||
-rw-r--r-- | roles/release-vagrant-box/tasks/main.yml | 25 | ||||
-rw-r--r-- | roles/release-vagrant-libvirt-box/tasks/main.yml | 21 | ||||
-rw-r--r-- | roles/vagrant-libvirt-box/files/Vagrantfile | 4 | ||||
-rw-r--r-- | roles/vagrant-libvirt-box/files/metadata.json | 6 | ||||
-rw-r--r-- | roles/vagrant-libvirt-box/tasks/main.yml | 6 | ||||
-rw-r--r-- | roles/vagrant-libvirt-box/vars/main.yml | 7 | ||||
-rw-r--r-- | vagrant-libvirt.yml | 10 |
8 files changed, 61 insertions, 29 deletions
diff --git a/roles/install-config/templates/config.boot.j2 b/roles/install-config/templates/config.boot.j2 index b02c07e..c0c5e80 100644 --- a/roles/install-config/templates/config.boot.j2 +++ b/roles/install-config/templates/config.boot.j2 @@ -35,6 +35,17 @@ system { } } interfaces { +{% if enable_dhcp %} + ethernet eth0 { + address dhcp + } +{% endif %} loopback lo { } } +{% if enable_ssh %} +service { + ssh { + } +} +{% endif %} diff --git a/roles/release-vagrant-box/tasks/main.yml b/roles/release-vagrant-box/tasks/main.yml new file mode 100644 index 0000000..9dcb1de --- /dev/null +++ b/roles/release-vagrant-box/tasks/main.yml @@ -0,0 +1,25 @@ +- name: Relase Vagrant Box + when: release + block: + - name: Check Vagrant Cloud login + become: no + command: "vagrant cloud auth login --check" + + - name: Set box version for rolling release + set_fact: + box_version: "{{ vyos_version.split('-')[2][0:8] }}.{{ vyos_version.split('-')[2][8:10] }}.{{ vyos_version.split('-')[2][10:12] }}" + when: vyos_version.split("-") | length == 3 + + - name: Set box version for epa and rc + set_fact: + box_version: "{{ vyos_version.split('-')[0] }}" + when: vyos_version.split("-") | length == 2 + + - name: Set box version for LTS release + set_fact: + box_version: "{{ vyos_version }}" + when: vyos_version.split("-") | length == 1 + + - name: Publish the Vagrant box + become: no + command: "vagrant cloud publish {{ vyos_vagrant_box_name }} {{ box_version }} {{ vagrant_provider }} {{ vyos_output_img }} --version-description \"VyOS {{ vyos_version }}\" --release --force" diff --git a/roles/release-vagrant-libvirt-box/tasks/main.yml b/roles/release-vagrant-libvirt-box/tasks/main.yml deleted file mode 100644 index 567aea5..0000000 --- a/roles/release-vagrant-libvirt-box/tasks/main.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: Set box version - set_fact: - box_version: "{{ vyos_version.split('-')[2][0:8] }}.{{ vyos_version.split('-')[2][8:10] }}.{{ vyos_version.split('-')[2][10:12] }}" - when: vyos_images_dir is defined and vyos_vagrant_box_base_url is defined -- name: Create the box version - uri: - url: "https://app.vagrantup.com/api/v1/box/{{ vyos_vagrant_box_name }}/versions?access_token={{ vyos_vagrant_cloud_access_token }}" - method: POST - body: "version[version]={{ box_version }}" - when: vyos_images_dir is defined and vyos_vagrant_box_base_url is defined and vyos_vagrant_cloud_access_token is defined -- name: Create the box provider - uri: - url: "https://app.vagrantup.com/api/v1/box/{{ vyos_vagrant_box_name }}/version/{{ box_version }}/providers?access_token={{ vyos_vagrant_cloud_access_token }}" - method: POST - body: "provider[name]=libvirt&provider[url]={{ vyos_vagrant_box_base_url }}/vyos-{{ vyos_version }}-vagrant-libvirt.box" - when: vyos_images_dir is defined and vyos_vagrant_box_base_url is defined and vyos_vagrant_cloud_access_token is defined -- name: Release the box - uri: - url: "https://app.vagrantup.com/api/v1/box/{{ vyos_vagrant_box_name }}/version/{{ box_version }}/release?access_token={{ vyos_vagrant_cloud_access_token }}" - method: PUT - when: vyos_images_dir is defined and vyos_vagrant_box_base_url is defined and vyos_vagrant_cloud_access_token is defined diff --git a/roles/vagrant-libvirt-box/files/Vagrantfile b/roles/vagrant-libvirt-box/files/Vagrantfile index 7c89422..7a720d0 100644 --- a/roles/vagrant-libvirt-box/files/Vagrantfile +++ b/roles/vagrant-libvirt-box/files/Vagrantfile @@ -1,4 +1,5 @@ Vagrant.configure("2") do |config| + config.vm.post_up_message = "VyOS box. See https://app.vagrantup.com/vyos for help and bug reports" config.vm.synced_folder './', '/vagrant', type: "rsync", owner: 'vyos', @@ -8,5 +9,8 @@ Vagrant.configure("2") do |config| config.ssh.password = "vyos" config.vm.provider :libvirt do |libvirt| libvirt.driver = "kvm" + libvirt.connect_via_ssh = false + libvirt.username = "root" + libvirt.storage_pool_name = "default" end end diff --git a/roles/vagrant-libvirt-box/files/metadata.json b/roles/vagrant-libvirt-box/files/metadata.json index a502c63..e2e3fef 100644 --- a/roles/vagrant-libvirt-box/files/metadata.json +++ b/roles/vagrant-libvirt-box/files/metadata.json @@ -1 +1,5 @@ -{"format":"qcow2","provider":"libvirt","virtual_size":1} +{ + "provider" : "libvirt", + "format" : "qcow2", + "virtual_size" : 10 +} diff --git a/roles/vagrant-libvirt-box/tasks/main.yml b/roles/vagrant-libvirt-box/tasks/main.yml index ede229a..1dc6207 100644 --- a/roles/vagrant-libvirt-box/tasks/main.yml +++ b/roles/vagrant-libvirt-box/tasks/main.yml @@ -1,3 +1,9 @@ +- name: Create output directory if it does not exist + file: + path: "{{ vyos_vagrant_libvirt_dir }}" + state: directory + mode: '0777' + - name: Convert raw to qcow2 command: qemu-img convert -f raw "{{ vyos_raw_img }}" -O qcow2 "{{ vyos_vagrant_libvirt_box_img }}" - name: Copy metadata.json diff --git a/roles/vagrant-libvirt-box/vars/main.yml b/roles/vagrant-libvirt-box/vars/main.yml index b262127..490437f 100644 --- a/roles/vagrant-libvirt-box/vars/main.yml +++ b/roles/vagrant-libvirt-box/vars/main.yml @@ -1,6 +1,7 @@ -vyos_vagrant_libvirt_box_img: /tmp/box.img +vyos_vagrant_libvirt_dir: "/tmp/vyos_vagrant_libvirt" +vyos_vagrant_libvirt_box_img: "{{ vyos_vagrant_libvirt_dir }}/box.img" vyos_vagrant_libvirt_metadata: files/metadata.json vyos_vagrant_libvirt_vagrantfile: files/Vagrantfile -vyos_vagrant_libvirt_tmp_metadata: /tmp/metadata.json -vyos_vagrant_libvirt_tmp_vagrantfile: /tmp/Vagrantfile +vyos_vagrant_libvirt_tmp_metadata: "{{ vyos_vagrant_libvirt_dir }}/metadata.json" +vyos_vagrant_libvirt_tmp_vagrantfile: "{{ vyos_vagrant_libvirt_dir }}/Vagrantfile" vyos_vagrant_box_name: vyos/current diff --git a/vagrant-libvirt.yml b/vagrant-libvirt.yml index 954af6f..55449da 100644 --- a/vagrant-libvirt.yml +++ b/vagrant-libvirt.yml @@ -6,11 +6,14 @@ vars: vyos_platform: vagrant-libvirt vyos_format: box - vyos_vagrant_libvirt_box: /tmp/vyos_vagrant_libvirt_image.box + vyos_vagrant_libvirt_box: "vyos_vagrant_libvirt_image.box" vyos_output_img: "{{ vyos_vagrant_libvirt_box }}" + cloud_init: False + enable_dhcp: True + enable_ssh: True + vagrant_provider: libvirt roles: - install-packages - - load-modules - download-iso - mount-iso - get-version @@ -24,5 +27,4 @@ - unmount-pre - unmount-all - vagrant-libvirt-box - - release - - release-vagrant-libvirt-box + - release-vagrant-box |