110 Commits

Author SHA1 Message Date
e5e3f88413 fix(ci): Let go-semantic-release get latest drivers from web 🐛 💚
All checks were successful
CI / lint (push) Successful in 52s
CI / Molecule Test (almalinux8) (push) Successful in 1m15s
CI / Molecule Test (almalinux9) (push) Successful in 1m54s
CI / release (push) Successful in 23s
CI / notify (push) Successful in 24s
Regular test / Molecule Test (almalinux8) (push) Successful in 1m19s
Regular test / Molecule Test (almalinux9) (push) Successful in 5m51s
Regular test / notify (push) Successful in 7s
2025-04-14 11:26:55 +12:00
1fedea38e3 fix(ci): try add host /tmp
Some checks failed
CI / lint (push) Successful in 40s
CI / Molecule Test (almalinux9) (push) Successful in 1m15s
CI / Molecule Test (almalinux8) (push) Successful in 1m37s
CI / release (push) Failing after 45s
CI / notify (push) Has been skipped
2025-04-14 11:21:06 +12:00
797824ad76 fix(ci): Added remote_tmp path
Some checks failed
CI / lint (push) Successful in 35s
CI / Molecule Test (almalinux9) (push) Failing after 1m5s
CI / Molecule Test (almalinux8) (push) Successful in 1m25s
CI / release (push) Has been skipped
CI / notify (push) Has been skipped
2025-04-14 11:17:32 +12:00
f80471ad66 fix(ci): See if not reinstall epel allows it to work 🐛
Some checks failed
CI / lint (push) Successful in 35s
CI / Molecule Test (almalinux9) (push) Failing after 1m15s
CI / Molecule Test (almalinux8) (push) Successful in 2m37s
CI / release (push) Has been skipped
CI / notify (push) Has been skipped
2025-04-14 10:48:12 +12:00
f732c1dd54 fix: Don't tweak permissions on resolv.conf etc
Some checks failed
CI / lint (push) Successful in 34s
CI / Molecule Test (almalinux8) (push) Successful in 1m57s
CI / Molecule Test (almalinux9) (push) Failing after 5m6s
CI / release (push) Has been skipped
CI / notify (push) Has been skipped
2025-04-13 22:58:40 +12:00
909e25687d fix(ci): more volume mounts 🐛 💚
Some checks failed
Regular test / Molecule Test (almalinux8) (push) Failing after 4m51s
Regular test / Molecule Test (almalinux9) (push) Failing after 2m38s
Regular test / notify (push) Has been skipped
CI / lint (push) Successful in 1m39s
CI / Molecule Test (almalinux8) (push) Failing after 1m0s
CI / Molecule Test (almalinux9) (push) Successful in 1m51s
CI / release (push) Has been skipped
CI / notify (push) Has been skipped
2025-04-12 11:59:49 +12:00
936e547c9a fix(ci)L Molecule unable to find role 🐛 💚
Some checks failed
CI / lint (push) Successful in 36s
CI / Molecule Test (almalinux8) (push) Failing after 4m52s
CI / Molecule Test (almalinux9) (push) Failing after 1m6s
CI / release (push) Has been skipped
CI / notify (push) Has been skipped
2025-04-12 11:46:57 +12:00
b217e25268 fix: Updated dependencies 🐛
Some checks failed
CI / lint (push) Successful in 41s
CI / Molecule Test (almalinux9) (push) Failing after 50s
CI / Molecule Test (almalinux8) (push) Failing after 1m38s
CI / release (push) Has been skipped
CI / notify (push) Has been skipped
2025-04-11 22:49:23 +12:00
d7c732f5d1 fix: Remove additional bugs 🐛
All checks were successful
CI / lint (push) Successful in 27s
CI / Molecule Test (almalinux9) (push) Successful in 1m45s
CI / Molecule Test (almalinux8) (push) Successful in 2m13s
CI / release (push) Successful in 1m10s
CI / notify (push) Successful in 18s
* Fixed missing "
* Fixed error on LXC virtualization with fstab
2025-04-11 22:12:09 +12:00
7858cae385 chore: Added authentication token for ntfy
Some checks failed
CI / lint (push) Successful in 2m3s
CI / Molecule Test (almalinux8) (push) Successful in 2m44s
CI / Molecule Test (almalinux9) (push) Successful in 2m31s
CI / release (push) Successful in 36s
CI / notify (push) Successful in 5s
Regular test / Molecule Test (almalinux8) (push) Failing after 10s
Regular test / Molecule Test (almalinux9) (push) Failing after 5m0s
Regular test / notify (push) Has been skipped
2024-09-05 11:08:03 +12:00
e2e85d3dd7 ci: Scheduled run only once per week
All checks were successful
CI / lint (push) Successful in 1m2s
CI / Molecule Test (almalinux8) (push) Successful in 2m43s
CI / Molecule Test (almalinux9) (push) Successful in 3m2s
CI / release (push) Successful in 22s
CI / notify (push) Successful in 4s
Regular test / Molecule Test (almalinux8) (push) Successful in 4m19s
Regular test / Molecule Test (almalinux9) (push) Successful in 2m25s
Regular test / notify (push) Successful in 8s
2024-05-15 16:53:06 +12:00
ef49eb146d chore: Fix linter error
All checks were successful
CI / lint (push) Successful in 37s
CI / Molecule Test (almalinux8) (push) Successful in 4m12s
CI / Molecule Test (almalinux9) (push) Successful in 4m10s
CI / release (push) Successful in 23s
CI / notify (push) Successful in 7s
Regular test / Molecule Test (almalinux9) (push) Successful in 2m49s
Regular test / Molecule Test (almalinux8) (push) Successful in 3m1s
Regular test / notify (push) Successful in 4s
2024-05-14 17:10:04 +12:00
b2bcbd2bca ci: Updated cron scheduler
Some checks failed
CI / lint (push) Failing after 42s
CI / Molecule Test (almalinux8) (push) Has been skipped
CI / Molecule Test (almalinux9) (push) Has been skipped
CI / release (push) Has been skipped
CI / notify (push) Has been skipped
2024-05-14 17:08:15 +12:00
58d82220c6 ci: Created cron test [skip ci] 2024-05-13 16:46:16 +12:00
1263539af9 chore: update schedule for cron
Some checks failed
CI / Molecule Test (almalinux8) (push) Has been skipped
CI / Molecule Test (almalinux9) (push) Has been skipped
CI / release (push) Has been skipped
CI / lint (push) Failing after 52s
2024-05-13 16:34:13 +12:00
5e354d9fb5 chore: Updated schedule [skip ci] 2024-05-13 16:30:09 +12:00
dac92a402b chore: Add ntfy tasks [skip ci] 2024-05-13 16:28:28 +12:00
b08e31ba85 chore: Add cron schedule
All checks were successful
CI / lint (push) Successful in 48s
CI / Molecule Test (almalinux8) (push) Successful in 3m32s
CI / Molecule Test (almalinux9) (push) Successful in 2m37s
CI / release (push) Successful in 27s
2024-05-13 16:20:50 +12:00
212e979ec6 fix: Removed additional linebreak 🐛
All checks were successful
CI / lint (push) Successful in 1m31s
CI / Molecule Test (almalinux9) (push) Successful in 2m58s
CI / Molecule Test (almalinux8) (push) Successful in 3m22s
CI / release (push) Successful in 20s
fixes #2
2024-04-26 15:09:00 +12:00
bea07d3c30 fix: Upgrade molecule ⬆️
All checks were successful
CI / lint (push) Successful in 48s
CI / Molecule Test (almalinux9) (push) Successful in 2m13s
CI / Molecule Test (almalinux8) (push) Successful in 2m40s
CI / release (push) Successful in 19s
2024-04-26 11:52:37 +12:00
2412d4dfbb chore: Updated Makefile to use act locally. 👷 🔨
Some checks failed
CI / lint (push) Successful in 46s
CI / Molecule Test (almalinux9) (push) Failing after 51s
CI / Molecule Test (almalinux8) (push) Failing after 53s
CI / release (push) Has been skipped
2024-04-26 11:40:40 +12:00
d39b45290a fix: Updated ansible-lint/yamlint ⬆️ 2024-04-26 11:39:27 +12:00
514defa749 chore: Updated default value 🔧 [skip ci] 2024-04-26 11:37:43 +12:00
7d6e1950d6 chore: Updated Readme.md 🔧 [skip ci] 2024-04-26 11:37:08 +12:00
af2a57fb62 chore: Updated badge on Readme 🔧
All checks were successful
CI / lint (push) Successful in 49s
CI / Molecule Test (almalinux9) (push) Successful in 2m24s
CI / Molecule Test (almalinux8) (push) Successful in 2m28s
CI / release (push) Successful in 20s
2024-04-26 10:49:35 +12:00
c776b9bdab chore: Enable cache 👷
All checks were successful
CI / lint (push) Successful in 36s
CI / Molecule Test (almalinux8) (push) Successful in 2m23s
CI / Molecule Test (almalinux9) (push) Successful in 2m24s
CI / release (push) Successful in 28s
2024-04-26 07:08:33 +12:00
779e10bf4c chore: Removal of unneeded files ⚰️
Some checks failed
CI / Molecule Test (almalinux8) (push) Blocked by required conditions
CI / Molecule Test (almalinux9) (push) Blocked by required conditions
CI / release (push) Blocked by required conditions
CI / lint (push) Has been cancelled
2024-04-24 22:56:53 +12:00
24b1721e8c fix: Further formatting tweaks 🎨
All checks were successful
CI / lint (push) Successful in 58s
CI / Molecule Test (almalinux8) (push) Successful in 2m28s
CI / Molecule Test (almalinux9) (push) Successful in 2m40s
CI / release (push) Successful in 18s
2024-04-24 15:47:25 +12:00
352ea54e11 fix: Correct funky formatting 🎨
All checks were successful
CI / lint (push) Successful in 55s
CI / Molecule Test (almalinux8) (push) Successful in 2m29s
CI / Molecule Test (almalinux9) (push) Successful in 2m40s
CI / release (push) Successful in 20s
2024-04-24 15:30:42 +12:00
6c80c1b07b chore: Lint fixes 🚨
All checks were successful
CI / lint (push) Successful in 35s
CI / Molecule Test (almalinux8) (push) Successful in 2m54s
CI / Molecule Test (almalinux9) (push) Successful in 2m49s
CI / release (push) Successful in 28s
2024-04-24 14:50:04 +12:00
463dfdf732 fix: Don't try add network config no RHEL 🐛
Some checks failed
CI / lint (push) Failing after 1m6s
CI / Molecule Test (almalinux8) (push) Has been skipped
CI / Molecule Test (almalinux9) (push) Has been skipped
CI / release (push) Has been skipped
2024-04-24 14:44:00 +12:00
517ac07529 chore: Updated label 👷 2024-04-24 14:40:43 +12:00
0bf187611a chore: Don't run on tags 👷
All checks were successful
CI / lint (push) Successful in 33s
CI / Molecule Tests ${{ matrix.os }} (almalinux8) (push) Successful in 2m42s
CI / Molecule Tests ${{ matrix.os }} (almalinux9) (push) Successful in 2m50s
CI / release (push) Successful in 18s
2024-04-24 13:38:54 +12:00
a73eb8d69b chore: Add requirements to steps 👷 2024-04-24 13:37:00 +12:00
3b9cff78df chore: Don't re-run on tag push (release) 👷 2024-04-24 13:36:23 +12:00
183d438c06 chore: Bump gitea provider ⬆️
All checks were successful
CI / lint (push) Successful in 36s
CI / Molecule Tests ${{ matrix.os }} (almalinux8) (push) Successful in 2m47s
CI / Molecule Tests ${{ matrix.os }} (almalinux9) (push) Successful in 2m39s
CI / release (push) Successful in 11s
2024-04-24 12:17:54 +12:00
0902ffb768 chore: Bump gitea provider ⬆️
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
CI / lint (push) Successful in 1m14s
ci/woodpecker/push/release/2 Pipeline failed
ci/woodpecker/push/release/1 Pipeline was successful
CI / Molecule Tests ${{ matrix.os }} (almalinux8) (push) Successful in 3m26s
ci/woodpecker/push/release/3 Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
CI / Molecule Tests ${{ matrix.os }} (almalinux9) (push) Successful in 3m16s
ci/woodpecker/push/test/2 Pipeline was successful
ci/woodpecker/push/test/3 Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline failed
CI / release (push) Successful in 19s
2024-04-24 11:23:27 +12:00
29dc2c1142 fix: Linting errors on CI 🚨
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
CI / lint (push) Successful in 49s
ci/woodpecker/push/release/2 Pipeline failed
CI / Molecule Tests ${{ matrix.os }} (almalinux8) (push) Successful in 3m29s
ci/woodpecker/push/release/1 Pipeline was successful
ci/woodpecker/push/release/3 Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/test/3 Pipeline failed
ci/woodpecker/push/test/2 Pipeline failed
ci/woodpecker/push/z.ntfy unknown status
CI / Molecule Tests ${{ matrix.os }} (almalinux9) (push) Successful in 3m15s
CI / release (push) Failing after 16s
2024-04-23 23:07:13 +12:00
86e63365ce fix: Disable cache 👷
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/release/1 unknown status
ci/woodpecker/push/release/2 unknown status
ci/woodpecker/push/test/1 unknown status
ci/woodpecker/push/release/3 unknown status
ci/woodpecker/push/test/2 unknown status
ci/woodpecker/push/test/3 unknown status
ci/woodpecker/push/z.ntfy unknown status
CI / lint (push) Successful in 48s
CI / Molecule Tests ${{ matrix.os }} (almalinux8) (push) Successful in 3m15s
CI / Molecule Tests ${{ matrix.os }} (almalinux9) (push) Successful in 3m22s
CI / release (push) Failing after 5s
2024-04-23 22:51:46 +12:00
98bd8c9a9e fix: Correct Python version 💚
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/release/2 unknown status
ci/woodpecker/push/release/1 unknown status
ci/woodpecker/push/release/3 unknown status
ci/woodpecker/push/test/1 unknown status
ci/woodpecker/push/test/2 unknown status
ci/woodpecker/push/test/3 unknown status
ci/woodpecker/push/z.ntfy unknown status
CI / lint (push) Successful in 10m3s
CI / Molecule Tests ${{ matrix.os }} (almalinux8) (push) Failing after 7s
CI / Molecule Tests ${{ matrix.os }} (almalinux9) (push) Failing after 5s
CI / release (push) Failing after 14s
2024-04-23 22:08:59 +12:00
6e7800f161 chore: Update Readme 🔧
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/release/1 unknown status
ci/woodpecker/push/release/2 unknown status
ci/woodpecker/push/release/3 unknown status
ci/woodpecker/push/test/1 unknown status
ci/woodpecker/push/test/2 unknown status
ci/woodpecker/push/test/3 unknown status
ci/woodpecker/push/z.ntfy unknown status
CI / lint (push) Failing after 26s
CI / Molecule Tests ${{ matrix.os }} (almalinux8) (push) Failing after 5s
CI / Molecule Tests ${{ matrix.os }} (almalinux9) (push) Failing after 5s
CI / release (push) Failing after 14s
2024-04-23 16:57:47 +12:00
65f576a65c feat: Now only issue Dynamic MOTD if in admin_group
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/release/2 unknown status
ci/woodpecker/push/release/1 unknown status
ci/woodpecker/push/release/3 unknown status
ci/woodpecker/push/test/1 unknown status
ci/woodpecker/push/test/3 unknown status
ci/woodpecker/push/test/2 unknown status
ci/woodpecker/push/z.ntfy unknown status
2024-04-23 16:51:13 +12:00
8e8ea09da4 fix: Added workflow for Actions 👷 2024-04-23 16:50:20 +12:00
ed89133f1b chore: Update README.md [SKIP CI] 📝 2024-04-16 14:42:02 +12:00
ee0b737af7 chore: Update README.md [SKIP CI] 📝 2024-04-16 14:40:45 +12:00
0b1424b9e2 Builds need systemd/cgroups read/write
All checks were successful
ci/woodpecker/manual/lint Pipeline was successful
ci/woodpecker/manual/test/2 Pipeline was successful
ci/woodpecker/manual/test/3 Pipeline was successful
ci/woodpecker/manual/test/1 Pipeline was successful
ci/woodpecker/manual/z.ntfy Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test/2 Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/test/3 Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline was successful
2024-01-04 23:02:52 +13:00
2bf9c2a674 Test Alma 9
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test/3 Pipeline failed
ci/woodpecker/push/test/2 Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/z.ntfy unknown status
2024-01-04 15:53:09 +13:00
1417edf527 fix tag output for ci
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test/2 Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline was successful
2024-01-04 10:44:09 +13:00
050feb602a Revert all changes
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test/2 Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline failed
2024-01-04 10:38:20 +13:00
f24cd077be 1
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/test/2 Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline was successful
2024-01-03 22:22:03 +13:00
e4d69aaffa Unbump
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test/2 Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline was successful
2024-01-03 11:55:47 +13:00
2c98ed5c63 Bumper 2024-01-03 11:18:05 +13:00
4fcbdd8147 revert bump
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test/2 Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline was successful
2024-01-03 00:41:23 +13:00
93a4eac70f boo
Some checks failed
ci/woodpecker/manual/lint Pipeline failed
ci/woodpecker/manual/test/2 unknown status
ci/woodpecker/manual/test/1 unknown status
ci/woodpecker/manual/z.ntfy unknown status
2024-01-02 23:16:38 +13:00
8263f2d4f8 Bump the CI 2024-01-02 23:09:41 +13:00
2c3e2c322e Secret not reqd
All checks were successful
ci/woodpecker/manual/lint Pipeline was successful
ci/woodpecker/manual/test/2 Pipeline was successful
ci/woodpecker/manual/test/1 Pipeline was successful
ci/woodpecker/manual/z.ntfy Pipeline was successful
2024-01-02 23:03:16 +13:00
a0bce37886 [SKIP CI] Update README
All checks were successful
ci/woodpecker/manual/lint Pipeline was successful
ci/woodpecker/manual/test Pipeline was successful
ci/woodpecker/manual/z.ntfy Pipeline was successful
2023-10-19 10:39:34 +13:00
6eebd0b6f6 Secrets not required for this role
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline was successful
2023-10-18 22:59:16 +13:00
0b6e1f123a Linted pipeline
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline was successful
2023-10-18 22:34:00 +13:00
6e684e6efc Updated pipeline
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
ci/woodpecker/push/z.ntfy unknown status
2023-10-18 22:29:40 +13:00
0c1ae22375 Update Pipeline
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
ci/woodpecker/push/z.ntfy unknown status
2023-10-18 22:19:02 +13:00
131b683b49 Copy entire directory
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/z.ntfy Pipeline was successful
2023-10-18 21:57:54 +13:00
682404a819 Add static/dhcp ip helpers for NetworkManager
All checks were successful
ci/woodpecker/manual/lint Pipeline was successful
ci/woodpecker/manual/test Pipeline was successful
ci/woodpecker/manual/z.ntfy Pipeline was successful
2023-10-18 16:58:24 +13:00
a3ee65b213 test
All checks were successful
ci/woodpecker/manual/lint Pipeline was successful
ci/woodpecker/manual/test Pipeline was successful
ci/woodpecker/manual/z.ntfy Pipeline was successful
2023-10-17 09:34:51 +13:00
0118504841 Yamllint fixes
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/z.failed-ntfy unknown status
ci/woodpecker/push/z.ntfy Pipeline was successful
2023-10-16 22:42:16 +13:00
47e1eaca8b Fix syntax err
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
ci/woodpecker/push/z.ntfy unknown status
ci/woodpecker/push/z.failed-ntfy Pipeline was successful
2023-10-16 21:55:12 +13:00
6365bf0c00 Test and Lint 2023-10-16 21:52:34 +13:00
5c46cca25c [CHORE] Linting fix
All checks were successful
ci/woodpecker/push/z.cron-ntfy Pipeline was successful
ci/woodpecker/push/z.failed-cron-ntfy Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-10-16 21:45:57 +13:00
70c581f82e Update CI
Some checks failed
ci/woodpecker/push/z.cron-ntfy Pipeline was successful
ci/woodpecker/push/z.failed-cron-ntfy Pipeline was successful
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
2023-10-16 21:42:53 +13:00
83e5a49a28 [SKIP CI] Fix linting 2023-10-16 21:32:53 +13:00
93641c3cf8 [SKIP CI] Fixing line ending removed 2023-10-08 23:21:10 +13:00
b663b49bab [SKIP_CI] Just a test
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
2023-10-08 23:19:09 +13:00
3ea8059b0f [CI_SKIP] Allow test to work if directory named different
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-10-08 23:03:31 +13:00
e39de4a672 [CI_SKIP] More local linter improvements
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-10-08 22:49:17 +13:00
ba98a986f1 Lint all files when run locally
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-10-08 22:44:43 +13:00
db1e526f0c Make linter a little more strict 2023-10-08 22:44:24 +13:00
303b8d7afb Lint improvements
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-10-08 22:34:46 +13:00
05208e5dae Reformat linter output
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-10-08 22:20:48 +13:00
ab31c5cdcf I want some colour
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-10-08 22:14:19 +13:00
5ad8dde9aa Colored Output
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-10-08 22:03:52 +13:00
0adb495154 [CI SKIP] Updated badge 2023-10-06 07:22:30 +13:00
600f469ca2 Ignore env/directory
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
Add yamllint to "make lint"
2023-10-06 07:17:08 +13:00
97d11bcb87 BUGFIX: Ignore when running in container
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-10-06 07:10:53 +13:00
942fe21aef CHORE: Linting CI Pipeline
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline failed
2023-10-06 07:04:43 +13:00
bd61d62fd6 CHORE: Linting
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
2023-10-06 07:02:26 +13:00
e2b2acd56a CHORE: Lint fix
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
2023-10-06 07:00:52 +13:00
19bfcc6eb2 Remove Drone configuration
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
2023-10-06 06:58:18 +13:00
de589a11e0 Add Makefile 2023-10-06 06:57:52 +13:00
b5db07d6e5 Another to ignore if testing in container
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline failed
2023-10-05 17:38:47 +13:00
5bac53eae1 Don't test if container
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline failed
2023-10-05 17:37:03 +13:00
347faec64c Fix error
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline failed
2023-10-05 17:34:57 +13:00
17329fe030 Test virtualization
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
2023-10-05 17:33:18 +13:00
344cb5614d Pipeline Fixing
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test Pipeline failed
2023-10-05 17:27:36 +13:00
6003d42063 update pipeline
All checks were successful
ci/woodpecker/push/1.lint Pipeline was successful
2023-10-05 17:26:11 +13:00
233b976243 Update pipeline
Some checks failed
ci/woodpecker/push/1.lint Pipeline was successful
ci/woodpecker/push/2.test Pipeline failed
ci/woodpecker/push/1.test Pipeline was successful
2023-10-05 17:19:05 +13:00
5baf0d2d87 Don't lint with molecule
Some checks failed
ci/woodpecker/push/1.test Pipeline was successful
ci/woodpecker/push/2.build Pipeline failed
2023-10-05 17:14:14 +13:00
2d12d58960 Depends syntax
Some checks failed
ci/woodpecker/push/1.test Pipeline was successful
ci/woodpecker/push/2.build Pipeline failed
2023-10-05 17:08:58 +13:00
bc80a57b9c Update Pipeline
All checks were successful
ci/woodpecker/push/1.test Pipeline was successful
2023-10-05 17:07:44 +13:00
7f3147e3ee Update lint pass
All checks were successful
ci/woodpecker/push/1.test Pipeline was successful
2023-10-05 17:06:16 +13:00
e29f5d536d Update linting
Some checks failed
ci/woodpecker/push/1.test Pipeline failed
2023-10-05 16:51:31 +13:00
0af870d440 Fix linting
Some checks failed
ci/woodpecker/push/1.test Pipeline failed
2023-10-05 16:44:41 +13:00
107705b584 Call yamllint with directory
Some checks failed
ci/woodpecker/push/1.test Pipeline failed
2023-10-05 16:43:24 +13:00
6cbcbbad7a Update CI
Some checks failed
ci/woodpecker/push/1.test Pipeline failed
2023-10-05 16:41:38 +13:00
373273dabf .
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2023-10-05 15:00:38 +13:00
23b9664ede Update CI 2023-10-05 14:32:13 +13:00
00b1548103 axe the backticks
All checks were successful
continuous-integration/drone/push Build is passing
2022-11-08 10:10:44 +13:00
19f54c9f52 Specifically use os-release
All checks were successful
continuous-integration/drone/push Build is passing
2022-11-08 10:02:22 +13:00
1f6b4d51e0 Silence /proc
All checks were successful
continuous-integration/drone/push Build is passing
2022-11-08 07:30:20 +13:00
2652ce3653 Fix output
All checks were successful
continuous-integration/drone Build is passing
2022-11-07 22:45:06 +13:00
0f3221ac3e Fix IP address display
All checks were successful
continuous-integration/drone/push Build is passing
2022-11-06 21:56:55 +13:00
33 changed files with 700 additions and 588 deletions

