Skip to content

Instantly share code, notes, and snippets.

@codatory
Created February 3, 2021 14:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codatory/de308a40cd8eea4c96599313584f1a71 to your computer and use it in GitHub Desktop.
Save codatory/de308a40cd8eea4c96599313584f1a71 to your computer and use it in GitHub Desktop.
version: "3"
services:
server:
image: openspeedtest/latest
container_name: openspeedtest
restart: always
ports:
- "80:8080"
[Unit]
Description=iperf3 server
After=syslog.target network.target auditd.service
[Service]
ExecStart=/usr/bin/iperf3 -s
[Install]
WantedBy=multi-user.target
- name: Applying speedtest configuration
hosts: speedtest.codatory.net
become: true
vars:
ansible_ssh_pipelining: true
tasks:
- name: Install HWE
apt:
name: linux-generic-hwe-20.04
cache_valid_time: 3600
- name: Remove multipath-tools
apt:
name: multipath-tools
state: absent
purge: yes
- name: Update all packages to their latest version
apt:
name: "*"
state: latest
cache_valid_time: 3600
- name: Remove dependencies that are no longer required
apt:
autoremove: yes
- name: Reboot box if kernel/libs updated and requested by the system
shell: sleep 10 && /sbin/shutdown -r now 'Rebooting box to update system libs/kernel as needed'
args:
removes: /var/run/reboot-required
async: 300
poll: 0
ignore_errors: true
- name: Wait for system to become reachable again
wait_for_connection:
delay: 20
timeout: 300
- name: Configuring Sysctl Optimizations
ansible.posix.sysctl:
name: "{{ item[0] }}"
value: "{{ item[1] }}"
sysctl_file: /etc/sysctl.d/20-optimization.conf
sysctl_set: yes
loop:
- ['net.ipv4.tcp_slow_start_after_idle', 0]
- ['net.ipv4.ip_local_port_range', '49152 65535']
- ['net.ipv4.tcp_fastopen', 3]
- ['net.core.rmem_default', 1048576]
- ['net.core.rmem_max', 16777216]
- ['net.core.somaxconn', 8192]
- ['net.core.netdev_max_backlog', 16384]
- ['net.core.wmem_default', 1048576]
- ['net.core.wmem_max', 16777216]
- ['net.core.optmem_max', '65536']
- ['net.ipv4.tcp_rmem', '4096 1048576 2097152']
- ['net.ipv4.tcp_wmem', '4096 65536 16777216']
- ['net.ipv4.udp_rmem_min', '8192']
- ['net.ipv4.udp_wmem_min', '8192']
- ['net.core.default_qdisc', 'cake']
- ['net.ipv4.tcp_congestion_control', 'bbr']
- name: Install Docker Dependencies
apt:
name: ['apt-transport-https','ca-certificates','curl','gnupg-agent','software-properties-common','python3-pip']
cache_valid_time: 3600
- name: Install Docker Repository Key
apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
- name: Install Docker Repository
apt_repository:
repo: deb https://download.docker.com/linux/ubuntu focal stable
state: present
- name: Install Docker
apt:
name: ['docker-ce', 'docker-ce-cli', 'containerd.io', 'docker-compose']
- name: Install Docker-Compose PY Module
pip:
name: docker-compose
- name: Enable docker daemon
systemd:
state: started
enabled: yes
name: docker.service
- name: Enable containerd daemon
systemd:
state: started
enabled: yes
name: containerd.service
- name: Enable docker group
group:
name: docker
state: present
- name: Ensure ubuntu in docker group
user:
append: yes
groups: docker
name: ubuntu
- name: Copy compose file
copy:
src: docker-compose.yaml
dest: ~/docker-compose.yaml
owner: root
- name: Docker compose
shell:
cmd: docker-compose up --detach --no-color --quiet-pull --remove-orphans
chdir: ~/
- name: Install iperf3
apt:
name: iperf3
- name: Install iperf3 Service
copy:
src: iperf3.service
dest: /etc/systemd/system/iperf3.service
owner: root
- name: Register and start iperf3 service
systemd:
state: restarted
daemon_reload: yes
enabled: yes
name: iperf3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment