Initial import.
This commit is contained in:
2
roles/development/defaults/main.yml
Normal file
2
roles/development/defaults/main.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
go_version: 1.20.3
|
||||
bazelisk_version: 1.16.0
|
||||
BIN
roles/development/files/buildifier.tgz
Normal file
BIN
roles/development/files/buildifier.tgz
Normal file
Binary file not shown.
BIN
roles/development/files/godeb-amd64.tar.gz
Normal file
BIN
roles/development/files/godeb-amd64.tar.gz
Normal file
Binary file not shown.
6
roles/development/handlers/main.yml
Normal file
6
roles/development/handlers/main.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
- name: Restart docker service
|
||||
become: true
|
||||
ansible.builtin.service:
|
||||
name: docker
|
||||
state: restarted
|
||||
listen: "restart docker service"
|
||||
210
roles/development/tasks/main.yml
Normal file
210
roles/development/tasks/main.yml
Normal file
@@ -0,0 +1,210 @@
|
||||
- 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
|
||||
become: true
|
||||
ansible.builtin.apt_key:
|
||||
url: https://download.docker.com/linux/ubuntu/gpg
|
||||
state: present
|
||||
|
||||
- name: ensure docker registry is available
|
||||
become: true
|
||||
ansible.builtin.apt_repository: repo='deb https://download.docker.com/linux/ubuntu bionic stable' state=present
|
||||
|
||||
- name: rootfs building tools
|
||||
ansible.builtin.apt: name={{ item }} state=present
|
||||
become: true
|
||||
with_items:
|
||||
- dracut
|
||||
- fusecram
|
||||
- genext2fs
|
||||
- genisoimage
|
||||
- genromfs
|
||||
- initramfs-tools
|
||||
- makebootfat
|
||||
- mmdebstrap
|
||||
- proot
|
||||
- pxelinux
|
||||
- syslinux
|
||||
- syslinux-efi
|
||||
- syslinux-utils
|
||||
|
||||
- name: install container and virtualisation management
|
||||
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
|
||||
become: true
|
||||
ansible.builtin.group:
|
||||
name: kvm
|
||||
state: present
|
||||
|
||||
- name: Ensure docker group exists
|
||||
become: true
|
||||
ansible.builtin.group:
|
||||
name: docker
|
||||
state: present
|
||||
|
||||
- name: add laptop user {{ laptop_user }} to docker group
|
||||
become: true
|
||||
ansible.builtin.user:
|
||||
name: "{{ laptop_user }}"
|
||||
append: true
|
||||
groups:
|
||||
- docker
|
||||
|
||||
## embedded dev stuff
|
||||
- name: installed embedded dev tools
|
||||
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
|
||||
become: true
|
||||
ansible.builtin.apt_key:
|
||||
url: https://packages.microsoft.com/keys/microsoft.asc
|
||||
state: present
|
||||
validate_certs: yes
|
||||
|
||||
- name: add VS Code repo
|
||||
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
|
||||
become: true
|
||||
ansible.builtin.apt: name=code state=present
|
||||
|
||||
## AI/ML stuff
|
||||
|
||||
- name: install machine learning and AI tools
|
||||
become: true
|
||||
ansible.builtin.apt:
|
||||
name: "{{item}}"
|
||||
state: present
|
||||
with_items:
|
||||
- jupyter-notebook
|
||||
|
||||
- name: install machine learning and AI python packages
|
||||
ansible.builtin.pip:
|
||||
executable: pip3
|
||||
name: "{{item}}"
|
||||
extra_args: --user
|
||||
with_items:
|
||||
- Keras
|
||||
- numpy
|
||||
- scikit-learn
|
||||
- scipy
|
||||
- tensorflow
|
||||
- torch
|
||||
Reference in New Issue
Block a user