--- - name: Check that custom git variables are defined. assert: that: - "gpg_key_name is defined" - "gpg_key_name != ''" - "git_name is defined" - "git_name != ''" - "git_email is defined" - "git_email != ''" msg: Please set your gpg_key_name, git_name and git_email in gitian.yml. - name: Install Gitian dependencies. apt: name: - bridge-utils - curl - debootstrap - git-core - gnupg2 - kpartx - lintian - lxc - make - python3-cheetah - qemu-utils - ruby - sudo state: present update_cache: yes - name: Install more recent version of apt-cacher-ng apt: name: apt-cacher-ng state: latest update_cache: yes default_release: bullseye-backports - name: Install ruamel.yaml pip: name: "ruamel.yaml>=0.15.0,<0.16.0" - name: Set up the Gitian build user with sudo. user: name: "{{ gitian_user }}" shell: /bin/bash groups: sudo state: present - name: Install /etc/rc.local. template: src: rc.local dest: /etc/rc.local owner: root group: root mode: "0755" - name: Enable IP forwarding, etc. sysctl: name: "{{ item }}" value: 1 sysctl_set: yes state: present reload: yes with_items: - net.ipv4.ip_forward - kernel.unprivileged_userns_clone - name: Enable cgroup clone_children. command: "echo 1 > /sys/fs/cgroup/cpuset/cgroup.clone_children" - name: Add cgroup fs for LXC. lineinfile: dest: /etc/fstab regexp: '^cgroup' line: 'cgroup /sys/fs/cgroup cgroup defaults 0 0' state: present - name: Install profile with environment variables. template: src: profile dest: "/home/{{ gitian_user }}/.profile" owner: "{{ gitian_user }}" group: "{{ gitian_user }}" mode: "0644" - name: Install sudoers file for LXC. template: src: gitian-lxc dest: /etc/sudoers.d/gitian-lxc owner: root group: root mode: "0644" - name: Install lxc-net configuration. template: src: lxc-net dest: /etc/default/lxc-net owner: root group: root mode: "0644" - name: Clone git repository for Gitian builder. git: repo: "{{ gitian_builder_url }}" dest: "/home/{{ gitian_user }}/gitian-builder" version: "{{ gitian_builder_version }}" force: yes become_user: "{{ gitian_user }}" - include_tasks: keys.yml tags: keys - name: Clone git repository for Zcash. git: repo: "{{ zcash_git_repo_url }}" dest: "/home/{{ gitian_user }}/zcash" version: "{{ zcash_version }}" force: yes become_user: "{{ gitian_user }}" - name: Clone git repository for Gitian signatures. git: repo: "{{ zcash_gitian_sigs_repo }}" dest: "/home/{{ gitian_user }}/gitian.sigs" version: master force: yes become_user: "{{ gitian_user }}" - name: Set Git username. command: "git config --global user.name \"{{ git_name }}\"" become_user: "{{ gitian_user }}" - name: Set Git email address. command: "git config --global user.email '{{ git_email }}'" become_user: "{{ gitian_user }}" - name: Create bin directory under gitian_user home directory file: state: directory dest: "/home/{{ gitian_user }}/bin" mode: "0755" - name: Copy explode_yaml_file.py copy: src: explode_yaml_file.py dest: "/home/{{ gitian_user }}/bin/explode_yaml_file.py" owner: "{{ gitian_user }}" group: "{{ gitian_user }}" mode: "0755" - name: Copy Gitian build script. template: src: gitian-build.sh dest: "/home/{{ gitian_user }}/gitian-build.sh" owner: "{{ gitian_user }}" group: "{{ gitian_user }}" mode: "0755" tags: script - name: Copy Parallel Gitian build script. template: src: gitian-parallel-build.sh dest: "/home/{{ gitian_user }}/gitian-parallel-build.sh" owner: "{{ gitian_user }}" group: "{{ gitian_user }}" mode: "0755" tags: script - name: Clean the apt cache to free up space. apt: autoclean: yes - include_tasks: gpg.yml tags: gpg when: gpg_key_id is defined and gpg_key_id != '' - name: Display help message. debug: msg: >- Finished bootstrapping the Gitian host VM! To enter the environment, run `vagrant ssh zcash-build` and then use `./gitian-build.sh` to kick off a build. For parallelism, use `./gitian-parallel-build.sh`.