summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--roles/install-config/templates/config.boot.j211
-rw-r--r--roles/release-vagrant-box/tasks/main.yml25
-rw-r--r--roles/release-vagrant-libvirt-box/tasks/main.yml21
-rw-r--r--roles/vagrant-libvirt-box/files/Vagrantfile4
-rw-r--r--roles/vagrant-libvirt-box/files/metadata.json6
-rw-r--r--roles/vagrant-libvirt-box/tasks/main.yml6
-rw-r--r--roles/vagrant-libvirt-box/vars/main.yml7
-rw-r--r--vagrant-libvirt.yml10
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