From nobody Thu Dec 18 13:44:10 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 15069587464051008.4789259912451; Mon, 2 Oct 2017 08:39:06 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D2DC2C0587E9; Mon, 2 Oct 2017 15:39:04 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7682C5D720; Mon, 2 Oct 2017 15:39:04 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 24F283FAD0; Mon, 2 Oct 2017 15:39:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v92FBGE9019035 for ; Mon, 2 Oct 2017 11:11:16 -0400 Received: by smtp.corp.redhat.com (Postfix) id 79DE717977; Mon, 2 Oct 2017 15:11:16 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.40.205.98]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 92FE06FDA0 for ; Mon, 2 Oct 2017 15:11:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D2DC2C0587E9 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Andrea Bolognani To: libvir-list@redhat.com Date: Mon, 2 Oct 2017 17:10:39 +0200 Message-Id: <20171002151056.30841-2-abologna@redhat.com> In-Reply-To: <20171002151056.30841-1-abologna@redhat.com> References: <20171002151056.30841-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [libvirt-jenkins-ci PATCH 01/18] ansible: Add initial support X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Mon, 02 Oct 2017 15:39:05 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This commit adds just enough to bootstrap Jenkins workers and install packages required to build any project, such as gcc and make. Ubuntu 12-16 are supported, even though they're not actually used in libvirt CI, because there's a lot of overlap between this and Travis CI, which only supports Ubuntu instead. Signed-off-by: Andrea Bolognani --- ansible/.gitignore | 3 + ansible/Makefile | 12 ++++ ansible/ansible.cfg | 8 +++ ansible/bootstrap.yml | 17 +++++ ansible/group_vars/all/main.yml | 8 +++ ansible/host_vars/libvirt-centos-6/main.yml | 3 + ansible/host_vars/libvirt-centos-7/main.yml | 3 + ansible/host_vars/libvirt-debian-8/main.yml | 3 + ansible/host_vars/libvirt-debian-9/main.yml | 3 + ansible/host_vars/libvirt-fedora-25/main.yml | 3 + ansible/host_vars/libvirt-fedora-26/main.yml | 3 + ansible/host_vars/libvirt-fedora-rawhide/main.yml | 3 + ansible/host_vars/libvirt-freebsd-11/main.yml | 10 +++ ansible/host_vars/libvirt-ubuntu-12/main.yml | 3 + ansible/host_vars/libvirt-ubuntu-14/main.yml | 3 + ansible/host_vars/libvirt-ubuntu-16/main.yml | 3 + ansible/inventory | 8 +++ ansible/site.yml | 17 +++++ ansible/tasks/base.yml | 77 +++++++++++++++++++= ++++ ansible/tasks/bootstrap.yml | 22 +++++++ ansible/tasks/facts.yml | 14 +++++ ansible/tasks/packages.yml | 11 ++++ ansible/vars/base/CentOS-6.yml | 13 ++++ ansible/vars/base/CentOS-7.yml | 13 ++++ ansible/vars/base/Debian-8.yml | 14 +++++ ansible/vars/base/Debian-9.yml | 14 +++++ ansible/vars/base/Fedora-25.yml | 15 +++++ ansible/vars/base/Fedora-26.yml | 15 +++++ ansible/vars/base/Fedora-Rawhide.yml | 15 +++++ ansible/vars/base/FreeBSD-11.yml | 11 ++++ ansible/vars/base/Ubuntu-12.yml | 13 ++++ ansible/vars/base/Ubuntu-14.yml | 13 ++++ ansible/vars/base/Ubuntu-16.yml | 14 +++++ 33 files changed, 387 insertions(+) create mode 100644 ansible/.gitignore create mode 100644 ansible/Makefile create mode 100644 ansible/ansible.cfg create mode 100644 ansible/bootstrap.yml create mode 100644 ansible/group_vars/all/main.yml create mode 100644 ansible/host_vars/libvirt-centos-6/main.yml create mode 100644 ansible/host_vars/libvirt-centos-7/main.yml create mode 100644 ansible/host_vars/libvirt-debian-8/main.yml create mode 100644 ansible/host_vars/libvirt-debian-9/main.yml create mode 100644 ansible/host_vars/libvirt-fedora-25/main.yml create mode 100644 ansible/host_vars/libvirt-fedora-26/main.yml create mode 100644 ansible/host_vars/libvirt-fedora-rawhide/main.yml create mode 100644 ansible/host_vars/libvirt-freebsd-11/main.yml create mode 100644 ansible/host_vars/libvirt-ubuntu-12/main.yml create mode 100644 ansible/host_vars/libvirt-ubuntu-14/main.yml create mode 100644 ansible/host_vars/libvirt-ubuntu-16/main.yml create mode 100644 ansible/inventory create mode 100644 ansible/site.yml create mode 100644 ansible/tasks/base.yml create mode 100644 ansible/tasks/bootstrap.yml create mode 100644 ansible/tasks/facts.yml create mode 100644 ansible/tasks/packages.yml create mode 100644 ansible/vars/base/CentOS-6.yml create mode 100644 ansible/vars/base/CentOS-7.yml create mode 100644 ansible/vars/base/Debian-8.yml create mode 100644 ansible/vars/base/Debian-9.yml create mode 100644 ansible/vars/base/Fedora-25.yml create mode 100644 ansible/vars/base/Fedora-26.yml create mode 100644 ansible/vars/base/Fedora-Rawhide.yml create mode 100644 ansible/vars/base/FreeBSD-11.yml create mode 100644 ansible/vars/base/Ubuntu-12.yml create mode 100644 ansible/vars/base/Ubuntu-14.yml create mode 100644 ansible/vars/base/Ubuntu-16.yml diff --git a/ansible/.gitignore b/ansible/.gitignore new file mode 100644 index 0000000..4a271f2 --- /dev/null +++ b/ansible/.gitignore @@ -0,0 +1,3 @@ +*.retry +*.swp +log diff --git a/ansible/Makefile b/ansible/Makefile new file mode 100644 index 0000000..39ebe52 --- /dev/null +++ b/ansible/Makefile @@ -0,0 +1,12 @@ +all: + +site: + @ansible-playbook site.yml + +bootstrap: + @ansible-playbook --ask-pass bootstrap.yml + +clean: + @rm -f *.retry log + +.PHONY: all site bootstrap clean diff --git a/ansible/ansible.cfg b/ansible/ansible.cfg new file mode 100644 index 0000000..ca02677 --- /dev/null +++ b/ansible/ansible.cfg @@ -0,0 +1,8 @@ +[defaults] +display_skipped_hosts =3D False +forks =3D 16 +inventory =3D ./inventory +log_path =3D ./log +nocows =3D 1 +pipelining =3D True +squash_actions =3D package diff --git a/ansible/bootstrap.yml b/ansible/bootstrap.yml new file mode 100644 index 0000000..67c359d --- /dev/null +++ b/ansible/bootstrap.yml @@ -0,0 +1,17 @@ +--- +- hosts: all + gather_facts: no + + tasks: + + # Bootstrap Ansible itself + - include: tasks/bootstrap.yml + + +- hosts: all + + tasks: + + # Prepare the base environment + - include: tasks/facts.yml + - include: tasks/base.yml diff --git a/ansible/group_vars/all/main.yml b/ansible/group_vars/all/main.= yml new file mode 100644 index 0000000..e8d3cb6 --- /dev/null +++ b/ansible/group_vars/all/main.yml @@ -0,0 +1,8 @@ +--- +ansible_user: root + +# Paths to various command. Can be overridden on a per-host basis +bash: /bin/bash +java: /usr/bin/java +make: /usr/bin/make +sudo: /usr/bin/sudo diff --git a/ansible/host_vars/libvirt-centos-6/main.yml b/ansible/host_var= s/libvirt-centos-6/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-centos-6/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/host_vars/libvirt-centos-7/main.yml b/ansible/host_var= s/libvirt-centos-7/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-centos-7/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/host_vars/libvirt-debian-8/main.yml b/ansible/host_var= s/libvirt-debian-8/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-debian-8/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/host_vars/libvirt-debian-9/main.yml b/ansible/host_var= s/libvirt-debian-9/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-debian-9/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/host_vars/libvirt-fedora-25/main.yml b/ansible/host_va= rs/libvirt-fedora-25/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-fedora-25/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/host_vars/libvirt-fedora-26/main.yml b/ansible/host_va= rs/libvirt-fedora-26/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-fedora-26/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/host_vars/libvirt-fedora-rawhide/main.yml b/ansible/ho= st_vars/libvirt-fedora-rawhide/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-fedora-rawhide/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/host_vars/libvirt-freebsd-11/main.yml b/ansible/host_v= ars/libvirt-freebsd-11/main.yml new file mode 100644 index 0000000..d405d58 --- /dev/null +++ b/ansible/host_vars/libvirt-freebsd-11/main.yml @@ -0,0 +1,10 @@ +--- +ansible_python_interpreter: /usr/local/bin/python2 + +bash: /usr/local/bin/bash +java: /usr/local/bin/java +make: /usr/local/bin/gmake +sudo: /usr/local/bin/sudo + +projects: + - base diff --git a/ansible/host_vars/libvirt-ubuntu-12/main.yml b/ansible/host_va= rs/libvirt-ubuntu-12/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-ubuntu-12/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/host_vars/libvirt-ubuntu-14/main.yml b/ansible/host_va= rs/libvirt-ubuntu-14/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-ubuntu-14/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/host_vars/libvirt-ubuntu-16/main.yml b/ansible/host_va= rs/libvirt-ubuntu-16/main.yml new file mode 100644 index 0000000..1602406 --- /dev/null +++ b/ansible/host_vars/libvirt-ubuntu-16/main.yml @@ -0,0 +1,3 @@ +--- +projects: + - base diff --git a/ansible/inventory b/ansible/inventory new file mode 100644 index 0000000..3becfa0 --- /dev/null +++ b/ansible/inventory @@ -0,0 +1,8 @@ +libvirt-centos-7 +libvirt-centos-6 +libvirt-debian-9 +libvirt-debian-8 +libvirt-fedora-rawhide +libvirt-fedora-26 +libvirt-fedora-25 +libvirt-freebsd-11 diff --git a/ansible/site.yml b/ansible/site.yml new file mode 100644 index 0000000..27af6de --- /dev/null +++ b/ansible/site.yml @@ -0,0 +1,17 @@ +--- +- hosts: all + + tasks: + + # Prepare the base environment + - include: tasks/facts.yml + - include: tasks/base.yml + + # Install build dependencies for each project + - include: tasks/packages.yml + with_items: + '{{ projects }}' + loop_control: + loop_var: project + when: + - projects is defined diff --git a/ansible/tasks/base.yml b/ansible/tasks/base.yml new file mode 100644 index 0000000..989c5a6 --- /dev/null +++ b/ansible/tasks/base.yml @@ -0,0 +1,77 @@ +--- +- name: Bootstrap the package module + command: dnf install -y python2-dnf + args: + creates: /usr/lib*/python2*/*-packages/dnf + when: + - os_name =3D=3D 'Fedora' + +- name: Bootstrap the package module + command: apt-get install -y python-apt + args: + creates: /usr/lib/python2*/*-packages/apt + when: + - ( os_name =3D=3D 'Debian' or + os_name =3D=3D 'Ubuntu' ) + +- name: Update installed packages + package: + name: '*' + state: latest + when: + - ( os_name =3D=3D 'CentOS' or + os_name =3D=3D 'Fedora' ) + +- name: Update installed packages + apt: + upgrade: dist + update_cache: yes + when: + - ( os_name =3D=3D 'Debian' or + os_name =3D=3D 'Ubuntu' ) + +- name: Update installed packages + shell: pkg update && pkg upgrade -y + when: + - os_name =3D=3D 'FreeBSD' + +- name: Install base packages + package: + name: '{{ item }}' + state: present + with_items: + - bash + - git + - screen + - sudo + - vim + +- name: Remove unwanted packages + package: + name: '{{ item }}' + state: absent + with_items: + - nano + +- name: Permit file editing on SELinux-enabled systems + package: + name: libselinux-python + state: present + when: + - ( os_name =3D=3D 'CentOS' or + os_name =3D=3D 'Fedora' ) + +- name: Configure hostname + hostname: + name: '{{ inventory_hostname }}' + +- name: Configure root shell + user: + name: root + shell: '{{ bash }}' + +- name: Configure ssh access for the root user + authorized_key: + user: root + key: '{{ lookup("file", lookup("env", "HOME") + "/.ssh/id_rsa.pub") }}' + state: present diff --git a/ansible/tasks/bootstrap.yml b/ansible/tasks/bootstrap.yml new file mode 100644 index 0000000..24848c8 --- /dev/null +++ b/ansible/tasks/bootstrap.yml @@ -0,0 +1,22 @@ +--- +- name: Bootstrap the pkgng package manager + raw: env ASSUME_ALWAYS_YES=3DYES pkg bootstrap + when: + - inventory_hostname|search('freebsd') + +- name: Bootstrap Ansible + raw: yum install -y python2 + when: + - ( inventory_hostname|search('centos') or + inventory_hostname|search('fedora') ) + +- name: Bootstrap Ansible + raw: apt-get install -y python + when: + - ( inventory_hostname|search('debian') or + inventory_hostname|search('ubuntu') ) + +- name: Bootstrap Ansible + raw: pkg install -y python2 + when: + - inventory_hostname|search('freebsd') diff --git a/ansible/tasks/facts.yml b/ansible/tasks/facts.yml new file mode 100644 index 0000000..223aa1e --- /dev/null +++ b/ansible/tasks/facts.yml @@ -0,0 +1,14 @@ +--- +- name: Set additional facts + set_fact: + os_name: '{{ ansible_distribution }}' + os_version: '{{ ansible_distribution_major_version }}' + when: + - ansible_distribution_release !=3D 'Rawhide' + +- name: Set additional facts + set_fact: + os_name: '{{ ansible_distribution }}' + os_version: Rawhide + when: + - ansible_distribution_release =3D=3D 'Rawhide' diff --git a/ansible/tasks/packages.yml b/ansible/tasks/packages.yml new file mode 100644 index 0000000..630d794 --- /dev/null +++ b/ansible/tasks/packages.yml @@ -0,0 +1,11 @@ +--- +- name: '{{ project }}: Load variables' + include_vars: + file: 'vars/{{ project }}/{{ os_name }}-{{ os_version }}.yml' + +- name: '{{ project }}: Install packages' + package: + name: '{{ item }}' + state: present + with_items: + '{{ packages }}' diff --git a/ansible/vars/base/CentOS-6.yml b/ansible/vars/base/CentOS-6.yml new file mode 100644 index 0000000..b107a8f --- /dev/null +++ b/ansible/vars/base/CentOS-6.yml @@ -0,0 +1,13 @@ +--- +packages: + - autoconf + - automake + - gcc + - gettext + - gettext-devel + - glibc-devel + - libtool + - make + - patch + - pkgconfig + - rpm-build diff --git a/ansible/vars/base/CentOS-7.yml b/ansible/vars/base/CentOS-7.yml new file mode 100644 index 0000000..b107a8f --- /dev/null +++ b/ansible/vars/base/CentOS-7.yml @@ -0,0 +1,13 @@ +--- +packages: + - autoconf + - automake + - gcc + - gettext + - gettext-devel + - glibc-devel + - libtool + - make + - patch + - pkgconfig + - rpm-build diff --git a/ansible/vars/base/Debian-8.yml b/ansible/vars/base/Debian-8.yml new file mode 100644 index 0000000..b36ade7 --- /dev/null +++ b/ansible/vars/base/Debian-8.yml @@ -0,0 +1,14 @@ +--- +packages: + - autoconf + - automake + - autopoint + - ccache + - gcc + - gettext + - libc6-dev + - libtool + - libtool-bin + - make + - patch + - pkgconf diff --git a/ansible/vars/base/Debian-9.yml b/ansible/vars/base/Debian-9.yml new file mode 100644 index 0000000..b36ade7 --- /dev/null +++ b/ansible/vars/base/Debian-9.yml @@ -0,0 +1,14 @@ +--- +packages: + - autoconf + - automake + - autopoint + - ccache + - gcc + - gettext + - libc6-dev + - libtool + - libtool-bin + - make + - patch + - pkgconf diff --git a/ansible/vars/base/Fedora-25.yml b/ansible/vars/base/Fedora-25.= yml new file mode 100644 index 0000000..733efa8 --- /dev/null +++ b/ansible/vars/base/Fedora-25.yml @@ -0,0 +1,15 @@ +--- +packages: + - autoconf + - automake + - ccache + - cppi + - gcc + - gettext + - gettext-devel + - glibc-devel + - libtool + - make + - patch + - pkgconfig + - rpm-build diff --git a/ansible/vars/base/Fedora-26.yml b/ansible/vars/base/Fedora-26.= yml new file mode 100644 index 0000000..733efa8 --- /dev/null +++ b/ansible/vars/base/Fedora-26.yml @@ -0,0 +1,15 @@ +--- +packages: + - autoconf + - automake + - ccache + - cppi + - gcc + - gettext + - gettext-devel + - glibc-devel + - libtool + - make + - patch + - pkgconfig + - rpm-build diff --git a/ansible/vars/base/Fedora-Rawhide.yml b/ansible/vars/base/Fedor= a-Rawhide.yml new file mode 100644 index 0000000..733efa8 --- /dev/null +++ b/ansible/vars/base/Fedora-Rawhide.yml @@ -0,0 +1,15 @@ +--- +packages: + - autoconf + - automake + - ccache + - cppi + - gcc + - gettext + - gettext-devel + - glibc-devel + - libtool + - make + - patch + - pkgconfig + - rpm-build diff --git a/ansible/vars/base/FreeBSD-11.yml b/ansible/vars/base/FreeBSD-1= 1.yml new file mode 100644 index 0000000..e8c6315 --- /dev/null +++ b/ansible/vars/base/FreeBSD-11.yml @@ -0,0 +1,11 @@ +--- +packages: + - autoconf + - automake + - ccache + - cppi + - gettext + - gettext-tools + - gmake + - libtool + - pkgconf diff --git a/ansible/vars/base/Ubuntu-12.yml b/ansible/vars/base/Ubuntu-12.= yml new file mode 100644 index 0000000..3b87b33 --- /dev/null +++ b/ansible/vars/base/Ubuntu-12.yml @@ -0,0 +1,13 @@ +--- +packages: + - autoconf + - automake + - autopoint + - ccache + - gcc + - gettext + - libc6-dev + - libtool + - make + - patch + - pkg-config diff --git a/ansible/vars/base/Ubuntu-14.yml b/ansible/vars/base/Ubuntu-14.= yml new file mode 100644 index 0000000..da5a6ff --- /dev/null +++ b/ansible/vars/base/Ubuntu-14.yml @@ -0,0 +1,13 @@ +--- +packages: + - autoconf + - automake + - autopoint + - ccache + - gcc + - gettext + - libc6-dev + - libtool + - make + - patch + - pkgconf diff --git a/ansible/vars/base/Ubuntu-16.yml b/ansible/vars/base/Ubuntu-16.= yml new file mode 100644 index 0000000..b36ade7 --- /dev/null +++ b/ansible/vars/base/Ubuntu-16.yml @@ -0,0 +1,14 @@ +--- +packages: + - autoconf + - automake + - autopoint + - ccache + - gcc + - gettext + - libc6-dev + - libtool + - libtool-bin + - make + - patch + - pkgconf --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list