2018-03-06 13:07:16 +00:00
|
|
|
---
|
|
|
|
# gsm tester would only need the libraries, not the dev packages.
|
|
|
|
# But the name of the -dev packages are more stable over multiple release.
|
2018-06-05 12:29:13 +00:00
|
|
|
|
|
|
|
- name: update apt
|
2018-03-06 13:07:16 +00:00
|
|
|
apt:
|
|
|
|
cache_valid_time: 3600
|
|
|
|
update_cache: yes
|
2018-06-05 12:29:13 +00:00
|
|
|
|
|
|
|
- name: install osmocom runtime dependencies
|
|
|
|
apt:
|
|
|
|
name: "{{ item }}"
|
2018-03-06 13:07:16 +00:00
|
|
|
with_items:
|
|
|
|
- build-essential
|
|
|
|
- git
|
|
|
|
- automake
|
|
|
|
- libdbi-dev
|
|
|
|
- libdbd-sqlite3
|
|
|
|
- sqlite3
|
|
|
|
- libsctp-dev
|
|
|
|
- libortp-dev
|
|
|
|
- libpcap-dev
|
|
|
|
- libc-ares-dev
|
|
|
|
- libtool
|
|
|
|
- shtool
|
|
|
|
- pkg-config
|
|
|
|
- libtalloc-dev
|
|
|
|
- libpcsclite-dev
|
|
|
|
- libgnutls28-dev
|
|
|
|
- libmnl-dev
|
|
|
|
- libssl-dev
|
|
|
|
- libczmq-dev
|
|
|
|
- libsofia-sip-ua-glib-dev
|
|
|
|
- libsqlite3-dev
|
|
|
|
- libasound2-dev
|
2018-12-28 13:48:24 +00:00
|
|
|
- liblua5.3-dev
|
2018-12-28 14:54:19 +00:00
|
|
|
- lua-socket
|
2018-03-06 13:07:16 +00:00
|
|
|
|
2020-01-29 18:57:06 +00:00
|
|
|
# mdbus2 is not available in debian10. TODO: compile it for >9
|
|
|
|
- name: install mdbus2
|
|
|
|
apt:
|
|
|
|
name: "{{ item }}"
|
|
|
|
with_items:
|
|
|
|
- mdbus2
|
|
|
|
when: ansible_distribution == 'Debian' and ansible_distribution_version <= '9'
|
|
|
|
|
2020-01-29 13:33:44 +00:00
|
|
|
- name: install srsLTE runtime dependencies
|
|
|
|
apt:
|
|
|
|
name: "{{ item }}"
|
|
|
|
with_items:
|
|
|
|
- cmake
|
|
|
|
- libfftw3-dev
|
|
|
|
- libmbedtls-dev
|
|
|
|
- libboost-program-options-dev
|
|
|
|
- libconfig++-dev
|
|
|
|
- libsctp-dev
|
|
|
|
- libpcsclite-dev
|
|
|
|
- libuhd-dev
|
|
|
|
- libczmq-dev
|
|
|
|
|
2018-03-06 13:07:16 +00:00
|
|
|
- name: install ofono build dependencies
|
|
|
|
apt:
|
|
|
|
name: ofono
|
|
|
|
state: build-dep
|
|
|
|
|
|
|
|
- name: install libqmi-glib a dependency of sysmocom ofono
|
|
|
|
apt:
|
|
|
|
name: libqmi-glib-dev
|
|
|
|
|
|
|
|
- name: install uhub dependencies
|
|
|
|
apt:
|
|
|
|
name: "{{ item }}"
|
|
|
|
with_items:
|
|
|
|
- libusb-1.0-0-dev
|
|
|
|
|
|
|
|
- name: setup uhubctl repository
|
|
|
|
git:
|
|
|
|
repo: "https://github.com/mvp/uhubctl.git"
|
|
|
|
dest: /root/uhubctl
|
|
|
|
version: master
|
|
|
|
clone: yes
|
|
|
|
update: no
|
|
|
|
|
|
|
|
- name: build uhubctl
|
|
|
|
shell: |
|
|
|
|
make && \
|
|
|
|
make install
|
|
|
|
args:
|
|
|
|
chdir: /root/uhubctl
|
|
|
|
creates: /usr/sbin/uhubctl
|
|
|
|
|
|
|
|
# TODO: move this into restart-modems.d directory
|
|
|
|
- name: copy quad_modem_power_cycle.sh
|
|
|
|
template:
|
|
|
|
src: quad_modem_power_cycle.sh
|
|
|
|
dest: /usr/local/bin/quad_modem_power_cycle.sh
|
|
|
|
mode: 0755
|
|
|
|
tags:
|
|
|
|
- ofono
|
|
|
|
|
|
|
|
- name: setup ofono repository
|
|
|
|
git:
|
|
|
|
repo: 'git://git.sysmocom.de/ofono'
|
|
|
|
dest: /root/ofono
|
|
|
|
version: osmo-gsm-tester
|
|
|
|
clone: yes
|
|
|
|
update: no
|
|
|
|
tags:
|
|
|
|
- ofono
|
|
|
|
|
|
|
|
- name: build ofono
|
|
|
|
shell: |
|
|
|
|
./bootstrap && \
|
|
|
|
CFLAGS="-g" ./configure --disable-bluez4 && \
|
|
|
|
CFLAGS="-g" make -j3 && \
|
|
|
|
make install && \
|
|
|
|
systemctl daemon-reload
|
|
|
|
args:
|
|
|
|
chdir: /root/ofono
|
|
|
|
creates: /usr/local/sbin/ofonod
|
|
|
|
tags:
|
|
|
|
- ofono
|
|
|
|
|
|
|
|
- name: ensure ofono is started
|
|
|
|
service:
|
|
|
|
name: ofono
|
|
|
|
state: started
|
|
|
|
enabled: yes
|
|
|
|
tags:
|
|
|
|
- ofono
|
|
|
|
|
2020-02-11 12:47:04 +00:00
|
|
|
# patchelf 0.9 available in debian has bugs with certain binaries. Version 0.10
|
|
|
|
# fails on other binaries, so we need both 0.9 and 0.10 versions installed.
|
|
|
|
- name: setup patchelf v0.10 repository
|
|
|
|
git:
|
|
|
|
repo: 'https://github.com/NixOS/patchelf.git'
|
|
|
|
dest: /root/patchelf
|
|
|
|
version: "0.10"
|
|
|
|
clone: yes
|
|
|
|
update: no
|
|
|
|
tags:
|
|
|
|
- patchelf
|
|
|
|
|
|
|
|
- name: build patchelf v0.10
|
|
|
|
shell: |
|
|
|
|
autoreconf -fi && \
|
|
|
|
./configure --prefix=/opt && \
|
|
|
|
make && \
|
|
|
|
mkdir -p /opt/bin/ && \
|
|
|
|
cp src/patchelf /opt/bin/patchelf-v0.10
|
|
|
|
args:
|
|
|
|
chdir: /root/patchelf
|
|
|
|
creates: /opt/bin/patchelf-v0.10
|
|
|
|
tags:
|
|
|
|
- patchelf
|
|
|
|
|
2018-03-06 13:07:16 +00:00
|
|
|
- name: install gsm tester dependencies
|
|
|
|
apt:
|
|
|
|
name: "{{ item }}"
|
|
|
|
with_items:
|
|
|
|
- dbus
|
|
|
|
- tcpdump
|
|
|
|
- sqlite3
|
|
|
|
- python3
|
2020-02-03 15:03:45 +00:00
|
|
|
- python3-setuptools
|
2018-03-06 13:07:16 +00:00
|
|
|
- python3-yaml
|
|
|
|
- python3-mako
|
|
|
|
- python3-gi
|
|
|
|
- ofono
|
|
|
|
- patchelf
|
|
|
|
- sudo
|
|
|
|
- libcap2-bin
|
|
|
|
- python3-pip
|
2018-10-26 14:38:05 +00:00
|
|
|
- udhcpc
|
|
|
|
- iperf3
|
2018-03-06 13:07:16 +00:00
|
|
|
|
|
|
|
- name: install gsm tester pip dependencies
|
|
|
|
pip:
|
|
|
|
name: "{{ item }}"
|
|
|
|
executable: pip3
|
|
|
|
editable: no
|
|
|
|
with_items:
|
|
|
|
- "git+https://github.com/podshumok/python-smpplib.git@master#egg=smpplib"
|
|
|
|
- pydbus
|
2018-06-05 12:30:25 +00:00
|
|
|
- pyusb
|
|
|
|
- pysispm
|
2018-03-06 13:07:16 +00:00
|
|
|
tags: [pip]
|
|
|
|
|
|
|
|
- name: create group osmo-gsm-tester
|
|
|
|
group:
|
|
|
|
name: osmo-gsm-tester
|
|
|
|
|
|
|
|
- name: add jenkins to osmo-gsm-tester and systemd-journal
|
|
|
|
user:
|
|
|
|
name: jenkins
|
|
|
|
groups: "{{ item }}"
|
|
|
|
append: yes
|
|
|
|
shell: /bin/bash
|
|
|
|
with_items:
|
|
|
|
- systemd-journal
|
|
|
|
- osmo-gsm-tester
|
2018-05-24 14:29:29 +00:00
|
|
|
- dialout
|
2018-03-06 13:07:16 +00:00
|
|
|
|
|
|
|
- name: setup state directory
|
|
|
|
file:
|
|
|
|
path: /var/tmp/osmo-gsm-tester/state
|
|
|
|
state: directory
|
|
|
|
group: osmo-gsm-tester
|
|
|
|
mode: g+rwxs
|
|
|
|
|
|
|
|
- name: install acl
|
|
|
|
apt:
|
|
|
|
name: acl
|
|
|
|
|
|
|
|
# Ensure the group always has access to all files
|
|
|
|
- name: add acl to state directory
|
|
|
|
acl:
|
|
|
|
path: /var/tmp/osmo-gsm-tester/state
|
|
|
|
state: present
|
|
|
|
etype: group
|
|
|
|
entity: osmo-gsm-tester
|
|
|
|
default: yes
|
|
|
|
permissions: rwx
|
|
|
|
|
|
|
|
- name: create trials directory
|
|
|
|
file:
|
|
|
|
path: /var/tmp/osmo-gsm-tester/trials
|
|
|
|
state: directory
|
|
|
|
group: osmo-gsm-tester
|
|
|
|
mode: g+rwxs
|
|
|
|
|
|
|
|
- name: allow osmo-gsm-tester to access ofono
|
|
|
|
copy:
|
|
|
|
src: dbus_osmo-gsm-tester.conf
|
|
|
|
dest: /etc/dbus-1/system.d/osmo-gsm-tester.conf
|
|
|
|
|
|
|
|
- name: ensure tcpdump can be called by osmo-gsm-tester
|
|
|
|
file:
|
|
|
|
path: /usr/sbin/tcpdump
|
|
|
|
group: osmo-gsm-tester
|
2019-11-26 17:27:22 +00:00
|
|
|
mode: 0750
|
2018-03-06 13:07:16 +00:00
|
|
|
|
|
|
|
- name: create a symlink for tcpdump
|
|
|
|
file:
|
|
|
|
src: /usr/sbin/tcpdump
|
|
|
|
dest: /usr/local/bin/tcpdump
|
|
|
|
state: link
|
|
|
|
|
|
|
|
- name: add correct capabilities to tcpdump
|
|
|
|
capabilities:
|
|
|
|
path: /usr/sbin/tcpdump
|
|
|
|
capability: cap_net_raw,cap_net_admin=eip
|
|
|
|
state: present
|
|
|
|
|
|
|
|
- name: allow core files for the group osmo-gsm-tester
|
|
|
|
copy:
|
|
|
|
content: "@osmo-gsm-tester - core unlimited"
|
|
|
|
dest: /etc/security/limits.d/osmo-gsm-tester_allowcore.conf
|
|
|
|
|
|
|
|
- name: allow rt priority for the group osmo-gsm-tester
|
|
|
|
copy:
|
|
|
|
content: "@osmo-gsm-tester - rtprio 99"
|
|
|
|
dest: /etc/security/limits.d/osmo-gsm-tester_rtprio.conf
|
|
|
|
|
|
|
|
- name: create a wrapper script to add CAP_NET_RAW
|
|
|
|
copy:
|
|
|
|
src: osmo-gsm-tester_setcap_net_raw.sh
|
|
|
|
dest: /usr/local/bin/osmo-gsm-tester_setcap_net_raw.sh
|
2019-11-26 17:27:22 +00:00
|
|
|
mode: 0755
|
2018-03-06 13:07:16 +00:00
|
|
|
|
|
|
|
- name: allow osmo-gsm-tester sudo osmo-gsm-tester_setcap_net_raw.sh
|
|
|
|
copy:
|
|
|
|
content: |
|
|
|
|
%osmo-gsm-tester ALL=(root) NOPASSWD: /usr/local/bin/osmo-gsm-tester_setcap_net_raw.sh
|
|
|
|
dest: /etc/sudoers.d/osmo-gsm-tester_setcap_net_raw
|
|
|
|
mode: 0440
|
|
|
|
|
|
|
|
- name: create a wrapper script to add CAP_NET_ADMIN
|
|
|
|
copy:
|
|
|
|
src: osmo-gsm-tester_setcap_net_admin.sh
|
|
|
|
dest: /usr/local/bin/osmo-gsm-tester_setcap_net_admin.sh
|
2019-11-26 17:27:22 +00:00
|
|
|
mode: 0755
|
2018-03-06 13:07:16 +00:00
|
|
|
|
|
|
|
- name: allow osmo-gsm-tester sudo osmo-gsm-tester_setcap_net_admin.sh
|
|
|
|
copy:
|
|
|
|
content: |
|
|
|
|
%osmo-gsm-tester ALL=(root) NOPASSWD: /usr/local/bin/osmo-gsm-tester_setcap_net_admin.sh
|
|
|
|
dest: /etc/sudoers.d/osmo-gsm-tester_setcap_net_admin
|
|
|
|
mode: 0440
|
|
|
|
|
2018-10-26 12:21:45 +00:00
|
|
|
- name: create a wrapper script to run processes on modem netns
|
|
|
|
copy:
|
|
|
|
src: osmo-gsm-tester_netns_exec.sh
|
|
|
|
dest: /usr/local/bin/osmo-gsm-tester_netns_exec.sh
|
2019-11-26 17:27:22 +00:00
|
|
|
mode: 0755
|
2018-10-26 12:21:45 +00:00
|
|
|
|
|
|
|
- name: allow osmo-gsm-tester sudo osmo-gsm-tester_netns_exec.sh
|
|
|
|
copy:
|
|
|
|
content: |
|
|
|
|
%osmo-gsm-tester ALL=(root) NOPASSWD: /usr/local/bin/osmo-gsm-tester_netns_exec.sh
|
|
|
|
dest: /etc/sudoers.d/osmo-gsm-tester_netns_exec
|
|
|
|
mode: 0440
|
|
|
|
|
2019-04-04 14:38:39 +00:00
|
|
|
- name: create a wrapper script to move modem net iface into its own netns
|
|
|
|
copy:
|
|
|
|
src: osmo-gsm-tester_netns_setup.sh
|
|
|
|
dest: /usr/local/bin/osmo-gsm-tester_netns_setup.sh
|
2019-11-26 17:27:22 +00:00
|
|
|
mode: 0755
|
2019-04-04 14:38:39 +00:00
|
|
|
|
|
|
|
- name: allow osmo-gsm-tester sudo osmo-gsm-tester_netns_setup.sh
|
|
|
|
copy:
|
|
|
|
content: |
|
|
|
|
%osmo-gsm-tester ALL=(root) NOPASSWD: /usr/local/bin/osmo-gsm-tester_netns_setup.sh
|
|
|
|
dest: /etc/sudoers.d/osmo-gsm-tester_netns_setup
|
|
|
|
mode: 0440
|
|
|
|
|
2018-03-06 13:07:16 +00:00
|
|
|
- name: logrotate limit filesizes to 10M
|
|
|
|
copy:
|
|
|
|
content: "maxsize 10M"
|
|
|
|
dest: /etc/logrotate.d/maxsize
|
2018-04-10 14:27:30 +00:00
|
|
|
|
|
|
|
- name: install sispmctl (usb power socket)
|
|
|
|
apt:
|
|
|
|
name: sispmctl
|
2018-06-05 13:53:12 +00:00
|
|
|
|
|
|
|
- name: allow group osmo-gsm-tester to access sispm devices
|
|
|
|
copy:
|
|
|
|
src: 60-sispmctl.rules
|
|
|
|
dest: /etc/udev/rules.d/
|
|
|
|
notify: restart udev
|
2018-10-09 12:03:26 +00:00
|
|
|
|
|
|
|
- name: allow group osmo-gsm-tester to access LMS devices
|
|
|
|
copy:
|
|
|
|
src: 64-limesuite.rules
|
|
|
|
dest: /etc/udev/rules.d/
|
|
|
|
notify: restart udev
|
2019-04-02 19:06:40 +00:00
|
|
|
|
|
|
|
- name: use persistent naming for modem network interfaces
|
|
|
|
copy:
|
|
|
|
src: 70-net-setup-link-modems.rules
|
|
|
|
dest: /etc/udev/rules.d/
|
|
|
|
notify: restart udev
|
|
|
|
|
|
|
|
- name: avoid dhcpcd managing modem interfaces and racing with udev rename
|
|
|
|
lineinfile:
|
|
|
|
path: /etc/dhcpcd.conf
|
|
|
|
regexp: '^denyinterfaces'
|
|
|
|
line: 'denyinterfaces ww* r*'
|