View File

@@ -1,3 +1,5 @@
profile: basic
skip_list: # or 'skip_list' to silence them completely
- experimental # all rules tagged as experimental
- unnamed-task # All tasks should be named

View File

@@ -1,148 +0,0 @@
// Distros to Test on ;)
local distros = ['centos7',
'rockylinux8',
'debian10',
'debian11'];
/* Configuration of DIND */
local docker_service() =
{
name: 'docker',
image: 'docker:dind',
privileged: true,
volumes: [{ name: 'dockersock', path: '/var/run' },],
};
local email_notification() =
{
name: 'notify by email',
image: 'drillster/drone-email',
settings:
{ host:
{ from_secret: 'EMAIL_HOST' },
username:
{ from_secret: 'EMAIL_USER' },
password:
{ from_secret: 'EMAIL_PASS' },
from: 'drone@guise.net.nz'
}
};
local test_distro(distribution) =
{
name: 'Molecule test on %(distribution)s' % { distribution: distribution },
volumes: [{ name: 'dockersock', path: '/var/run' },],
pull: true,
image: 'guisea/ansible-molecule:alpine-latest',
commands: [
'sleep 10', // give docker enough time to start
'mkdir ${DRONE_REPO_NAME}',
'rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}',
'cd ${DRONE_REPO_NAME}',
'molecule test'
],
environment:
{ MOLECULE_DISTRO: '%(distribution)s' % { distribution: distribution }
},
};
local gen_pipeline(distro) =
{kind: 'pipeline',
type: 'docker',
name: 'Test on %(distro)s' % { distro: distro },
steps:
[test_distro(distro)],
services:
[docker_service()],
volumes:
[{
name: 'dockersock',
temp: {},
},],
trigger:
{ event: {exclude: ['tag'],},},
when:
{ event: {exclude: ['tag']},
},
};
local gen_release() =
{kind: 'pipeline',
type: 'docker',
image: 'guisea/ansible-molecule:alpine-latest',
name: 'Generate Release',
environment:
{ USER: { from_secret: 'GITEA_USER' },
TOKEN: { from_secret: 'GITEA_TOKEN' },
REPOUSER: { from_secret: 'GITEA_REPOUSER'},
URL: { from_secret: 'GITEA_URL' },
},
commands: [
'sleep 10', // give docker enough time to start
'env',
'mkdir ${DRONE_REPO_NAME}',
'rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}',
'cd ${DRONE_REPO_NAME}',
'echo GITEA_USER=$USER',
'apk update && apk add --no-cache curl',
'tar -czf ../${DRONE_REPO_NAME}.${DRONE_TAG}.tar.gz ./*', // Create an archive of the role
'curl --user $USER:$TOKEN --upload-file ../${DRONE_REPO_NAME}.${DRONE_TAG}.tar.gz https://$URL/api/packages/$REPOUSER/generic/ansible-role-common/${DRONE_TAG}/${DRONE_REPO_NAME}.${DRONE_TAG}.tar.gz',
],
when:
{ event: {include: ['tag']},
},
trigger:
{ event: {include: ['tag'],},},
};
local gen_pipeline_release() =
{kind: 'pipeline',
type: 'docker',
name: 'Generate release from tag',
steps:
[gen_release()],
when:
{ event: {include: ['tag']},
},
trigger:
{ event: {include: ['tag'],},},
};
// Generate the output
[
gen_pipeline('centos7'),
gen_pipeline('rockylinux8'),
gen_pipeline('debian10'),
gen_pipeline('debian11'),
{kind: 'pipeline',
type: 'docker',
name: 'Notify normal',
clone: {disable: true},
steps: [email_notification()],
trigger:
{ event: {exclude: ['tag'],},},
when:
{ status: [ 'success', 'failure' ] ,
event: {exclude: ['tag']},
},
depends_on:
['Test on %(distro)s' % { distro: distro }
for distro in distros]
},
gen_pipeline_release(),
{kind: 'pipeline',
type: 'docker',
clone: {disable: true},
name: 'Notify Tagged release',
steps: [email_notification()],
trigger:
{ event: {include: ['tag'],},},
when:
{ status: [ 'success', 'failure' ] ,
event: {include: ['tag']},
},
depends_on:
['Generate release from tag']
},
]

