diff --git a/.gitignore b/.gitignore index e925fe5..bf2c83a 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,7 @@ toddlers.toml tests/msg.json # Python virtualenv -.venv/ \ No newline at end of file +.venv/ + +# Vagrant related +.vagrant/ diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..241a1e7 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,33 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +VAGRANTFILE_API_VERSION = "2" + +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + config.vm.box_url = "https://download.fedoraproject.org/pub/fedora/linux/releases/36/Cloud/x86_64/images/Fedora-Cloud-Base-Vagrant-36-1.5.x86_64.vagrant-libvirt.box" + config.vm.box = "f36-cloud-libvirt" + + # Create the toddlers dev box + config.vm.define "toddlers" do |toddlers| + toddlers.vm.host_name = "toddlers-dev.example.com" + + toddlers.vm.provider :libvirt do |domain| + # Season to taste + domain.cpus = Etc.nprocessors + domain.cpu_mode = "host-passthrough" + domain.graphics_type = "spice" + # The unit tests use a lot of RAM. + domain.memory = 2048 + domain.video_type = "qxl" + end + end + + config.vm.synced_folder ".", "/vagrant", disabled: true + config.vm.synced_folder ".", "/home/vagrant/toddlers", type: "sshfs" + + # bootstrap and run with ansible + config.vm.provision "ansible" do |ansible| + ansible.playbook = "ansible/playbook.yml" + end + +end diff --git a/ansible/playbook.yml b/ansible/playbook.yml new file mode 100644 index 0000000..e9f0491 --- /dev/null +++ b/ansible/playbook.yml @@ -0,0 +1,8 @@ +--- +- hosts: toddlers + become: true + become_method: sudo + vars: + ansible_python_interpreter: /usr/bin/python3 + roles: + - toddlers diff --git a/ansible/roles/toddlers/tasks/main.yml b/ansible/roles/toddlers/tasks/main.yml new file mode 100644 index 0000000..59bac7c --- /dev/null +++ b/ansible/roles/toddlers/tasks/main.yml @@ -0,0 +1,48 @@ +--- +- name: Upgrade all packages + dnf: + name: "*" + state: latest + +- name: Install dependencies + dnf: + name: + - fedora-messaging + - python3-arrow + - python3-beanbag + - python3-beautifulsoup4 + - python3-bugzilla + - python3-defusedxml + - python3-fasjson-client + - python3-fedora + - python3-GitPython + - python3-gobject + - python3-pagure-messages + - python3-pdc-client + - python3-requests + - python3-koji + state: present + +- name: Install tests dependencies + dnf: + name: + - cairo-devel + - cairo-gobject-devel + - gobject-introspection-devel + - krb5-devel + - libmodulemd1 + - python3.10-devel + - python3-tox + state: present + +# These aren't available from Koji +- name: Install dependencies from PIP + pip: + name: + - pgi + +- name: Create the config file + shell: sed -e "s/[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}/$(uuidgen)/g" toddlers.toml.example > toddlers.toml + args: + chdir: /home/vagrant/toddlers/ + creates: /home/vagrant/toddlers/toddlers.toml