- name: install dev tools ansible.builtin.apt: name={{ item }} state=present become: true with_items: - autoconf - automake - build-essential - clang - cloc - cmake - devscripts - erlang - gcc - golang-google-genproto-dev - golang-goprotobuf-dev - golang-protobuf-extensions-dev - git - ipython3 - libprotobuf-dev - lua5.3 - luarocks - make - protobuf-compiler - python3-pip - sbcl - texinfo - tig - zlib1g - zlib1g-dev ## golang - name: install godeb become: true ansible.builtin.unarchive: src: "{{ role_path }}/files/godeb-amd64.tar.gz" dest: /usr/local/bin creates: /usr/local/bin/godeb - name: install go become: true ansible.builtin.command: godeb install "{{ go_version }}" args: chdir: /tmp creates: /usr/local/go/bin/go ## bazel - name: "install bazelisk v{{ bazelisk_version }}" ansible.builtin.get_url: checksum: sha256:168851e70cf5f95c0e215e7f3aaca5132ffc3c8dd8f585a4157b0be2b53cfe32 dest: "/home/{{ laptop_user }}/.local/bin/bazelisk" mode: 0755 url: "https://github.com/bazelbuild/bazelisk/releases/download/v{{ bazelisk_version }}/bazelisk-linux-amd64" # the process of getting buildifier in an automated way is onerous, ergo # this hack. - name: install buildifier ansible.builtin.unarchive: src: "{{ role_path }}/files/buildifier.tgz" dest: "/home/{{ laptop_user }}/.local/bin" creates: "/home/{{ laptop_user }}/.local/bin/buildifier" ## virtualization and containerization - name: ensure repository key is installed when: dev_virt | dev_full become: true ansible.builtin.apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - name: ensure docker registry is available when: dev_virt | dev_full become: true ansible.builtin.apt_repository: repo='deb https://download.docker.com/linux/ubuntu bionic stable' state=present - name: rootfs building tools when: dev_virt | dev_full ansible.builtin.apt: name={{ item }} state=present become: true with_items: - dracut - fusecram - genext2fs - genisoimage - genromfs - makebootfat - mmdebstrap - proot - pxelinux - syslinux - syslinux-efi - syslinux-utils - name: install container and virtualisation management when: dev_virt | dev_full become: true ansible.builtin.apt: name={{ item }} state=present with_items: - conman - crun - docker-ce - docker-compose - ipxe-qemu - kvmtool - podman - qemubuilder - qemu-efi-aarch64 - qemu-efi-arm - qemu-system-arm - qemu-system - qemu-system-x86 - qemu-system-gui - qemu-user-static - sbuild-qemu - seabios - u-boot-qemu - virt-manager - virt-top notify: "restart docker service" - name: Ensure kvm group exists when: dev_virt | dev_full become: true ansible.builtin.group: name: kvm state: present - name: Ensure docker group exists when: dev_virt | dev_full become: true ansible.builtin.group: name: docker state: present - name: add laptop user {{ laptop_user }} to docker group when: dev_virt | dev_full become: true ansible.builtin.user: name: "{{ laptop_user }}" append: true groups: - docker ## embedded dev stuff - name: installed embedded dev tools when: dev_embedded | dev_full ansible.builtin.apt: name={{ item }} state=present become: true with_items: - avr-libc - avrdude - binutils-arm-none-eabi - binutils-arm-linux-gnueabi - binutils-arm-linux-gnueabihf - binutils-avr - gcc-arm-none-eabi - gcc-arm-linux-gnueabi - gcc-arm-linux-gnueabihf - gcc-avr - libstdc++-arm-none-eabi-newlib - picocom - pulseview - sigrok ## documentation stuff - name: install documentation tooling become: true ansible.builtin.apt: name={{ item }} state=present with_items: - asciidoc - doxygen - pelican - pelican-doc - python3-sphinx - scdoc ## vscode - name: add VS Code repo key when: dev_full become: true ansible.builtin.apt_key: url: https://packages.microsoft.com/keys/microsoft.asc state: present validate_certs: yes - name: add VS Code repo when: dev_full become: true ansible.builtin.apt_repository: repo: deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main state: present validate_certs: yes - name: install VS Code when: dev_full become: true ansible.builtin.apt: name=code state=present ## rust - name: check if cargo is installed when: dev_full shell: command -v cargo register: cargo_exists ignore_errors: yes - name: Download Installer when: dev_full and cargo_exists is failed get_url: url: https://sh.rustup.rs dest: /tmp/sh.rustup.rs mode: '0755' force: 'yes' - name: install rust/cargo when: dev_full and cargo_exists is failed shell: /tmp/sh.rustup.rs -y ## AI/ML stuff - name: install machine learning and AI tools when: dev_full become: true ansible.builtin.apt: name: "{{item}}" state: present with_items: - jupyter-notebook - name: install machine learning and AI python packages when: dev_full ansible.builtin.pip: executable: pip3 name: "{{item}}" extra_args: --user with_items: - Keras - numpy - scikit-learn - scipy - tensorflow - torch