View File

@@ -1,210 +0,0 @@
---
kind: pipeline
name: runners
steps:
- commands:
- cd terraform
- terraform init
- terraform plan -out /data/runners.plan
- terraform apply /data/runners.plan
environment:
TF_VAR_linode_api_token:
from_secret: linode_api_token
TF_VAR_root_pass:
from_secret: root_pass
TF_VAR_ssh_pubkey:
from_secret: TF_VAR_ssh_pubkey
image: hashicorp/terraform:1.1.7
name: Provision with terraform
volumes:
- name: terraform-data
path: /data
type: docker
volumes:
- host:
path: /mnt/nfs/swarm/runners
name: terraform-data
---
depends_on:
- runners
kind: pipeline
name: Test on centos7
node:
linodrone: "true"
services:
- image: docker:dind
name: docker
privileged: true
volumes:
- name: dockersock
path: /var/run
steps:
- commands:
- sleep 10
- mkdir ${DRONE_REPO_NAME}
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
- cd ${DRONE_REPO_NAME}
- molecule test
environment:
MOLECULE_DISTRO: centos7
image: guisea/ansible-molecule:latest
name: Molecule test on centos7
volumes:
- name: dockersock
path: /var/run
type: docker
volumes:
- name: dockersock
temp: {}
---
depends_on:
- runners
kind: pipeline
name: Test on centos8
node:
linodrone: "true"
services:
- image: docker:dind
name: docker
privileged: true
volumes:
- name: dockersock
path: /var/run
steps:
- commands:
- sleep 10
- mkdir ${DRONE_REPO_NAME}
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
- cd ${DRONE_REPO_NAME}
- molecule test
environment:
MOLECULE_DISTRO: centos8
image: guisea/ansible-molecule:latest
name: Molecule test on centos8
volumes:
- name: dockersock
path: /var/run
type: docker
volumes:
- name: dockersock
temp: {}
---
depends_on:
- runners
kind: pipeline
name: Test on rockylinux8
node:
linodrone: "true"
services:
- image: docker:dind
name: docker
privileged: true
volumes:
- name: dockersock
path: /var/run
steps:
- commands:
- sleep 10
- mkdir ${DRONE_REPO_NAME}
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
- cd ${DRONE_REPO_NAME}
- molecule test
environment:
MOLECULE_DISTRO: rockylinux8
image: guisea/ansible-molecule:latest
name: Molecule test on rockylinux8
volumes:
- name: dockersock
path: /var/run
type: docker
volumes:
- name: dockersock
temp: {}
---
depends_on:
- runners
kind: pipeline
name: Test on debian10
node:
linodrone: "true"
services:
- image: docker:dind
name: docker
privileged: true
volumes:
- name: dockersock
path: /var/run
steps:
- commands:
- sleep 10
- mkdir ${DRONE_REPO_NAME}
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
- cd ${DRONE_REPO_NAME}
- molecule test
environment:
MOLECULE_DISTRO: debian10
image: guisea/ansible-molecule:latest
name: Molecule test on debian10
volumes:
- name: dockersock
path: /var/run
type: docker
volumes:
- name: dockersock
temp: {}
---
depends_on:
- runners
kind: pipeline
name: Test on debian11
node:
linodrone: "true"
services:
- image: docker:dind
name: docker
privileged: true
volumes:
- name: dockersock
path: /var/run
steps:
- commands:
- sleep 10
- mkdir ${DRONE_REPO_NAME}
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
- cd ${DRONE_REPO_NAME}
- molecule test
environment:
MOLECULE_DISTRO: debian11
image: guisea/ansible-molecule:latest
name: Molecule test on debian11
volumes:
- name: dockersock
path: /var/run
type: docker
volumes:
- name: dockersock
temp: {}
---
depends_on:
- Test on centos7
- Test on centos8
- Test on rockylinux8
- Test on debian10
- Test on debian11
kind: pipeline
name: Notify
steps:
- image: drillster/drone-email
name: notify by email
settings:
from: drone@guise.net.nz
host: mail.guise.net.nz
password:
from_secret: EMAIL_PASS
username:
from_secret: EMAIL_USER
type: docker
when:
status:
- success
- failure

