routeros_firmware: Initial version of role
This commit is contained in:
parent
c91568cd7e
commit
2eb65f713f
3 changed files with 80 additions and 0 deletions
|
@ -31,6 +31,7 @@
|
|||
- sssd
|
||||
- mkhomedir
|
||||
- tftp
|
||||
- routeros_firmware
|
||||
|
||||
tasks:
|
||||
- name: Enable UDP rsyslog server
|
||||
|
|
40
roles/routeros_firmware/files/download-routeros-firmware.sh
Normal file
40
roles/routeros_firmware/files/download-routeros-firmware.sh
Normal file
|
@ -0,0 +1,40 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
umask 022
|
||||
|
||||
cd /srv/web/oob.foo.sh/routeros
|
||||
|
||||
verbose=false
|
||||
if [ "${1:-}" = "-v" ]; then
|
||||
verbose=true
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
echo "Usage: $(basename "$0") [-v]" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
packageurl="$(curl -sSf "https://mikrotik.com/download" | \
|
||||
sed -n 's/.*<a href="\(.*routeros-[0-9\.]*-arm\.npk\)">.*/\1/p')"
|
||||
packagename="$(basename "$packageurl")"
|
||||
if [ -f "$packagename" ]; then
|
||||
"$verbose" && echo "Already up to date"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
checksum="$(curl -sSf "https://mikrotik.com/download" | \
|
||||
sed -n 's/.*routeros-[0-9\.]*-arm\.npk<\/td>.*<td>SHA256<\/td><td>\(.*\)<\/td>.*/\1/p')"
|
||||
|
||||
echo "Downloading new package '${packagename}'"
|
||||
trap 'rm -f -- "${packagename}.tmp"' EXIT
|
||||
curl -sSf -o "${packagename}.tmp" "$packageurl"
|
||||
|
||||
if [ "$(sha256sum "${packagename}.tmp" | cut -d " " -f 1)" != "$checksum" ]; then
|
||||
echo "ERR: Checksum check failed, not saving package" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mv "${packagename}.tmp" "$packagename"
|
39
roles/routeros_firmware/tasks/main.yml
Normal file
39
roles/routeros_firmware/tasks/main.yml
Normal file
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
- name: Create download directory
|
||||
ansible.builtin.file:
|
||||
path: /srv/web/oob.foo.sh/routeros
|
||||
state: directory
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
|
||||
- name: Install README.md
|
||||
ansible.builtin.copy:
|
||||
dest: /srv/web/oob.foo.sh/routeros/README.md
|
||||
content: |
|
||||
## Update
|
||||
|
||||
```
|
||||
/system package update print
|
||||
/tool fetch url=https://oob.foo.sh/routeros/routeros-7.13.4-arm.npk
|
||||
/system reboot
|
||||
/system package update print
|
||||
```
|
||||
mode: 0644
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
|
||||
- name: Install download script
|
||||
ansible.builtin.copy:
|
||||
dest: /usr/local/bin/download-routeros-firmware
|
||||
src: download-routeros-firmware.sh
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
|
||||
- name: Install cron job
|
||||
ansible.builtin.cron:
|
||||
name: download-routeros-firmware
|
||||
job: /usr/local/bin/download-routeros-firmware
|
||||
hour: "05"
|
||||
minute: "25"
|
Loading…
Add table
Add a link
Reference in a new issue