commit 6664342be4793c446c57295f8c2eb51e8d9c56af Author: vincent Date: Tue Apr 9 19:42:12 2019 +0200 role virt diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..f480af5 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for vmserver \ No newline at end of file diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..464763f --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,17 @@ +--- +# handlers file for vmserver +- name: Enable and start libvirt services + systemd: + name: '{{ item }}' + enabled: True + state: started + with_items: + - libvirtd.service + - libvirt-guests.service + become: yes + + +- name: bridge_enable + become: yes + shell: netctl enable bridge && systemctl disable dhcpcd + diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..5d50bf4 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,60 @@ +galaxy_info: + author: your name + description: your description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Some suggested licenses: + # - BSD (default) + # - MIT + # - GPLv2 + # - GPLv3 + # - Apache + # - CC-BY + license: license (GPLv2, CC-BY, etc) + + min_ansible_version: 2.4 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # Optionally specify the branch Galaxy will use when accessing the GitHub + # repo for this role. During role install, if no tags are available, + # Galaxy will use this branch. During import Galaxy will access files on + # this branch. If Travis integration is configured, only notifications for this + # branch will be accepted. Otherwise, in all cases, the repo's default branch + # (usually master) will be used. + #github_branch: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..49f0c06 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,40 @@ +--- +# tasks file for vmserver +- name: install composant + pacman: + state: present # not required. choices: absent;latest;present. Desired state of the package. + name: + - libvirt + - bridge-utils + - dmidecode + - dnsmasq + - qemu-headless + # To create virtual machines + become: yes + notify: Enable and start libvirt services + +- name: Add user to libvirt group + user: + name: '{{ username }}' + groups: libvirt + append: True + become: yes + +- name: Enable libvirt hostname resolution + replace: + path: /etc/nsswitch.conf + regexp: '^hosts:\s+files\s+(?!libvirt)' + replace: 'hosts: files libvirt ' + become: yes + + +- debug: + msg: "{{ ansible_default_ipv4.interface }}" + +- name: set bridge template + template: + dest: /etc/netctl/bridge # required. Location to render the template to on the remote machine. + src: bridge.j2 # required. Path of a Jinja2 formatted template on the Ansible controller. This can be a relative or absolute path. + when: ansible_default_ipv4.interface is match("e*") + become: yes + notify: bridge_enable \ No newline at end of file diff --git a/templates/bridge.j2 b/templates/bridge.j2 new file mode 100644 index 0000000..7368be6 --- /dev/null +++ b/templates/bridge.j2 @@ -0,0 +1,7 @@ + Description="Bridge {{ ansible_default_ipv4.interface }} connection" + Interface=br0 + Connection=bridge + BindsToInterfaces=({{ ansible_default_ipv4.interface }}) + IP=dhcp + ## Ignore (R)STP and immediately activate the bridge + #SkipForwardingDelay=yes diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..173bb48 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for vmserver \ No newline at end of file