101
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,101 @@
name: CI
on:
push:
branches:
- "**"
tags:
- "!**"
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip' # caching pip dependencies
- name: Ensure requirements are installed
run: pip install -r requirements.txt
- name: Lint with ansible-lint
run: ansible-lint -c ".ansible-lint"
env:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
- name: Lint with yamllint
run: yamllint .
env:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
molecule:
name: Molecule Test
runs-on: ubuntu-latest
needs: lint
strategy:
fail-fast: true
matrix:
os: [almalinux8, almalinux9]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip' # caching pip dependencies
- name: Ensure requirements are installed
run: pip install -r requirements.txt
- name: Run Molecule tests.
run: molecule test
env:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
MOLECULE_DISTRO: ${{ matrix.os }}
release:
runs-on: ubuntu-latest
needs:
- lint
- molecule
steps:
- uses: actions/checkout@v4
- uses: go-semantic-release/action@v1
with:
custom-arguments: --provider=gitea
env:
GITEA_TOKEN: ${{ secrets.G_TOKEN }}
GITEA_HOST: ${{ secrets.G_SERVER_URL}}
notify:
runs-on: ubuntu-latest
needs:
- lint
- molecule
- release
steps:
- name: ntfy-success-notifications
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ vars.NTFY_URL }}'
title: Workflow success - ansible-role-common
topic: 'ci-status'
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_TOKEN }}" }'
priority: 4
tags: +1,partying_face,action,successfully,completed
details: Workflow has been successfully completed!
icon: 'https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png'
image: true
- name: ntfy-failed-notifications
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ vars.NTFY_URL }}'
title: Workflow failed - ansible-role-common
topic: 'ci-status'
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_TOKEN }}" }'
priority: 5
tags: -1,skull,action,failed
details: Workflow has failed!
actions: 'default'

