diff --git a/builder/pwnagotchi.yml b/builder/pwnagotchi.yml index 77a5cdf..a8dca14 100644 --- a/builder/pwnagotchi.yml +++ b/builder/pwnagotchi.yml @@ -3,29 +3,135 @@ - 127.0.0.1 become: yes vars: - pwn_hostname: "{{ lookup('env', 'PWN_HOSTNAME') | default('pwnagotchi', true) }}" - pwn_version: "{{ lookup('env', 'PWN_VERSION') | default('master', true) }} " - bettercap_query: "assets[?contains(name, 'armv6l')].browser_download_url" + pwnagotchi: + hostname: "{{ lookup('env', 'PWN_HOSTNAME') | default('pwnagotchi', true) }}" + version: "{{ lookup('env', 'PWN_VERSION') | default('master', true) }} " + system: + boot_options: + - "dtoverlay=dwc2" + - "dtparam=spi=on" + - "dtoverlay=spi1-3cs" + - "dtoverlay=pi3-disable-bt" + - "dtparam=audio=off" + services: + enable: + - dphys-swapfile.service + - getty@ttyGS0.service + disable: + - apt-daily.timer + - apt-daily.service + - apt-daily-upgrade.timer + - apt-daily-upgrade.service + - wpa_supplicant.service + - bluetooth.service + - triggerhappy.service + - ifup@wlan0.service + packages: + pip: + install: + - inky + - smbus2 + - absl-py>=0.1.6 + - enum34 + - gast==0.2.2 + - google_pasta + - opt_einsum + - scapy + - gym + - keras_applications>=1.0.6 + - keras_preprocessing>=1.0.5 + - stable-baselines + - file_read_backwards + - tensorflow_estimator>=1.14.0,<1.15.0 + - tensorboard>=1.13.0,<1.14.0 + apt: + remove: + - rasberrypi-net-mods + - dhcpcd5 + - triggerhappy + - wpa_supplicant + - nfs-common + install: + - vim + - screen + - golang + - git + - build-essential + - python3-pip + - unzip + - gawk + - libopenmpi-dev + - libatlas-base-dev + - libjasper-dev + - libqtgui4 + - libqt4-test + - libopenjp2-7 + - tcpdump + - lsof + - libilmbase23 + - libopenexr23 + - libgstreamer1.0-0 + - libavcodec58 + - libavformat58 + - libswscale5 + - libpcap-dev + - libusb-1.0-0-dev + - libnetfilter-queue-dev + - dphys-swapfile + - kalipi-kernel + - kalipi-bootloader + - kalipi-re4son-firmware + - kalipi-kernel-headers + - libraspberrypi0 + - libraspberrypi-dev + - libraspberrypi-doc + - libraspberrypi-bin + - fonts-dejavu + - fonts-dejavu-core + - fonts-dejavu-extra + - python3-crypto + - python3-requests + - python3-yaml + - python3-smbus + - python3-inkyphat + - python3-numpy + - python3-pil + - python3-tweepy + - python3-opencv + - python3-termcolor + - python3-astor + - python3-backports.weakref + - python3-h5py + - python3-six + - python3-protobuf + - python3-wrapt + - python3-wheel + - python3-mock + - python3-scipy + - python3-cloudpickle + + bettercap: + query: "assets[?contains(name, 'armv6l')].browser_download_url" tasks: - name: selected hostname debug: - msg: "{{ pwn_hostname }}" + msg: "{{ pwnagotchi.hostname }}" - name: build version debug: - msg: "{{ pwn_version }}" + msg: "{{ pwnagotchi.version }}" - name: change hostname hostname: - name: "{{pwn_hostname}}" + name: "{{pwnagotchi.hostname}}" - name: add hostname to /etc/hosts lineinfile: dest: /etc/hosts regexp: '^127\.0\.0\.1[ \t]+localhost' - line: '127.0.0.1 localhost {{pwn_hostname}} {{pwn_hostname}}.local' + line: '127.0.0.1 localhost {{pwnagotchi.hostname}} {{pwnagotchi.hostname}}.local' state: present - name: Add re4son-kernel repo key @@ -44,16 +150,9 @@ - name: remove unecessary apt packages apt: - name: "{{ packages }}" + name: "{{ packages.apt.remove }}" state: absent purge: yes - vars: - packages: - - rasberrypi-net-mods - - dhcpcd5 - - triggerhappy - - wpa_supplicant - - nfs-common - name: upgrade apt distro apt: @@ -61,126 +160,22 @@ - name: install packages apt: - name: "{{ packages }}" + name: "{{ packages.apt.install }}" state: present - vars: - packages: - - vim - - screen - - golang - - git - - build-essential - - python3-pip - - unzip - - gawk - - libopenmpi-dev - - libatlas-base-dev - - libjasper-dev - - libqtgui4 - - libqt4-test - - libopenjp2-7 - - tcpdump - - lsof - - libilmbase23 - - libopenexr23 - - libgstreamer1.0-0 - - libavcodec58 - - libavformat58 - - libswscale5 - - libpcap-dev - - libusb-1.0-0-dev - - libnetfilter-queue-dev - - dphys-swapfile - - kalipi-kernel - - kalipi-bootloader - - kalipi-re4son-firmware - - kalipi-kernel-headers - - libraspberrypi0 - - libraspberrypi-dev - - libraspberrypi-doc - - libraspberrypi-bin - - fonts-dejavu - - fonts-dejavu-core - - fonts-dejavu-extra - - python3-crypto - - python3-requests - - python3-yaml - - python3-smbus - - python3-inkyphat - - python3-numpy - - python3-pil - - python3-tweepy - - python3-opencv - - python3-termcolor - - python3-astor - - python3-backports.weakref - - python3-h5py - - python3-six - - python3-protobuf - - python3-wrapt - - python3-wheel - - python3-mock - - python3-scipy - - python3-cloudpickle - name: configure dphys-swapfile file: path: /etc/dphys-swapfile content: "CONF_SWAPSIZE=1024" - - name: disable unecessary services - systemd: - name: "{{services}}" - state: stopped - enabled: no - vars: - services: - - apt-daily.timer - - apt-daily.service - - apt-daily-upgrade.timer - - apt-daily-upgrade.service - - wpa_supplicant.service - - bluetooth.service - - triggerhappy.service - - ifup@wlan0.service - - - name: enable dphys-swapfile service - systemd: - name: dphys-swapfile.service - state: started - enabled: yes - - - name: enable gadget serial port service - systemd: - name: getty@ttyGS0.service - state: started - enabled: yes - - name: acquire python3 pip target command: "python3 -c 'import sys;print(sys.path.pop())'" register: pip_target - name: install pip packages pip: - name: "{{ packages }}" + name: "{{packages.pip.install}}" extra_args: "--no-deps --extra-index-url=https://www.piwheels.hostedpi.com/simple/ --prefer-binary --no-cache-dir --platform=armv6l --target={{ pip_target.stdout }}" - vars: - packages: - - inky - - smbus2 - - absl-py>=0.1.6 - - enum34 - - gast==0.2.2 - - google_pasta - - opt_einsum - - scapy - - gym - - keras_applications>=1.0.6 - - keras_preprocessing>=1.0.5 - - stable-baselines - - file_read_backwards - - tensorflow_estimator>=1.14.0,<1.15.0 - - tensorboard>=1.13.0,<1.14.0 - name: install grpcio command: "pip3 install --no-deps --extra-index-url=https://www.piwheels.hostedpi.com/simple/ --no-cache-dir --prefer-binary --platform=armv6l --only-binary=:all: --target={{ pip_target.stdout }} https://www.piwheels.hostedpi.com/simple/grpcio/grpcio-1.24.1-cp37-cp37m-linux_armv6l.whl" @@ -196,7 +191,7 @@ - name: download and install bettercap unarchive: - src: "{{ bettercap_release.content | from_json | json_query(bettercap_query) | first }}" + src: "{{ bettercap_release.content | from_json | json_query(bettercap.query) | first }}" dest: /usr/bin remote_src: yes exclude: @@ -324,11 +319,7 @@ insertafter: EOF line: '{{ item }}' with_items: - - "dtoverlay=dwc2" - - "dtparam=spi=on" - - "dtoverlay=spi1-3cs" - - "dtoverlay=pi3-disable-bt" - - "dtparam=audio=off" + - "{{system.boot_options}}" - name: change root partition replace: @@ -356,7 +347,7 @@ - name: configure motd copy: dest: /etc/motd - content: "(◕‿‿◕) {{pwn_hostname}} (pwnagotchi-{{pwn_version}})" + content: "(◕‿‿◕) {{pwnagotchi.hostname}} (pwnagotchi-{{pwnagotchi.version}})" - name: clean apt cache apt: @@ -366,16 +357,21 @@ apt: autoremove: yes + - name: enable services + systemd: + name: "{{services.enable}}" + state: started + enabled: yes + + - name: disable unecessary services + systemd: + name: "{{services.disable}}" + state: stopped + enabled: no + - name: remove ssh keys file: state: absent path: "{{item}}" - with_items: - - /etc/ssh/ssh_host_rsa_key - - /etc/ssh/ssh_host_rsa_key.pub - - /etc/ssh/ssh_host_dsa_key - - /etc/ssh/ssh_host_dsa_key.pub - - /etc/ssh/ssh_host/ecdsa_key - - /etc/ssh/ssh_host/ecdsa_key.pub - - /etc/ssh/ssh_host_ed25519_key - - /etc/ssh/ssh_host_ed25519_key.pub + with_fileglob: + - "/etc/ssh/ssh_host*_key*"