62
.github/workflows/cron.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
name: Regular test
on:
schedule:
- cron: "47 2 * * 0"
jobs:
molecule:
name: Molecule Test
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
os: [almalinux8, almalinux9]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip' # caching pip dependencies
- name: Ensure requirements are installed
run: pip install -r requirements.txt
- name: Run Molecule tests.
run: molecule test
env:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
MOLECULE_DISTRO: ${{ matrix.os }}
notify:
runs-on: ubuntu-latest
needs: molecule
steps:
- name: ntfy-success-notifications
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ vars.NTFY_URL }}'
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_TOKEN }}" }'
title: Workflow success - ansible-role-common
topic: 'ci-status'
priority: 4
tags: +1,partying_face,action,successfully,completed
details: Workflow has been successfully completed!
icon: 'https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png'
image: true
- name: ntfy-failed-notifications
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ vars.NTFY_URL }}'
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_TOKEN }}" }'
title: Workflow failed - ansible-role-common
topic: 'ci-status'
priority: 5
tags: -1,skull,action,failed
details: Workflow has failed!
actions: 'default'

4
.gitignore vendored
View File

@@ -12,6 +12,10 @@ roles/*
!files/authorized_keys/
files/authorized_keys/*
!files/authorized_keys/.gitkeep
env/
# Do not commit Vault password
.vault_password.txt
# No commit of .secrets (Only for local CI Tests)
.secrets
.vars

28
.woodpecker/cron.yml Normal file
View File

@@ -0,0 +1,28 @@
matrix:
include:
- MOLECULE_DISTRO: centos7
- MOLECULE_DISTRO: almalinux8
clone:
git:
image: woodpeckerci/plugin-git
settings:
recursive: true
submodule_update_remote: true
when:
event: [ cron ]
steps:
test:
name: Test on ${MOLECULE_DISTRO}
image: guisea/ansible-molecule
pull: true
environment:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
commands:
- molecule test --scenario-name ${MOLECULE_SCENARIO:-default}
when:
event: [ cron ]

43
.woodpecker/lint.yml Normal file
View File

@@ -0,0 +1,43 @@
clone:
git:
image: woodpeckerci/plugin-git
settings:
recursive: true
submodule_update_remote: true
when:
event: [ push, manual ]
steps:
ansible-lint:
group: test
name: "Lint: Ansible-lint"
image: guisea/ansible-molecule
environment:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
commands:
- ansible-lint -c ".ansible-lint"
when:
event: [ push, manual ]
yamllint:
group: test
name: "Lint: Yamllint"
image: guisea/ansible-molecule
commands:
- yamllint -f colored .
when:
event: [ push, manual ]
ntfy:
image: codeberg.org/l-x/woodpecker-ntfy
settings:
url: https://ntfy.cybercinch.nz/ci-status
title: "Lint failed for ${CI_REPO_NAME}"
priority: urgent
icon: https://woodpecker-ci.org/img/logo.svg
tags: robot,warning,rotating_light,${CI_BUILD_EVENT},${CI_REPO_NAME}
message: >
📝 Commit by ${CI_COMMIT_AUTHOR} on ${CI_COMMIT_BRANCH}:
${CI_COMMIT_MESSAGE}
when:
event: [ push, manual ]
status: [ failure ]

48
.woodpecker/release.yml Normal file
View File

@@ -0,0 +1,48 @@
matrix:
include:
- MOLECULE_DISTRO: centos7
- MOLECULE_DISTRO: almalinux8
- MOLECULE_DISTRO: almalinux9
clone:
git:
image: woodpeckerci/plugin-git
settings:
recursive: true
submodule_update_remote: true
when:
event: [ push ]
steps:
create-release:
name: Test on ${MOLECULE_DISTRO}
image: guisea/ansible-molecule
pull: true
environment:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
commands:
- molecule test --scenario-name ${MOLECULE_SCENARIO:-default}
#secrets: [ auth_duo_host, auth_duo_ikey, auth_duo_skey, auth_duo_mirror_url ]
when:
event:
- push
- manual
ntfy:
image: codeberg.org/l-x/woodpecker-ntfy
settings:
url: https://ntfy.cybercinch.nz/ci-status
title: "Test failed for ${CI_REPO_NAME} - Distro: ${MOLECULE_DISTRO} Scenario: ${MOLECULE_SCENARIO:-default}"
priority: urgent
icon: https://woodpecker-ci.org/img/logo.svg
tags: robot,warning,rotating_light,${CI_BUILD_EVENT},${CI_REPO_NAME}
message: >
📝 Commit by ${CI_COMMIT_AUTHOR} on ${CI_COMMIT_BRANCH}:
${CI_COMMIT_MESSAGE}
when:
event: [ push, manual ]
status: [ failure ]
depends_on:
- lint

48
.woodpecker/test.yml Normal file
View File

@@ -0,0 +1,48 @@
matrix:
include:
- MOLECULE_DISTRO: centos7
- MOLECULE_DISTRO: almalinux8
- MOLECULE_DISTRO: almalinux9
clone:
git:
image: woodpeckerci/plugin-git
settings:
recursive: true
submodule_update_remote: true
when:
event: [ push, manual ]
steps:
test:
name: Test on ${MOLECULE_DISTRO}
image: guisea/ansible-molecule
pull: true
environment:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
commands:
- molecule test --scenario-name ${MOLECULE_SCENARIO:-default}
#secrets: [ auth_duo_host, auth_duo_ikey, auth_duo_skey, auth_duo_mirror_url ]
when:
event:
- push
- manual
ntfy:
image: codeberg.org/l-x/woodpecker-ntfy
settings:
url: https://ntfy.cybercinch.nz/ci-status
title: "Test failed for ${CI_REPO_NAME} - Distro: ${MOLECULE_DISTRO} Scenario: ${MOLECULE_SCENARIO:-default}"
priority: urgent
icon: https://woodpecker-ci.org/img/logo.svg
tags: robot,warning,rotating_light,${CI_BUILD_EVENT},${CI_REPO_NAME}
message: >
📝 Commit by ${CI_COMMIT_AUTHOR} on ${CI_COMMIT_BRANCH}:
${CI_COMMIT_MESSAGE}
when:
event: [ push, manual ]
status: [ failure ]
depends_on:
- lint

View File

@@ -0,0 +1,16 @@
skip_clone: true
steps:
ntfy-success:
image: codeberg.org/l-x/woodpecker-ntfy
settings:
url: https://ntfy.cybercinch.nz/ci-status
title: Build succeeded on ${CI_REPO_NAME}
priority: urgent
icon: https://woodpecker-ci.org/img/logo.svg
tags: robot,white_check_mark,${CI_BUILD_EVENT},${CI_REPO_NAME}
message: >
Test success when run by cron for ${CI_REPO_NAME}.
depends_on:
- "cron"
runs_on: [ success ]

20
.woodpecker/z.ntfy.yml Normal file
View File

@@ -0,0 +1,20 @@
skip_clone: true
steps:
ntfy:
image: codeberg.org/l-x/woodpecker-ntfy
settings:
url: https://ntfy.cybercinch.nz/ci-status
title: "Build completed for ${CI_REPO_NAME}"
priority: urgent
icon: https://woodpecker-ci.org/img/logo.svg
tags: robot,tada,white_check_mark,${CI_BUILD_EVENT},${CI_REPO_NAME}
message: >
📝 Commit by ${CI_COMMIT_AUTHOR} on ${CI_COMMIT_BRANCH}:
${CI_COMMIT_MESSAGE}
when:
event: [ push, manual ]
status: [ success ]
depends_on:
- lint
- test

View File

@@ -0,0 +1,16 @@
skip_clone: true
steps:
ntfy-failed:
image: codeberg.org/l-x/woodpecker-ntfy
settings:
url: https://ntfy.cybercinch.nz/ci-status
title: Build failed on ${CI_REPO_NAME}
priority: urgent
icon: https://woodpecker-ci.org/img/logo.svg
tags: robot,rotating_light,no_entry,${CI_BUILD_EVENT},${CI_REPO_NAME}
message: >
Test failed when run by cron for ${CI_REPO_NAME}.
depends_on:
- "cron"
runs_on: [ failure ]

View File

@@ -2,6 +2,8 @@
# Based on ansible-lint config
extends: default
ignore: |
.venv/
rules:
braces:
max-spaces-inside: 1
@@ -26,8 +28,8 @@ rules:
indentation: disable
key-duplicates: enable
line-length: disable
new-line-at-end-of-file: disable
new-line-at-end-of-file: enable
new-lines:
type: unix
trailing-spaces: disable
trailing-spaces: enable
truthy: disable

36
Makefile Normal file
View File

@@ -0,0 +1,36 @@
.PHONY: clean virtualenv lint test docker dist dist-upload
clean:
find . -name '*.py[co]' -delete
virtualenv:
virtualenv --prompt '|> ansible-role-common <| ' .venv
.venv/bin/pip install --upgrade pip
.venv/bin/pip install -r requirements.txt
.venv/bin/ansible-galaxy collection install -r requirements.yml
@echo
@echo "VirtualENV Setup Complete. Now run: source .venv/bin/activate"
@echo
test:
for distro in almalinux9 ; do \
MOLECULE_DISTRO=$$distro molecule test --all ; \
done
lint:
@echo "Linting"
@act -j lint
@echo
docker: clean
docker buildx build --platform 'linux/amd64,linux/arm64' --push \
-t hub.cybercinch.nz/cybercinch/imap_retention_manager:latest \
-t docker.io/cybercinch/imap_retention_manager:latest .
dist: clean
rm -rf dist/*
python setup.py sdist
python setup.py bdist_wheel
dist-upload:
twine upload dist/*

View File

@@ -1,40 +1,89 @@
# Common [![Build Status](https://drone.guise.net.nz/api/badges/ansible-roles/common/status.svg)](https://drone.guise.net.nz/ansible-roles/common)
# Common [![status-badge](https://hub.cybercinch.nz/cybercinch/ansible-role-common/actions/workflows/ci.yml/badge.svg)](https://hub.cybercinch.nz/cybercinch/ansible-role-common/actions?workflow=ci.yml)
=========
A brief description of the role goes here.
This role is a collection of functionality to ease common setup of Linux based VM's. Some functionality for windows servers is available.
Requirements
Features:
* Dynamic motd - This displays information to administrators at login.
* Helper commands - These are commands to help with online resizing of Linux Partitions/Drives when running on VMWare.
* Set DNS resolvers for use on the host.
* Install common packages for the host (Win/Linux)
Requirements
------------
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
Nil
Role Variables
--------------
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
Role variables can be found in defaults/main.yml
```yaml
domain: exampledomain.com
ad_domain_joined: no
win_timezone: New Zealand Standard Time
vendors_hosts: []
dns_servers:
- 1.0.0.1
- 1.1.1.1
admin_group: admins
common_grub_timeout: 5
postfix_configure: false
common_packages: # Packages we will/would like to install
- nano
- git
- htop
- atop
- wget
- bind-utils
- yum-utils
- unzip
win_packages:
- notepadplusplus.install
- firefoxesr
- baretail
- 7zip.install
apply_win_updates: false
common_show_ipv6: false|bool
common_root_pwd: $y0urp@$$ ## You should always use a vault encrypted string here.
common_root_email: admin@somplace.co.nz # Configures forwarding address for root.
```
Dependencies
------------
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
Nil external dependencies. Requires only builtin functions
Example Playbook
----------------
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
This is an example playbook. Executes the role overriding two variables.
You could alternately set these in host_vars or group_vars:
```yaml
- hosts: servers
- hosts: server
roles:
- { role: username.rolename, x: 42 }
- { role: cybercinch.common,
common_show_ipv6: true,
common_root_email: iamroot@example.com }
```
License
-------
BSD
MIT
Author Information
------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed).
This role was created in 2017 by [Aaron Guise](https://guise.net.nz/)

View File

@@ -1,5 +1,4 @@
---
# defaults file for guisea.common
domain: exampledomain.com
ad_domain_joined: no
win_timezone: New Zealand Standard Time
@@ -9,7 +8,7 @@ dns_servers:
- 1.0.0.1
- 1.1.1.1
ADMIN_GROUP: admins
admin_group: admins
common_grub_timeout: 5
@@ -24,15 +23,15 @@ common_packages:
- bind-utils
- yum-utils
- unzip
win_packages:
- notepadplusplus.install
- firefoxesr
- baretail
- 7zip.install
apply_win_updates: false
common_show_ipv6: false|bool
common_root_pwd: l3tm31nN0w
common_root_email: admin@somplace.co.nz
common_root_pwd: $y0urp@$$
common_root_email: admin@somplace.co.nz

View File

@@ -0,0 +1,8 @@
#!/bin/bash
# This script will reset the IP Address back to default of DHCP
# helpful for a pending restore
/bin/nmcli c m "System eth0" ipv4.method auto
/bin/nmcli c m "System eth0" ipv4.address "" ipv4.gateway ""
/bin/nmcli connection up "System eth0"

View File

@@ -0,0 +1,48 @@
#!/bin/bash
# get subnet
subnet=$(ip a | grep "inet " | tail -1 | awk '{print $2}')
# get router/gateway
router=$(ip route show | head -1 | awk '{print $3}')
# get size of network portion of address in bytes
sz=$(echo $subnet | awk -F / '{print $2}')
bytes=$(("$sz" / 8))
prefix=$(echo "$subnet" | cut -d. -f1-$bytes) # e.g., 192.168.0
# get IP address to be set
IP=$(hostname -I | awk '{print $1}') # current IP
echo -n "Keep IP address?—$IP [yn]> "
read -r ans
if [ "$ans" == "n" ]; then
echo -n "Enter new IP address: "
read -r IP
# check if specified IP is properly formatted
if [[ ! $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
echo Invalid IP
fi
# check if specified IP works for local network
if [[ ! $IP =~ ^$prefix ]]; then
echo "ERROR: Specified IP not usable for local network"
exit
fi
fi
# check if specified IP is properly formatted
if [[ ! $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
echo Invalid IP
fi
# fetch the UUID
UUID=$(nmcli connection show | tail -1 | awk '{print $4}')
if [[ "$UUID" == "ethernet" ]]; then
# This is the other format of nmcli connection show
UUID=$(nmcli connection show | head -2 | tail -1 | awk '{print $3}')
fi
# run commands to set up the permanent IP address
nmcli connection modify "$UUID" IPv4.address "$IP"/"$sz"
nmcli connection modify "$UUID" IPv4.gateway "$router"
nmcli connection modify "$UUID" IPv4.method manual
nmcli connection up "$UUID"

View File

@@ -15,10 +15,10 @@
name: ntpd
state: restarted
- name: reboot windows
- name: Reboot Windows
win_reboot:
- name: restart NetworkManager
- name: Restart NetworkManager
service:
name: NetworkManager
state: restarted

View File

@@ -1,7 +1,9 @@
---
- name: Converge
hosts: all
vars:
ansible_remote_tmp: /tmp/.ansible/tmp
tasks:
- name: "Include common"
include_role:
name: "common"
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"

View File

@@ -4,18 +4,27 @@ dependency:
driver:
name: docker
platforms:
- name: instance
image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
- name: molecule-${MOLECULE_DISTRO:-almalinux8}
image: "cybercinch/docker-${MOLECULE_DISTRO:-almalinux8}-ansible:latest"
command: ${MOLECULE_DOCKER_COMMAND:-""}
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
- /sys/fs/cgroup:/sys/fs/cgroup:rw
- /run
- /run/lock
- /tmp
cgroupns_mode: host
privileged: true
pre_build_image: true
provisioner:
name: ansible
env:
MOLECULE_NO_LOG: true
config_options:
defaults:
roles_path: "$MOLECULE_PROJECT_DIRECTORY/.."
# verifier:
# name: ansible
lint: |
set -e
yamllint .
ansible-lint
# lint: |
# set -e
# yamllint .
# ansible-lint

7
requirements.txt Normal file
View File

@@ -0,0 +1,7 @@
ansible-core==2.16.3
ansible-compat == 25.1.4
molecule==25.3.1
molecule-plugins[docker]==23.7.0
ansible-lint==6.22.2
yamllint==1.35.1
passlib==1.7.4

3
requirements.yml Normal file
View File

@@ -0,0 +1,3 @@
collections:
- ansible.windows
- community.general

View File

@@ -2,13 +2,13 @@
# tasks file for common role
- include_tasks: networking.yml
- name: Ensure common packages (RHEL)
yum:
name: "{{ common_packages }}"
state: present
enablerepo: epel
when: ansible_distribution != 'OracleLinux'
tags: packages
# - name: Ensure common packages (RHEL)
# yum:
# name: "{{ common_packages }}"
# state: present
# enablerepo: epel
# when: ansible_distribution != 'OracleLinux'
# tags: packages
- name: Ensure common packages (OracleLinux)
yum:
@@ -17,7 +17,7 @@
enablerepo: ol7_developer_EPEL
when: ansible_distribution == 'OracleLinux'
tags: packages
- name: Check if SELinux is installed
stat:
path: /etc/selinux/config
@@ -38,7 +38,9 @@
# tags: security
- name: Create admin group
group: name={{ ADMIN_GROUP }} state=present
group:
name: "{{ admin_group }}"
state: present
- name: Configure yum limit
lineinfile:
@@ -49,25 +51,18 @@
- name: Ensure Helpers are present
copy:
src: "{{ helpers.src }}"
dest: "{{ helpers.dest }}"
src: helpers/
dest: /usr/local/bin/
mode: u+rwx,g+rx,o+rx
with_items:
- src: helpers/reload_scsi_devices
dest: /usr/local/bin/reload_scsi_devices
- src: helpers/reload_scsi_hosts
dest: /usr/local/bin/reload_scsi_hosts
loop_control:
loop_var: helpers
- name: Ensure Hostname is set
hostname:
hostname:
name: "{{ inventory_hostname }}.{{ domain }}"
when: ansible_virtualization_type != "docker"
when: ansible_virtualization_type != "docker" and ansible_virtualization_type != "container"
- name: Change root password
user:
name: root
user:
name: root
password: "{{ common_root_pwd | password_hash('sha512') }}"
changed_when: false
tags: rootpw

View File

@@ -30,7 +30,7 @@
admin_password: "{{ vault_ad_password }}"
domain_name: "{{ authconfig_domain }}"
when: ad_domain_joined
notify: reboot windows
notify: Reboot Windows
- meta: flush_handlers
- name: Ensure Important dirs exist
@@ -53,7 +53,7 @@
- name: Apply Windows Updates
win_updates:
when: apply_windows_updates
notify: reboot windows
notify: Reboot Windows
- meta: flush_handlers
- name: Ensure default applications installed

View File

@@ -1,7 +1,8 @@
---
- name: Postfix Configuration
when: postfix_configure
block:
- name: postfix | Apply postfix configuration
- name: Postfix | Apply postfix configuration
lineinfile:
dest: "{{ configurations.dest }}"
regexp: "{{ configurations.regexp }}"
@@ -33,12 +34,11 @@
loop_control:
loop_var: configurations
- name: postfix | Ensure Postfix is Started/Enabled
- name: Postfix | Ensure Postfix is Started/Enabled
service:
name: postfix
state: started
enabled: yes
when: postfix_configure
- name: Ensure root forwarding address is set
lineinfile:

View File

@@ -20,7 +20,7 @@
no_extra_spaces: yes
when: "ansible_os_family == 'RedHat' and ansible_distribution_major_version > '6'"
notify:
- Check if grub.cfg exists
- Check if grub.cfg exists
- Update GRUB
tags:
- grub
- grub

View File

@@ -1,5 +1,9 @@
---
- name: Ensure DNS and SSH common config
- name: What is virtualization type?
debug:
msg: "Virtualization is: {{ ansible_virtualization_type }}"
- name: Ensure Network Setup (RedHat only)
template:
src: "{{ network_config.src }}"
dest: "{{ network_config.dest }}"
@@ -12,8 +16,25 @@
mode: u+rw,
a+r,
}
when: >
ansible_virtualization_type != "docker"
and ansible_virtualization_type != "container"
and ansible_os_family == "RedHat"
loop_control:
loop_var: network_config
tags: dns
- name: Ensure Resolvers Configured
template:
src: "{{ network_config.src }}"
dest: "{{ network_config.dest }}"
mode: "{{ network_config.mode }}"
backup: yes
with_items:
- { src: etc.resolv.conf.j2, dest: /etc/resolv.conf, mode: u+rw, a+r }
when: ansible_virtualization_type != "docker"
when: >
ansible_virtualization_type != "docker"
and ansible_virtualization_type != "container"
loop_control:
loop_var: network_config
tags: dns
@@ -52,7 +73,7 @@
}
loop_control:
loop_var: hosts_config
when: ansible_virtualization_type != "docker"
when: ansible_virtualization_type != "docker" and ansible_virtualization_type != "container"
- name: Ensure NetworkManager does not fiddle DNS
ini_file:
@@ -63,7 +84,7 @@
backup: yes
when: (ansible_os_family == "RedHat" and ansible_distribution_major_version == "7")
notify:
- restart NetworkManager
- Restart NetworkManager
changed_when: false
- name: Ensure correct permissions (hosts/resolv.conf)
@@ -76,5 +97,8 @@
- /etc/hosts
loop_control:
loop_var: perm_config
when: >
ansible_virtualization_type != "docker"
and ansible_virtualization_type != "container"
changed_when: false
tags: dns

View File

@@ -15,41 +15,44 @@
# /usr/local/bin/dynmotd
#
USER=`whoami`
HOSTNAME=`uname -n | cut -d. -f1`
IP=`ip route get 1 | awk '{print $NF;exit}'`
NUM_CPU=`lscpu | grep "CPU(s):" | head -n 1 | awk '{print $2}'`
ROOT=`df -x fuse.gvfs-fuse-daemon -Ph | egrep -i 'root|logvol|vda' | awk '{print $4}' | tr -d '\n'`
HOME=`df -x fuse.gvfs-fuse-daemon -Ph | grep home | awk '{print $4}' | tr -d '\n'`
FILESYSTEMS=`cat /etc/fstab | grep -v '#' | grep -v 'swap' | awk '{if(NF>0) {print $2}}'`
BACKUP=`df -x fuse.gvfs-fuse-daemon -Ph | grep backup | awk '{print $4}' | tr -d '\n'`
OS_RELEASE=`awk -F= '$1=="PRETTY_NAME" { print $2 ;}' /etc/os-release | sed -e 's/^"//' -e 's/"$//'`
MEMORY=`free -m | grep "Mem" | awk '{print $2,"-",$3,"-",$4}'`
SWAP=`free -m | grep "Swap" | awk '{print $2,"-",$3,"-",$4}'`
PSA=`ps -Afl | wc -l`
if getent group "{{ admin_group }}" | grep -qw "$(whoami)"; then
USER=`/usr/bin/env whoami`
HOSTNAME=`/usr/bin/env uname -n | /usr/bin/env cut -d. -f1`
IP=`/usr/bin/env ip route get 1 | /usr/bin/env grep -Po '(?<=src.)[\w\d.]+'`
IP6=`/usr/bin/env ip -6 addr | /usr/bin/env awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next ; } /inet6/ {print $3} '`
NUM_CPU=`cat /proc/cpuinfo | grep processor | wc -l`
#ROOT=`/usr/bin/df / -x fuse.gvfs-fuse-daemon -Ph | /usr/bin/egrep -i 'root|logvol|vda' | awk '{print $4}' | tr -d '\n'`
#HOME=`/usr/bin/df /home -x fuse.gvfs-fuse-daemon -Ph | grep home | awk '{print $4}' | tr -d '\n'`
#BACKUP=`/usr/bin/df -x fuse.gvfs-fuse-daemon -Ph | grep backup | awk '{print $4}' | tr -d '\n'`
if [ -f /etc/fstab ]; then
FILESYSTEMS=`cat /etc/fstab | grep -v '#' | grep -v 'swap' | grep -v 'proc' | awk '{if(NF>0) {print $2}}'`
fi
MEMORY=`/usr/bin/env free -m | /usr/bin/env grep "Mem" | /usr/bin/env awk '{print $2,"-",$3,"-",$4}'`
SWAP=`/usr/bin/env free -m | /usr/bin/env grep "Swap" | /usr/bin/env awk '{print $2,"-",$3,"-",$4}'`
PSA=`/usr/bin/env ps -Afl | /usr/bin/env wc -l`
# time of day
HOUR=$(date +"%H")
if [ $HOUR -lt 12 -a $HOUR -ge 0 ]
then TIME="morning"
elif [ $HOUR -lt 17 -a $HOUR -ge 12 ]
then TIME="afternoon"
else
# time of day
HOUR=$(/usr/bin/env date +"%H")
if [ $HOUR -lt 12 -a $HOUR -ge 0 ]
then TIME="morning"
elif [ $HOUR -lt 17 -a $HOUR -ge 12 ]
then TIME="afternoon"
else
TIME="evening"
fi
fi
#System uptime
uptime=`cat /proc/uptime | cut -f1 -d.`
upDays=$((uptime/60/60/24))
upHours=$((uptime/60/60%24))
upMins=$((uptime/60%60))
upSecs=$((uptime%60))
#System uptime
uptime=`/usr/bin/env cat /proc/uptime | cut -f1 -d.`
upDays=$((uptime/60/60/24))
upHours=$((uptime/60/60%24))
upMins=$((uptime/60%60))
upSecs=$((uptime%60))
#System load
LOADAVG=`cat /proc/loadavg`
LOAD1=`echo $LOADAVG | awk {'print $1'}`
LOAD5=`echo $LOADAVG | awk {'print $2'}`
LOAD15=`echo $LOADAVG | awk {'print $3'}`
#System load
LOADAVG=`/usr/bin/env cat /proc/loadavg`
LOAD1=`echo $LOADAVG | /usr/bin/env awk {'print $1'}`
LOAD5=`echo $LOADAVG | /usr/bin/env awk {'print $2'}`
LOAD15=`echo $LOADAVG | /usr/bin/env awk {'print $3'}`
echo ""
echo -e "\e[7m--- GOOD $TIME $USER ----\e[0m"
@@ -62,22 +65,41 @@ COLOR_VALUE="\e[31m"
RESET_COLORS="\e[0m"
echo -e "
===========================================================================
$COLOR_COLUMN- Hostname$RESET_COLORS............: $COLOR_VALUE $HOSTNAME $RESET_COLORS
$COLOR_COLUMN- IP Address (Default)$RESET_COLORS: $COLOR_VALUE $IP $RESET_COLORS
$COLOR_COLUMN- Release$RESET_COLORS.............: $COLOR_VALUE $OS_RELEASE $RESET_COLORS
$COLOR_COLUMN- Users$RESET_COLORS...............: $COLOR_VALUE Currently `users | wc -w` user(s) logged on $RESET_COLORS
$COLOR_COLUMN- Hostname$RESET_COLORS............: $COLOR_VALUE $HOSTNAME $RESET_COLORS
{% if common_show_ipv6 == true %}$COLOR_COLUMN- IP Address (Main v4)$RESET_COLORS: $COLOR_VALUE $IP $RESET_COLORS
$COLOR_COLUMN- IP Address (Main v6)$RESET_COLORS: $COLOR_VALUE $IP6 $RESET_COLORS
{% else %}$COLOR_COLUMN- IP Address (Default)$RESET_COLORS: $COLOR_VALUE $IP $RESET_COLORS
{% endif %}
{% if ansible_distribution == "Alpine" %}
$COLOR_COLUMN- Release$RESET_COLORS.............: $COLOR_VALUE Alpine `/usr/bin/env cat /etc/os-release` $RESET_COLORS
{% else %}
$COLOR_COLUMN- Release$RESET_COLORS.............: $COLOR_VALUE `/usr/bin/env cat /etc/os-release | /usr/bin/env grep PRETTY_NAME | /usr/bin/env cut -d '"' -f 2` $RESET_COLORS
{% endif %}
{% if ansible_distribution != "Alpine" %}
$COLOR_COLUMN- Users$RESET_COLORS...............: $COLOR_VALUE Currently `users | wc -w` user(s) logged on $RESET_COLORS
{% endif %}
=========================================================================== $RESET_COLORS
$COLOR_COLUMN- Current user$RESET_COLORS........: $COLOR_VALUE $USER $RESET_COLORS
$COLOR_COLUMN- Number of CPU$RESET_COLORS.......: $COLOR_VALUE $NUM_CPU $RESET_COLORS
$COLOR_COLUMN- CPU usage$RESET_COLORS...........: $COLOR_VALUE $LOAD1 - $LOAD5 - $LOAD15 (1-5-15 min) $RESET_COLORS
$COLOR_COLUMN- Memory used$RESET_COLORS.........: $COLOR_VALUE $MEMORY (total-used-free) $RESET_COLORS
$COLOR_COLUMN- Swap in use$RESET_COLORS.........: $COLOR_VALUE $SWAP (total-used-free) MB $RESET_COLORS
$COLOR_COLUMN- Processes$RESET_COLORS...........: $COLOR_VALUE $PSA running $RESET_COLORS
$COLOR_COLUMN- System uptime$RESET_COLORS.......: $COLOR_VALUE $upDays days $upHours hours $upMins minutes $upSecs seconds $RESET_COLORS
$COLOR_COLUMN- Disk space$RESET_COLORS..........: "
$COLOR_COLUMN- Current user$RESET_COLORS........: $COLOR_VALUE $USER $RESET_COLORS
$COLOR_COLUMN- Number of CPU$RESET_COLORS.......: $COLOR_VALUE $NUM_CPU $RESET_COLORS
$COLOR_COLUMN- CPU usage$RESET_COLORS...........: $COLOR_VALUE $LOAD1 - $LOAD5 - $LOAD15 (1-5-15 min) $RESET_COLORS
$COLOR_COLUMN- Memory used$RESET_COLORS.........: $COLOR_VALUE $MEMORY (total-used-free) $RESET_COLORS
$COLOR_COLUMN- Swap in use$RESET_COLORS.........: $COLOR_VALUE $SWAP (total-used-free) MB $RESET_COLORS
$COLOR_COLUMN- Processes$RESET_COLORS...........: $COLOR_VALUE $PSA running $RESET_COLORS
$COLOR_COLUMN- System uptime$RESET_COLORS.......: $COLOR_VALUE $upDays days $upHours hours $upMins minutes $upSecs seconds $RESET_COLORS
{% if ansible_virtualization_type != "lxc" %}
$COLOR_COLUMN- Disk space$RESET_COLORS..........: "
for FS in ${FILESYSTEMS}; do
echo -e " $COLOR_COLUMN- ..........$RESET_COLORS..........: $COLOR_VALUE `df -H ${FS} | grep -v 'Filesystem' | grep -v '^[[:space:]]*$' | awk '{print $6 " " $4}'` remaining $RESET_COLORS"
echo -e "$COLOR_COLUMN- ..........$RESET_COLORS..........: $COLOR_VALUE `df -H ${FS} | grep -v 'Filesystem' | grep -v '^[[:space:]]*$' | awk '{print $6 \" \" $4}'` remaining $RESET_COLORS"
done
{% endif %}
"
echo -e "
===========================================================================
"
if [ -f /etc/motd ]; then
/usr/bin/env cat /etc/motd
fi
else
# Just exit :)
exit 0
fi;

View File

@@ -1,22 +0,0 @@
# This file is maintained automatically by "terraform init".
# Manual edits may be lost in future updates.
provider "registry.terraform.io/linode/linode" {
version = "1.16.0"
constraints = "1.16.0"
hashes = [
"h1:JpBtHnebAi6yr/aDdlk8EybaEiEY+VPtFP3o0QoMTng=",
"zh:03c867440797b82012cd5d97f58fef5885dc0248683227299a39af836df222db",
"zh:0486be7f72d6ea73d10140e23be8c1d2772b2d8be28c7bb39c73be83601405cf",
"zh:181929d6880cac6500f4af1f3799385c47ccd69872cacf1042a3a48e445b2b02",
"zh:18b7f6cc1ddf86e28322638607e1f84c1e9d56824c26903e22d4d12352f20b6e",
"zh:4e65e7f9e17c334ff7047fc2dd8fc479c2509cba66834d89e2033a45e9275fe3",
"zh:6077eda3fdf77a5158d9dc1a0c38492e23f7d679b1ac96382ba92ebe92e19266",
"zh:642e7c96867c519176d84228a7f9104352212ae3c999b409eee1076b7ed90a96",
"zh:6451f5117125fad9884214fe2f2635a2bed95912e64cf1c66a57c38558dfe907",
"zh:83b957b30da19586393b9aea2cc93524a7d4c43dd07d11129a11d29c2b4bfb21",
"zh:852954fe6cfe5278bd7c3d1079a9832bbf8c58436486489ed85154c0a0600633",
"zh:a2385c51147a3c40707f7bfceb673c077e1054e8af6fb4c808cef56f995b8193",
"zh:d21cd5cb5a635d18547430fe6cdfe3c6898541f9f3adc110edbf8d6e0439390d",
]
}

View File

@@ -1,58 +0,0 @@
variable "drone_instances" {
description = "How many runner instances should there be?"
default = 3
}
variable "root_pass" {
description = "Root password to set on the node"
}
variable "linode_api_token" {
description = "Linode API Token"
}
variable "ssh_pubkey" {
description = "SSH key to be allowed access by default"
}
terraform {
required_providers {
linode = {
source = "linode/linode"
version = "1.16.0"
}
}
backend "local" {
path = "/data/runner.tfstate"
}
}
provider "linode" {
token = var.linode_api_token
}
resource "linode_instance" "terraform-drone" {
connection {
type = "ssh"
user = "root"
password = var.root_pass
host = self.ip_address
}
count = var.drone_instances
image = "private/15818922"
label = "drone-runner-${count.index + 1}"
group = "docker"
tags = ["tag_Testing","docker"]
region = "ap-southeast"
type = "g6-standard-2"
authorized_keys = [ var.ssh_pubkey ]
root_pass = var.root_pass
provisioner "remote-exec" {
inline = [
"yum upgrade -y && systemctl restart docker",
"docker rm -f runner",
"docker run --detach --volume=/var/run/docker.sock:/var/run/docker.sock --env=DRONE_RPC_PROTO=https --env=DRONE_RPC_HOST=drone.guise.net.nz --env=DRONE_RPC_SECRET=super-duper-secret --env=DRONE_RUNNER_CAPACITY=2 --env=DRONE_RUNNER_NAME=drone-runner-${count.index + 1} --env=DRONE_RUNNER_LABELS='linodrone:true' --env=--publish=3000:3000 --restart=always --name=runner drone/drone-runner-docker:1"
]
}
}

View File

@@ -1,42 +0,0 @@
{
docker_service()::
{
name: 'docker',
image: 'docker:dind',
privileged: true,
volumes: [{ name: 'dockersock', path: '/var/run' },],
},
email_notification()::
{
name: 'notify by email',
image: 'drillster/drone-email',
settings:
{ host: 'mail.guise.net.nz',
username:
{ from_secret: 'EMAIL_USER' },
password:
{ from_secret: 'EMAIL_PASS' },
from: 'drone@guise.net.nz'
},
when:
{ status: [ 'changed', 'failure' ] },
},
test_distro(distribution)::
{
name: 'Test on %(distribution)s' % { distribution: distribution },
volumes: [{ name: 'dockersock', path: '/var/run' },],
image: 'guisea/ansible-molecule:latest',
commands: [
'sleep 10', // give docker enough time to start
'mkdir ${DRONE_REPO_NAME}',
'rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}',
'cd ${DRONE_REPO_NAME}',
'molecule test'
],
environment:
{ MOLECULE_DISTRO: '%(distribution)s' % { distribution: distribution }
},
},
}