Compare commits

..

40 Commits

Author SHA1 Message Date
dc023c6a7f Update servers.ini after "datacenter" move
All checks were successful
continuous-integration/drone Build is passing
2023-06-13 11:08:43 +02:00
ffd96d1de3 💡 Fix update role for xbps package manager
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2023-02-06 17:37:43 +01:00
e4bde9b433 💫 Unverbose 2023-02-06 17:33:25 +01:00
8f2f400eac 🗝️ Ansible ssh key setup
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-02-06 17:32:16 +01:00
f6ad672a7a 🔭 Ansible no host key checking
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-06 17:30:05 +01:00
bd44ed46ae 🤖 Fix Drone CI pipeline
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-02-06 17:27:59 +01:00
2b5f386a42 📂 Unbuffer no pipeline
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-02-06 17:25:20 +01:00
c9d4b00c2d 🔎 Cat unbuffer ansible
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-06 17:19:00 +01:00
0963f22e99 🐃 Expect unbuffer ansible
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-06 17:16:21 +01:00
3ea156b29f 😭 No pipe?!
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 16:49:38 +01:00
52969490d2 🤮
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 16:47:34 +01:00
f0a860d047 🧪 Disable ansible pipelining for CI
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 16:46:12 +01:00
1b363117be 🧧 Bring ya own images!~
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 16:43:06 +01:00
55e3b6904c 🤮 Verbose
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 16:33:14 +01:00
51bd64d25f 🤮 Verbose
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 16:31:44 +01:00
3ae4a500af 🔑 Simple key handling
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 16:21:05 +01:00
2e2e95f1c1 🔑 Handle keys differently
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 16:11:52 +01:00
35abca050e 🤮 Max verbosity
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 16:06:19 +01:00
f77594c451 🤖 Drone CI ansible, only run update tag
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 15:57:24 +01:00
4c6a223170 🔭 Drop volumes, use ssh cli options
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 15:49:14 +01:00
d91c61174a 📦️ CI volume to store ssh settings for ansible
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 15:45:55 +01:00
6868986b7c 🔭 Ansible Drone plugin needs inventory set
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 15:40:31 +01:00
025addba0f 🤖 Fix ansible Drone CI plugin
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 15:39:24 +01:00
5cde178cbd ⏮ Backtrack volume usage in CI
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 15:36:45 +01:00
10ba387d65 🤖 Fix ansible CI
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2023-02-06 15:35:49 +01:00
7ba109cce9 🤖 Drone ansible plugin
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-06 15:32:23 +01:00
b3c3dba667 🗞 Always pull docker images
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 14:53:15 +01:00
44a8ac3d7b 🐞 Debug options for ansible-playbook
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 14:46:45 +01:00
5098807b21 🤖 Fix CI script
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-06 14:33:21 +01:00
ef4084afac 🤖 Fix CI script
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-06 14:26:57 +01:00
51814af4c9 🤖 Fix error in Drone CI ansible-playbook invocation
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-06 14:11:54 +01:00
3931be2672 🌀 Drone CI powered auto updates
Some checks failed
continuous-integration/drone Build is failing
2023-02-06 14:08:28 +01:00
1e8b06987a 🐧 Gentoo linux/portage support in update role! 2022-12-19 18:02:12 +01:00
50a13e2bcd ☁️ Add Sky Labs server inventory 2022-12-19 13:59:53 +01:00
bc0dd6487f 📥️ Various nice improvements 2022-12-19 13:59:24 +01:00
92a48a403b 💅 Update the update (role) 2022-12-16 16:39:49 +01:00
7c6181cf14 📦️ Update inventory 2022-12-16 13:18:04 +01:00
fc8fc4e9c8 Fixes and updates
Added home variable for the home folder, defaults to username.
Edited neofetch config so it runs faster.
Added mukti and ctrl-c.club variables.
2022-03-24 15:18:47 +00:00
425ac598a4 FML
Looks like some versions of neofetch doesn't allow ";" as commet prefix,
like wtf. Guess we'll have to use the "#"!
2022-03-23 02:07:41 +01:00
a70d58f3f7 Ansible god!
Big rework!
Control stuffs with variables!
We still should do some movei'n around of roles before extending
features.
2022-03-23 02:03:04 +01:00
36 changed files with 594 additions and 127 deletions

21
.drone.yml Normal file
View File

@@ -0,0 +1,21 @@
---
kind: pipeline
type: docker
name: run updates
steps:
- name: run updates
image: siverten/ansible
environment:
ANSIBLE_HOST_KEY_CHECKING: False
#ANSIBLE_SSH_PIPELINING: False
ANSIBLE_SSH_ARGS: -o StrictHostKeyChecking no -C -o ControlMaster=auto -o ControlPersist=60s
PASS:
from_secret: pass
KEY:
from_secret: key
commands:
- mkdir ~/.ssh && echo "$KEY" > ~/.ssh/id_rsa && chmod 600 -R ~/.ssh
- sed -i "1s/^/[all:vars]\nansible_become_pass = $PASS\n/" servers.ini
- unbuffer ansible-playbook site.yml -t update | cat

View File

@@ -1,3 +1,9 @@
# Ansible
Ansible playbooks for setting up configs I like.
See group\_vars for a config example.
You may copy that to host\_vars/[somehostname].yml and edit it.
If you have Docker install you may also test the ansible configuration inside a docker container!
The test-docker.sh run uses an alpine container by default.

View File

@@ -1,7 +1,8 @@
[defaults]
interpreter_python = python3
ansible_become_exe = doas
interpreter_python = python3
private_key_file = ~/.ssh/id_rsa
inventory = servers.ini
remote_user = siv
[privilege_escalation]
become = yes

View File

@@ -1,5 +1,6 @@
[docker]
[alpine]
docker-alpine-test ansible_connection=docker ansible_user=root ansible_host=ansible
[alpine:children]
docker
;[skyid:children]
;alpine
[apk:children]
alpine

View File

@@ -1,10 +1,20 @@
name: siv
group: "{{ name }}"
home: /home/{{ name }}
shell: /bin/zsh
user_groups: [adm,wheel,kvm,libvirt,docker]
packages: neofetch openssh doas git zsh bat lsd
pubkeys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1O7dXSrkDZ0l2kQMDnUPcALEYrq9l+fCKANb4sKZebRr+CkvO0Yat6f/O1a4OJWKeIpOMNIG60aiQB4Npn1ACosQ5Jgw1GypEr6QWDKdWqTEQ4qQaJk2sAKbUpEHTvtwlRTZy5zxC0TrRSjXcNmPR5O4GGMPLAdWFmD9iIRA+tjGvB6U4NY8KafxzBmje95oVP8erayEZT90IgljLisg29uAofAfAhjP/KV/z1ppmwrL7Et6N2ZcOfFl+KOcefzjt0bdkV0gFXqYKEFK9WEpVXEHE7CpOu/dJZgVvTT+jfHhWhANkl66dDbv80nfHAINASCBCoUi6CFb8TBru4WABeoyKEQnC04IqHXvgOMr5/f9Sx1PHZNxkXNVuSPbkSnA7Qk4OnHG5c/rEeZ850eM8j0or29PyNFvZjWjBrIG1iReRTdSDkzdwojLuCKMrN8qxmDMuYW0Ey9DCsC2iKyYzJ+3dhilXkaUtQYHrtCM4DB4rcAWV2hRS1mRZwWmKH4QWvwVbjipKAzHg3i2hMFIC6HbNxbYHrzFCSCZN07ObLsyMYR28I74JfFxpNg0OQAZ5QVvOe+PletFjqbpVnjrGhEkBCyGIOfZ14PlJhN0CW8/9fTy6EzvruD2yGTUMq+pJhhJ3Zj5J+zaFJsz3tPxf+OVcsGFLEtbJvu6C9yCT5Q== siv@msitoo
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYIRUCrS6d8HdsDwsiXUvkHFDkUwrULBhIQzsQD5o8bZdaovvAHbB8wnpIvsDBgxdwlH7W0zPfo4P52n+bsq0jH8vkD+wIlSUrKJfj8IWDAHajxCSRG9h4mHtYvhKnV8ER96sdFh+85ULUa6LynCrixE9tFGHvNmNyMacP8BkdrnRb6Sj6l2EZGtViJ9KK66mfOMW6JSpkCsKT5GNY8l2AM2nMnAFrKWNGjKz5M1j85u5Ieqsk3nXhIxFJOWpqLe1CSWH42StA6QAwiN2j7taEaUiO85BgeulMGJe/feZEJHW/wOEd26k0+j4/vJ7tVUZFUk6gpIW01qkSqI0W6fhMSaAMoGKau3l/pEurfE8dQlHbHzOkUs2Il+AcXSZmxuAZiJ5+MhiaN7MtOT3pirD/uQDkEeA9e9ib++K0mu1pEMcsRGqc5XXqpKpWQqw5ceUSbdP3DOuhYLWo8GfP8vSixcFQKiuue7QLhWplsERsD57fjEq+wViXD8aBFNhPrw8V15rR7xuZe4JyBtTdpyoEx7Ji2hRMy5mYekSW9bINpmhve3KAte5G8iIsBrDxMEj1AJDyIofkSkuR75GvbIqCLxtMIC0ahfH7/DrVDr9xNnzfV1NeQ1GglP0BgUpmRtP6ozXotRqBKbiSoH6K+2HgsgKQZukZ4xzMxrV8fBApUQ== siv@MSI
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDqXa9fIVrQTGV4PMTn7ZyyeTLDVC+H4kV6zJzWBGGZf6DSoumJtbTaD6Ob3Czsf/NZ35iCPy2yrar3/Z7ccDrcfpxlNvj9l3NphEdXIebyQ8VmMWBy4pDPjE1erIEaL+J5RfjidB7xauticUIuNj0vtuvum/f09vGsohys+/llU7T+M42AeCTT5omw0DD8DPIUGxFwsgg0RxtD5ol1i3v0zVqwlbc7gnHws9/JCJZrhdHZWWkqvVQLCbRRCq4ZvRBcMdwJsBOeJpM9tkeJ7peZjAnPh7EIPkWh79+S65m6bsBe9N4lX5Qf2jxMSzgGeHhfJmd5O7UVqxH1a4M10e+CZOsWdTbMFEn+pcA04gehV9mL5gazZTMSjVFRzd/NUWi0Z6kecXW0HvxWzvKs+iZgaqL7qsDQUb23nMyvtiRO7JeTfdlo/dpb3Uz12VfwcHWAw1DpyJk3Sd1xV4sLke34F67e141ed72Piig6UuX2/aXm5Due781zIS8zBKBl4vXORbGjLLBo72RctB3xU9nJmkttdeSSF/yRbY7H3+bsvno/VUSAhnYWlGNrZBc+tTtqjYEQ3k/G8I8nwO4e1GDfo6w5G9dZQQ4YyV4v41NRp0TrtuGBpvGf9anMWUcp63f+fXMOZAnSVg42oZZUYWSPQTnoY1E5I3A6K4wrqEHt4w== siv@craptop
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCuXK610CJq4pQrTOxESRXEyzQgAICHjgjvfl5GpOR1DoBAmp4oAsckJjbUWqdsdJN/bHc3Femcy71jvZADoO1RyJ16gZVbGsrz1Ale1/VHifjh1vtFt93dI7amUsyogKS9Ypy/FOVUpSMEtsiIwku5D2LJXe80qOS+TV8INTaplufwf+mrLavBCmQ2jYvC5U3c40JoUD2fs63S4FGgX/XbxZnhYuiIzQiHuk8VBDYXME0noGB7UTo+3oBjZSHCkdsjPIZ0CrxNdCV+dAVQ1K8OYekBmGsjL131buvX8irLyDzpEBqxkyP7J+qx7Imea1KJHL3JneJWTfiCSSXCxJpEp8xlot0OTfmJ0Kfon49F74yClqy+ztgyF8BiSWcNylD1TbOqDMJApJh7/toTcVT6VJ74z7p+/3q5+K3mSUC6BO5ilyD+k9/Af4NjIcfD/P9AWyVR+UEXAN1TrgZWI3V3KZENg3geqyyRPFLh3p1NvlwvhwcUn+jGLm82ZrBvaDqB1ihqkF/1mZLiUrsij/7sEUxI3ZIiLPEVRHPnOb+6oFomWPOGbhwPbl98lOgarsNQzQaOe36KFGC6zHPwN/d5PT5TNCgUQ7Gg8igTlXKSH/XUNy4ArQrjTisWt6k93zrAn0HK2Mh774Bvf9eAXqkvlIoti+r8X8nbiIpVAKvm8Q== siv@billy
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC6HmJQGvQghh8g8JWoUkQf6d3rokSJad4on69WahrvyBUzDASwOnACX0yztDYYu7UzH8TtJqknbp2P5JSKVR+PFvNxo24QYC671QzGyRq4urL8YDsWj5feSL4MEvFY0ivNRNxAKxLHXg+i0jQtiDwBOkhQl0VFrqsKdGlEVcghVeogBAdzHFQNQ7ENZMS30qzW1wrcwWbUBF8ZSvwEQgCXH0UHcIWi3Rzd0g0LfvfbOtI1UjuBzT0gd5F1RSHh0XJWK7jcVrNShMVQqmWWLuHVd8T2k7flGQDBeZPKo3GXdnB4cXgkfNJrsyNDLoJXimj8UryNpn3ejV9DkreL985uAmkLPY11bkD6vWgdZgXA3aWpLQm05crOu4GEn1bGhbnIORm4mjxlANJB0QC9FliCAVkLk4OY7UGnx4mgqMyYjb2LCdgGKVVto97UAisJxWikLiM5nCNrCaGBe05d2nVxPXVKwALI3E2AeIYSmjE4N3mBgUIxWuGS6KoOZsnoSYS3+blQV0W/POuFw4NhlWgZUi8GAaGPfWj8pM/u9dH8FKxhK/PabVKtltLkn4ntgewaeNl18n1NFkQtcDD7Kkg/ZIQ9SiNchK0SxR0/Pgwo/A5GacF+nwTgxGwDJbQ0OPaVlbQd/cCaXl1AX9s7R5Xd8D35KFHTJ1IVnZohDGVQvQ== mob
user_groups: [wheel,sudo,adm,kvm,users,libvirt,docker]
zsh_opt_config: true
bash_prompt: '[\e[0;34m\u\e[0;32m@\e[1;31m\h\e[0m] \e[0;35m\w \e[0m\$'
zsh_prompt: "{{ '%F{blue}% %n%F{green}% @%F{red}% %m %F{#bb33bb}% %1~%f >' }}"
pubkeys: [
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1O7dXSrkDZ0l2kQMDnUPcALEYrq9l+fCKANb4sKZebRr+CkvO0Yat6f/O1a4OJWKeIpOMNIG60aiQB4Npn1ACosQ5Jgw1GypEr6QWDKdWqTEQ4qQaJk2sAKbUpEHTvtwlRTZy5zxC0TrRSjXcNmPR5O4GGMPLAdWFmD9iIRA+tjGvB6U4NY8KafxzBmje95oVP8erayEZT90IgljLisg29uAofAfAhjP/KV/z1ppmwrL7Et6N2ZcOfFl+KOcefzjt0bdkV0gFXqYKEFK9WEpVXEHE7CpOu/dJZgVvTT+jfHhWhANkl66dDbv80nfHAINASCBCoUi6CFb8TBru4WABeoyKEQnC04IqHXvgOMr5/f9Sx1PHZNxkXNVuSPbkSnA7Qk4OnHG5c/rEeZ850eM8j0or29PyNFvZjWjBrIG1iReRTdSDkzdwojLuCKMrN8qxmDMuYW0Ey9DCsC2iKyYzJ+3dhilXkaUtQYHrtCM4DB4rcAWV2hRS1mRZwWmKH4QWvwVbjipKAzHg3i2hMFIC6HbNxbYHrzFCSCZN07ObLsyMYR28I74JfFxpNg0OQAZ5QVvOe+PletFjqbpVnjrGhEkBCyGIOfZ14PlJhN0CW8/9fTy6EzvruD2yGTUMq+pJhhJ3Zj5J+zaFJsz3tPxf+OVcsGFLEtbJvu6C9yCT5Q== siv@msitoo,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYIRUCrS6d8HdsDwsiXUvkHFDkUwrULBhIQzsQD5o8bZdaovvAHbB8wnpIvsDBgxdwlH7W0zPfo4P52n+bsq0jH8vkD+wIlSUrKJfj8IWDAHajxCSRG9h4mHtYvhKnV8ER96sdFh+85ULUa6LynCrixE9tFGHvNmNyMacP8BkdrnRb6Sj6l2EZGtViJ9KK66mfOMW6JSpkCsKT5GNY8l2AM2nMnAFrKWNGjKz5M1j85u5Ieqsk3nXhIxFJOWpqLe1CSWH42StA6QAwiN2j7taEaUiO85BgeulMGJe/feZEJHW/wOEd26k0+j4/vJ7tVUZFUk6gpIW01qkSqI0W6fhMSaAMoGKau3l/pEurfE8dQlHbHzOkUs2Il+AcXSZmxuAZiJ5+MhiaN7MtOT3pirD/uQDkEeA9e9ib++K0mu1pEMcsRGqc5XXqpKpWQqw5ceUSbdP3DOuhYLWo8GfP8vSixcFQKiuue7QLhWplsERsD57fjEq+wViXD8aBFNhPrw8V15rR7xuZe4JyBtTdpyoEx7Ji2hRMy5mYekSW9bINpmhve3KAte5G8iIsBrDxMEj1AJDyIofkSkuR75GvbIqCLxtMIC0ahfH7/DrVDr9xNnzfV1NeQ1GglP0BgUpmRtP6ozXotRqBKbiSoH6K+2HgsgKQZukZ4xzMxrV8fBApUQ== siv@MSI,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDqXa9fIVrQTGV4PMTn7ZyyeTLDVC+H4kV6zJzWBGGZf6DSoumJtbTaD6Ob3Czsf/NZ35iCPy2yrar3/Z7ccDrcfpxlNvj9l3NphEdXIebyQ8VmMWBy4pDPjE1erIEaL+J5RfjidB7xauticUIuNj0vtuvum/f09vGsohys+/llU7T+M42AeCTT5omw0DD8DPIUGxFwsgg0RxtD5ol1i3v0zVqwlbc7gnHws9/JCJZrhdHZWWkqvVQLCbRRCq4ZvRBcMdwJsBOeJpM9tkeJ7peZjAnPh7EIPkWh79+S65m6bsBe9N4lX5Qf2jxMSzgGeHhfJmd5O7UVqxH1a4M10e+CZOsWdTbMFEn+pcA04gehV9mL5gazZTMSjVFRzd/NUWi0Z6kecXW0HvxWzvKs+iZgaqL7qsDQUb23nMyvtiRO7JeTfdlo/dpb3Uz12VfwcHWAw1DpyJk3Sd1xV4sLke34F67e141ed72Piig6UuX2/aXm5Due781zIS8zBKBl4vXORbGjLLBo72RctB3xU9nJmkttdeSSF/yRbY7H3+bsvno/VUSAhnYWlGNrZBc+tTtqjYEQ3k/G8I8nwO4e1GDfo6w5G9dZQQ4YyV4v41NRp0TrtuGBpvGf9anMWUcp63f+fXMOZAnSVg42oZZUYWSPQTnoY1E5I3A6K4wrqEHt4w== siv@craptop,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCuXK610CJq4pQrTOxESRXEyzQgAICHjgjvfl5GpOR1DoBAmp4oAsckJjbUWqdsdJN/bHc3Femcy71jvZADoO1RyJ16gZVbGsrz1Ale1/VHifjh1vtFt93dI7amUsyogKS9Ypy/FOVUpSMEtsiIwku5D2LJXe80qOS+TV8INTaplufwf+mrLavBCmQ2jYvC5U3c40JoUD2fs63S4FGgX/XbxZnhYuiIzQiHuk8VBDYXME0noGB7UTo+3oBjZSHCkdsjPIZ0CrxNdCV+dAVQ1K8OYekBmGsjL131buvX8irLyDzpEBqxkyP7J+qx7Imea1KJHL3JneJWTfiCSSXCxJpEp8xlot0OTfmJ0Kfon49F74yClqy+ztgyF8BiSWcNylD1TbOqDMJApJh7/toTcVT6VJ74z7p+/3q5+K3mSUC6BO5ilyD+k9/Af4NjIcfD/P9AWyVR+UEXAN1TrgZWI3V3KZENg3geqyyRPFLh3p1NvlwvhwcUn+jGLm82ZrBvaDqB1ihqkF/1mZLiUrsij/7sEUxI3ZIiLPEVRHPnOb+6oFomWPOGbhwPbl98lOgarsNQzQaOe36KFGC6zHPwN/d5PT5TNCgUQ7Gg8igTlXKSH/XUNy4ArQrjTisWt6k93zrAn0HK2Mh774Bvf9eAXqkvlIoti+r8X8nbiIpVAKvm8Q== siv@billy,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC6HmJQGvQghh8g8JWoUkQf6d3rokSJad4on69WahrvyBUzDASwOnACX0yztDYYu7UzH8TtJqknbp2P5JSKVR+PFvNxo24QYC671QzGyRq4urL8YDsWj5feSL4MEvFY0ivNRNxAKxLHXg+i0jQtiDwBOkhQl0VFrqsKdGlEVcghVeogBAdzHFQNQ7ENZMS30qzW1wrcwWbUBF8ZSvwEQgCXH0UHcIWi3Rzd0g0LfvfbOtI1UjuBzT0gd5F1RSHh0XJWK7jcVrNShMVQqmWWLuHVd8T2k7flGQDBeZPKo3GXdnB4cXgkfNJrsyNDLoJXimj8UryNpn3ejV9DkreL985uAmkLPY11bkD6vWgdZgXA3aWpLQm05crOu4GEn1bGhbnIORm4mjxlANJB0QC9FliCAVkLk4OY7UGnx4mgqMyYjb2LCdgGKVVto97UAisJxWikLiM5nCNrCaGBe05d2nVxPXVKwALI3E2AeIYSmjE4N3mBgUIxWuGS6KoOZsnoSYS3+blQV0W/POuFw4NhlWgZUi8GAaGPfWj8pM/u9dH8FKxhK/PabVKtltLkn4ntgewaeNl18n1NFkQtcDD7Kkg/ZIQ9SiNchK0SxR0/Pgwo/A5GacF+nwTgxGwDJbQ0OPaVlbQd/cCaXl1AX9s7R5Xd8D35KFHTJ1IVnZohDGVQvQ== mob]
packages: [neofetch,rsync,htop,git,zsh,lsd,bat]
package_manager: null
extra_packages: []
update: true
setup: [zsh,extra,system] # ,bash,emacs
revert: false

2
group_vars/apk.yml Normal file
View File

@@ -0,0 +1,2 @@
extra_packages: [openssh,doas,lsd]
package_manager: apk

2
group_vars/apt.yml Normal file
View File

@@ -0,0 +1,2 @@
extra_packages: [doas,ssh]
package_manager: apt

19
group_vars/mukti.yml Normal file
View File

@@ -0,0 +1,19 @@
name: 1337h4ckz0r5
group: "{{ name }}"
home: /home/coder
shell: /bin/zsh
user_groups: [sudo,docker]
zsh_opt_config: false
bash_prompt: '[\e[0;34m\u\e[0;32m@\e[1;31m\h\e[0m] \e[0;35m\w \e[0m\$'
zsh_prompt: "{{ '%F{red}% %n%F{green}% @%F{blue}% %m %F{#bb33bb}% %1~%f >' }}"
pubkeys: [
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1O7dXSrkDZ0l2kQMDnUPcALEYrq9l+fCKANb4sKZebRr+CkvO0Yat6f/O1a4OJWKeIpOMNIG60aiQB4Npn1ACosQ5Jgw1GypEr6QWDKdWqTEQ4qQaJk2sAKbUpEHTvtwlRTZy5zxC0TrRSjXcNmPR5O4GGMPLAdWFmD9iIRA+tjGvB6U4NY8KafxzBmje95oVP8erayEZT90IgljLisg29uAofAfAhjP/KV/z1ppmwrL7Et6N2ZcOfFl+KOcefzjt0bdkV0gFXqYKEFK9WEpVXEHE7CpOu/dJZgVvTT+jfHhWhANkl66dDbv80nfHAINASCBCoUi6CFb8TBru4WABeoyKEQnC04IqHXvgOMr5/f9Sx1PHZNxkXNVuSPbkSnA7Qk4OnHG5c/rEeZ850eM8j0or29PyNFvZjWjBrIG1iReRTdSDkzdwojLuCKMrN8qxmDMuYW0Ey9DCsC2iKyYzJ+3dhilXkaUtQYHrtCM4DB4rcAWV2hRS1mRZwWmKH4QWvwVbjipKAzHg3i2hMFIC6HbNxbYHrzFCSCZN07ObLsyMYR28I74JfFxpNg0OQAZ5QVvOe+PletFjqbpVnjrGhEkBCyGIOfZ14PlJhN0CW8/9fTy6EzvruD2yGTUMq+pJhhJ3Zj5J+zaFJsz3tPxf+OVcsGFLEtbJvu6C9yCT5Q== siv@msitoo,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYIRUCrS6d8HdsDwsiXUvkHFDkUwrULBhIQzsQD5o8bZdaovvAHbB8wnpIvsDBgxdwlH7W0zPfo4P52n+bsq0jH8vkD+wIlSUrKJfj8IWDAHajxCSRG9h4mHtYvhKnV8ER96sdFh+85ULUa6LynCrixE9tFGHvNmNyMacP8BkdrnRb6Sj6l2EZGtViJ9KK66mfOMW6JSpkCsKT5GNY8l2AM2nMnAFrKWNGjKz5M1j85u5Ieqsk3nXhIxFJOWpqLe1CSWH42StA6QAwiN2j7taEaUiO85BgeulMGJe/feZEJHW/wOEd26k0+j4/vJ7tVUZFUk6gpIW01qkSqI0W6fhMSaAMoGKau3l/pEurfE8dQlHbHzOkUs2Il+AcXSZmxuAZiJ5+MhiaN7MtOT3pirD/uQDkEeA9e9ib++K0mu1pEMcsRGqc5XXqpKpWQqw5ceUSbdP3DOuhYLWo8GfP8vSixcFQKiuue7QLhWplsERsD57fjEq+wViXD8aBFNhPrw8V15rR7xuZe4JyBtTdpyoEx7Ji2hRMy5mYekSW9bINpmhve3KAte5G8iIsBrDxMEj1AJDyIofkSkuR75GvbIqCLxtMIC0ahfH7/DrVDr9xNnzfV1NeQ1GglP0BgUpmRtP6ozXotRqBKbiSoH6K+2HgsgKQZukZ4xzMxrV8fBApUQ== siv@MSI,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDqXa9fIVrQTGV4PMTn7ZyyeTLDVC+H4kV6zJzWBGGZf6DSoumJtbTaD6Ob3Czsf/NZ35iCPy2yrar3/Z7ccDrcfpxlNvj9l3NphEdXIebyQ8VmMWBy4pDPjE1erIEaL+J5RfjidB7xauticUIuNj0vtuvum/f09vGsohys+/llU7T+M42AeCTT5omw0DD8DPIUGxFwsgg0RxtD5ol1i3v0zVqwlbc7gnHws9/JCJZrhdHZWWkqvVQLCbRRCq4ZvRBcMdwJsBOeJpM9tkeJ7peZjAnPh7EIPkWh79+S65m6bsBe9N4lX5Qf2jxMSzgGeHhfJmd5O7UVqxH1a4M10e+CZOsWdTbMFEn+pcA04gehV9mL5gazZTMSjVFRzd/NUWi0Z6kecXW0HvxWzvKs+iZgaqL7qsDQUb23nMyvtiRO7JeTfdlo/dpb3Uz12VfwcHWAw1DpyJk3Sd1xV4sLke34F67e141ed72Piig6UuX2/aXm5Due781zIS8zBKBl4vXORbGjLLBo72RctB3xU9nJmkttdeSSF/yRbY7H3+bsvno/VUSAhnYWlGNrZBc+tTtqjYEQ3k/G8I8nwO4e1GDfo6w5G9dZQQ4YyV4v41NRp0TrtuGBpvGf9anMWUcp63f+fXMOZAnSVg42oZZUYWSPQTnoY1E5I3A6K4wrqEHt4w== siv@craptop,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCuXK610CJq4pQrTOxESRXEyzQgAICHjgjvfl5GpOR1DoBAmp4oAsckJjbUWqdsdJN/bHc3Femcy71jvZADoO1RyJ16gZVbGsrz1Ale1/VHifjh1vtFt93dI7amUsyogKS9Ypy/FOVUpSMEtsiIwku5D2LJXe80qOS+TV8INTaplufwf+mrLavBCmQ2jYvC5U3c40JoUD2fs63S4FGgX/XbxZnhYuiIzQiHuk8VBDYXME0noGB7UTo+3oBjZSHCkdsjPIZ0CrxNdCV+dAVQ1K8OYekBmGsjL131buvX8irLyDzpEBqxkyP7J+qx7Imea1KJHL3JneJWTfiCSSXCxJpEp8xlot0OTfmJ0Kfon49F74yClqy+ztgyF8BiSWcNylD1TbOqDMJApJh7/toTcVT6VJ74z7p+/3q5+K3mSUC6BO5ilyD+k9/Af4NjIcfD/P9AWyVR+UEXAN1TrgZWI3V3KZENg3geqyyRPFLh3p1NvlwvhwcUn+jGLm82ZrBvaDqB1ihqkF/1mZLiUrsij/7sEUxI3ZIiLPEVRHPnOb+6oFomWPOGbhwPbl98lOgarsNQzQaOe36KFGC6zHPwN/d5PT5TNCgUQ7Gg8igTlXKSH/XUNy4ArQrjTisWt6k93zrAn0HK2Mh774Bvf9eAXqkvlIoti+r8X8nbiIpVAKvm8Q== siv@billy,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC6HmJQGvQghh8g8JWoUkQf6d3rokSJad4on69WahrvyBUzDASwOnACX0yztDYYu7UzH8TtJqknbp2P5JSKVR+PFvNxo24QYC671QzGyRq4urL8YDsWj5feSL4MEvFY0ivNRNxAKxLHXg+i0jQtiDwBOkhQl0VFrqsKdGlEVcghVeogBAdzHFQNQ7ENZMS30qzW1wrcwWbUBF8ZSvwEQgCXH0UHcIWi3Rzd0g0LfvfbOtI1UjuBzT0gd5F1RSHh0XJWK7jcVrNShMVQqmWWLuHVd8T2k7flGQDBeZPKo3GXdnB4cXgkfNJrsyNDLoJXimj8UryNpn3ejV9DkreL985uAmkLPY11bkD6vWgdZgXA3aWpLQm05crOu4GEn1bGhbnIORm4mjxlANJB0QC9FliCAVkLk4OY7UGnx4mgqMyYjb2LCdgGKVVto97UAisJxWikLiM5nCNrCaGBe05d2nVxPXVKwALI3E2AeIYSmjE4N3mBgUIxWuGS6KoOZsnoSYS3+blQV0W/POuFw4NhlWgZUi8GAaGPfWj8pM/u9dH8FKxhK/PabVKtltLkn4ntgewaeNl18n1NFkQtcDD7Kkg/ZIQ9SiNchK0SxR0/Pgwo/A5GacF+nwTgxGwDJbQ0OPaVlbQd/cCaXl1AX9s7R5Xd8D35KFHTJ1IVnZohDGVQvQ== mob]
packages: [neofetch,htop,git,zsh,bat]
package_manager: apt
#extra_packages: [emacs]
update: true
setup: [zsh,bash,user,extra,system] #,emacs

2
group_vars/pacman.yml Normal file
View File

@@ -0,0 +1,2 @@
extra_packages: [opendoas,openssh,lsd]
package_manager: pacman

10
group_vars/skyid.yml Normal file
View File

@@ -0,0 +1,10 @@
user_groups: [sysadmins,systemd-journal]
zsh_prompt: "{{ '%F{blue}% %n%F{green}% @%F{red}% %m %F{yellow}% %1~%f >' }}"
setup: [zsh,bash,extra]
zsh_opt_config: false
extra_packages: []
packages: []
pubkeys: []
update: false
name: sivert
group: "{{ user_groups[0] }}"

2
host_vars/42069.no.yml Normal file
View File

@@ -0,0 +1,2 @@
---
user_groups: [sudo, adm, kvm, users, docker]

View File

@@ -0,0 +1,3 @@
---
zsh_opt_config: true
user_groups: [wheel, sudo, adm, kvm, users, docker]

View File

@@ -0,0 +1,8 @@
---
zsh_opt_config: false
zsh_prompt: "{{ '%F{blue}% %n%F{green}% @%F{red}% %m %F{#bb33bb}% %1~%f >' }}"
package_manager: null
# extra_packages: []
update: false
setup: [zsh,extra,system] # ,bash,emacs
revert: false

View File

@@ -0,0 +1,12 @@
pubkeys: [
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1O7dXSrkDZ0l2kQMDnUPcALEYrq9l+fCKANb4sKZebRr+CkvO0Yat6f/O1a4OJWKeIpOMNIG60aiQB4Npn1ACosQ5Jgw1GypEr6QWDKdWqTEQ4qQaJk2sAKbUpEHTvtwlRTZy5zxC0TrRSjXcNmPR5O4GGMPLAdWFmD9iIRA+tjGvB6U4NY8KafxzBmje95oVP8erayEZT90IgljLisg29uAofAfAhjP/KV/z1ppmwrL7Et6N2ZcOfFl+KOcefzjt0bdkV0gFXqYKEFK9WEpVXEHE7CpOu/dJZgVvTT+jfHhWhANkl66dDbv80nfHAINASCBCoUi6CFb8TBru4WABeoyKEQnC04IqHXvgOMr5/f9Sx1PHZNxkXNVuSPbkSnA7Qk4OnHG5c/rEeZ850eM8j0or29PyNFvZjWjBrIG1iReRTdSDkzdwojLuCKMrN8qxmDMuYW0Ey9DCsC2iKyYzJ+3dhilXkaUtQYHrtCM4DB4rcAWV2hRS1mRZwWmKH4QWvwVbjipKAzHg3i2hMFIC6HbNxbYHrzFCSCZN07ObLsyMYR28I74JfFxpNg0OQAZ5QVvOe+PletFjqbpVnjrGhEkBCyGIOfZ14PlJhN0CW8/9fTy6EzvruD2yGTUMq+pJhhJ3Zj5J+zaFJsz3tPxf+OVcsGFLEtbJvu6C9yCT5Q== siv@msitoo,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDqXa9fIVrQTGV4PMTn7ZyyeTLDVC+H4kV6zJzWBGGZf6DSoumJtbTaD6Ob3Czsf/NZ35iCPy2yrar3/Z7ccDrcfpxlNvj9l3NphEdXIebyQ8VmMWBy4pDPjE1erIEaL+J5RfjidB7xauticUIuNj0vtuvum/f09vGsohys+/llU7T+M42AeCTT5omw0DD8DPIUGxFwsgg0RxtD5ol1i3v0zVqwlbc7gnHws9/JCJZrhdHZWWkqvVQLCbRRCq4ZvRBcMdwJsBOeJpM9tkeJ7peZjAnPh7EIPkWh79+S65m6bsBe9N4lX5Qf2jxMSzgGeHhfJmd5O7UVqxH1a4M10e+CZOsWdTbMFEn+pcA04gehV9mL5gazZTMSjVFRzd/NUWi0Z6kecXW0HvxWzvKs+iZgaqL7qsDQUb23nMyvtiRO7JeTfdlo/dpb3Uz12VfwcHWAw1DpyJk3Sd1xV4sLke34F67e141ed72Piig6UuX2/aXm5Due781zIS8zBKBl4vXORbGjLLBo72RctB3xU9nJmkttdeSSF/yRbY7H3+bsvno/VUSAhnYWlGNrZBc+tTtqjYEQ3k/G8I8nwO4e1GDfo6w5G9dZQQ4YyV4v41NRp0TrtuGBpvGf9anMWUcp63f+fXMOZAnSVg42oZZUYWSPQTnoY1E5I3A6K4wrqEHt4w== siv@craptop]
#extra_packages: [openssh,emacs,doas,lsd]
extra_packages: [git]
user_groups: [adm,users]
setup: [bash,zsh,system,extra] # ,emacs
# zsh_opt_config: true
package_manager: apk
pubkeys: []
extra_packages: [doas,lsd]
# update: false

View File

@@ -1 +1,2 @@
permit nopass siv as root
permit persist :adm
permit persist siv

View File

@@ -0,0 +1,105 @@
print_info() {
info title
info underline
info "OS" distro &
info "Host" model &
info "Kernel" kernel &
info "Uptime" uptime &
info "Packages" packages &
info "Shell" shell &
# info "Resolution" resolution &
# info "DE" de &
# info "WM" wm &
# info "WM Theme" wm_theme &
# info "Theme" theme &
info "Icons" icons &
info "Terminal" term &
info "Terminal Font" term_font &
info "CPU" cpu &
info "GPU" gpu &
info "Memory" memory &
# info "GPU Driver" gpu_driver & # Linux/macOS only
# info "CPU Usage" cpu_usage &
info "Disk" disk &
# info "Battery" battery &
info "Font" font &
# info "Song" song &
# [[ "$player" ]] && prin "Music Player" "$player" &
info "Local IP" local_ip &
# info "Public IP" public_ip &
# info "Users" users &
# info "Locale" locale & # This only works on glibc systems.
wait
info cols
}
title_fqdn="off"
kernel_shorthand="off"
distro_shorthand="off"
os_arch="off"
uptime_shorthand="on"
memory_percent="on"
memory_unit="gib"
package_managers="on"
shell_path="on"
shell_version="on"
speed_type="bios_limit"
speed_shorthand="on"
cpu_brand="on"
cpu_speed="on"
cpu_cores="logical"
cpu_temp="C"
gpu_brand="on"
gpu_type="all"
refresh_rate="on"
gtk_shorthand="off"
gtk2="on"
gtk3="on"
public_ip_host="https://myip.wtf/text"
public_ip_timeout=2
de_version="on"
disk_show=('/')
disk_subtitle="mount"
disk_percent="on"
music_player="auto"
song_format="%artist% - %album% - %title%"
song_shorthand="off"
mpc_args=()
colors=(distro)
bold="on"
underline_enabled="on"
underline_char="-"
separator=":"
block_range=(0 15)
color_blocks="on"
block_width=2
block_height=1
col_offset="auto"
bar_char_elapsed="="
bar_char_total="-"
bar_border="on"
bar_length=15
bar_color_elapsed="distro"
bar_color_total="distro"
cpu_display="infobar"
memory_display="infobar"
battery_display="infobar"
disk_display="infobar"
image_backend="ascii"
image_source="ascii"
ascii_distro="auto"
ascii_colors=(distro)
ascii_bold="on"
image_loop="off"
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
crop_mode="normal"
crop_offset="center"
image_size="auto"
gap=3
yoffset=1
xoffset=1
background_color=
stdout="off"

View File

@@ -1,36 +1,68 @@
- name: Install and configure packages
---
- name: Install packages
when: update
block:
- name: Install the good stuff (pacman)
pacman: name={{ packages }} state=latest
when: "'pacman' in group_names"
- name: Install packages (pacman)
when: package_manager == 'pacman' or 'pacman' in group_names
tags: pacman
- name: Install the good stuff (apk)
apk: name={{ packages }} state=latest
when: "'apk' in group_names or 'alpine' in group_names"
tags: apk
- name: Install the good stuff (apt)
apt: package={{ packages }} state=latest
when: "'apt' in group_names"
tags: apt
block:
- name: Install the good stuff (pacman)
pacman: name={{ item }} state=latest
ignore_errors: true
with_items:
- "{{ extra_packages }}"
- "{{ packages }}"
rescue:
- name: Uninstall the good stuff (pacman)
pacman: name={{ item }} state=absent
with_items:
- "{{ extra_packages }}"
- "{{ packages }}"
- name: Install packages (apk)
when: package_manager == 'apk' or 'apk' in group_names or 'alpine' in group_names
tags: apk
block:
- name: Install the good stuff (apk)
apk: name={{ item }} state=latest
ignore_errors: true
with_items:
- "{{ extra_packages }}"
- "{{ packages }}"
rescue:
- name: Uninstall the good stuff (apk)
apk: name={{ item }} state=absent
with_items:
- "{{ extra_packages }}"
- "{{ packages }}"
- name: Install packages (apt)
when: package_manager == 'apt' or 'apt' in group_names
tags: apt
block:
- name: Install the good stuff (apt)
apt: package={{ item }} state=latest
ignore_errors: true
with_items:
- "{{ extra_packages }}"
- "{{ packages }}"
rescue:
- name: Uninstall the good stuff (apt)
apt: package={{ item }} state=absent
with_items:
- "{{ extra_packages }}"
- "{{ packages }}"
- name: Configure system packages
when: "'system' in setup"
block:
- name: Add /etc/doas.conf
copy: src=doas.conf dest=/etc/doas.conf owner=root group=root mode=0644
tags: system
rescue:
- name: Uninstall the good stuff (pacman)
pacman: name={{ packages }} state=absent
when: "'pacman' in group_names"
tags: pacman
- name: Uninstall the good stuff (apk)
apk: name={{ packages }} state=absent
when: "'apk' in group_names or 'alpine' in group_names"
tags: apk
- name: Uninstall the good stuff (apt)
apt: package={{ packages }} state=absent
when: "'apt' in group_names"
tags: apt
- name: Remove /etc/doas.conf
file: state=absent path=/etc/doas.conf
tags: system
- name: Configure user configs
when: "'user' in setup and ('neofetch' in packages or 'neofetch' in extra_packages)"
block:
- name: Add ~/.config/neofetch/
copy: src=neofetch dest={{ home }}/.config owner={{ name }} group={{ group }} mode=0755
tags: config

16
roles/shell/files/aliases.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/sh
which lsd>/dev/null
([ $? -eq 0 ] && \
alias ls="lsd -h --color=auto --group-dirs first") || \
alias ls="ls -h --color=auto --group-directories-first"
# if [ $? -eq 0 ]; then
# alias ls="lsd -h --color=auto --group-dirs first"
# else
# alias ls="ls -h --color=auto --group-directories-first"
# fi
which doas>/dev/null && [ $? -eq 0 ] && alias doas="sudo"
alias\
ll="ls -l"\
la="ls -a"\
diff="diff --color=auto"\
grep="grep --color=auto -n"

21
roles/shell/files/bin/vault.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/bin/sh
[ -z "$REMOTE" ] && REMOTE=siv@archy.42069.no:/home/coder
run_rsync() {
rsync "$1" "$2" "$3"
[ $? -eq 12 ] && echo -e "\e[0;31mRsync is missing on the remote server!\e[0," && exit 0
}
pull() {
run_rsync "$1" "$3" "$2"
}
push() {
run_rsync "$1" "$2" "$3"
}
sync() {
pull "$1" "$2" "$3"
push "$1" "$2" "$3"
}
case "$1" in
mount) cryfs ~/.vault ~/vault -o allow_root ;;
push|pull|sync) $1 "-aze ssh" "$HOME/.vault" "$REMOTE" ;;
*) echo "Usage: $0 [ push | pull | sync | mount ]" ;;
esac

View File

@@ -0,0 +1,28 @@
- name: Add .aliases
copy: src=aliases.sh dest={{ home }}/.aliases owner={{ name }} group={{ group }} mode=0644
- name: Add .bat.conf
copy: src=bat.conf dest={{ home }}/.bat.conf owner={{ name }} group={{ group }} mode=0644
when: "'bat' in packages or 'bat' in extra_packages"
- name: Add ~/.local/bin
copy: src=bin dest={{ home }}/.local/bin owner={{ name }} group={{ group }} mode=0755
- name: Install zsh syntax highlighting (~/.zshrc.d folder)
when: not zsh_opt_config
git:
repo: https://github.com/zsh-users/zsh-syntax-highlighting.git
dest: "{{ home }}/.zshrc.d/zsh-syntax-highlighting"
single_branch: yes
version: master
- name: Install zsh syntax highlighting (/opt/zsh folder)
when: zsh_opt_config
git:
repo: https://github.com/zsh-users/zsh-syntax-highlighting.git
dest: /opt/zsh/zsh-syntax-highlighting
single_branch: yes
version: master
become: true
- name: Add ~/.zshrc.d -> /opt/zsh symbolic link
when: zsh_opt_config
file: state=link dest={{ home }}/.zshrc.d src=/opt/zsh owner={{ name }} group={{ group }} mode=0755
- name: Set owner ship of zsh syntax highlighting files
file: state=directory recurse=yes dest={{ home }}/.zshrc.d owner={{ name }} group={{ group }}

View File

@@ -0,0 +1,30 @@
- name: Setup user zsh config
when: "'zsh' in setup"
tags: [user,zsh]
block:
- name: Add .zshrc
template: src=zshrc.zsh.j2 dest={{ home }}/.zshrc owner={{ name }} group={{ group }} mode=0644
- name: Add zsh zstyles config
copy: src=zstyles.zsh dest={{ home }}/.zstyles owner={{ name }} group={{ group }} mode=0644
- name: Setup user bash config
when: "'bash' in setup"
tags: [user,bash]
block:
- name: Add .bashrc
template: src=bashrc.sh.j2 dest={{ home }}/.bashrc owner={{ name }} group={{ group }} mode=0644
- name: Setup user extra config
when: "'extra' in setup"
tags: [user,extra]
block:
- import_tasks: extra.yml
- name: Add .env file
when: not revert
copy: src=env.sh dest={{ home }}/.env owner={{ name }} group={{ group }} mode=0644
- name: Revert ansible shell setup
when: revert
block:
- import_tasks: revert.yml

View File

@@ -0,0 +1,27 @@
- name: Remove user zsh config
tags: [zsh]
block:
- name: Remove .zshrc
file: state=absent path={{ home }}/.zshrc
- name: Remove zsh zstyles config
file: state=absent path={{ home }}/.zstyles
- name: Remove .zshrc.d folder/link
file: state=absent path={{ home }}/.zshrc.d
- name: Remove zsh syntax highlighting
file: state=absent path={{ home }}/.zshrc.d/zsh-syntax-highlighting
when: not zsh_opt_config
- name: Remove zsh syntax highlighting (/opt/zsh)
file: state=absent path=/opt/zsh/zsh-syntax-highlighting
when: zsh_opt_config
- name: Remove extra user config
when: "'extra' in setup"
tags: [extra]
block:
- name: Remove .aliases
file: state=absent path={{ home }}/.aliases
- name: Remove .bat.conf
file: state=absent path={{ home }}/.bat.conf
- name: Remove .env file
file: state=absent path={{ home }}/.env

View File

@@ -0,0 +1,25 @@
case $- in
*i*) ;;
*) return;;
esac
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
shopt -s histappend checkwinsize globstar
HISTFILESIZE=42069
HISTSIZE=42069
#PS1='${debian_chroot:+($debian_chroot)}{{ bash_prompt }} '
PS1='{{ bash_prompt }} '
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
[ -f ~/.bash_aliases ] && . ~/.bash_aliases
[ -f ~/.aliases ] && . ~/.aliases
[ -f ~/.env ] && . ~/.env
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi

View File

@@ -1,6 +1,6 @@
[[ $- != *i* ]] && return
PROMPT="%F{yellow}% %n%F{green}% @%F{blue}% %m %F{#bb33bb}% %1~%f > "
PROMPT="{{ zsh_prompt }} "
setopt autocd extendedglob nomatch notify prompt_subst
autoload -Uz compinit && compinit
unsetopt beep

View File

@@ -1,30 +1,50 @@
- name: Update and upgrade pacman packages
pacman:
update_cache: yes
upgrade: yes
when: "'pacman' in group_names"
tags: pacman
---
- name: Update and upgrade package managed stuff
when: update
block:
# - name: Install yay (AUR helper)
- name: Add some repos (alpine)
become: yes
shell: |
grep -R 'testing' /etc/apk/repositories
[ $? == 1 ] && echo 'https://dl-cdn.alpinelinux.org/alpine/edge/testing'>>/etc/apk/repositories
when: "'alpine' in group_names"
tags: alpine
# - name: Update and upgrade yay packages
# yay: update_cache=yes upgrade=yes
# when: package_manager == 'yay' or 'yay' in group_names
- name: Update and upgrade apk packages
become: true
apk:
update_cache: yes
upgrade: yes
when: "'apk' in group_names or 'alpine' in group_names"
tags: apk
- name: Update and upgrade pacman packages
become: true
shell: pacman -Syu --noconfirm
when: package_manager == 'yay' or 'yay' in group_names
- name: Update and upgrade apt packages
become: true
apt:
update_cache: yes
upgrade: yes
when: "'apt' in group_names"
tags: apt
- name: Add some repos (alpine)
become: true
shell: |
grep -R 'testing' /etc/apk/repositories
if [ $? == 1 ]; then
echo 'https://dl-cdn.alpinelinux.org/alpine/edge/testing'\
>>/etc/apk/repositories
fi
when: "'alpine' in group_names"
- name: Update, upgrade and autoremove xbps packages
become: true
shell: xbps-install -ASuvy && xbps-remove -ROoy
when: package_manager == 'xbps' or 'xbps' in group_names
- name: Update and upgrade apk packages
become: true
apk:
update_cache: true
upgrade: true
state: 'latest'
when: package_manager == 'apk' or 'apk' in group_names
- name: Update and upgrade apt packages
become: true
apt:
update_cache: true
autoremove: true
upgrade: true
when: package_manager == 'apt' or 'apt' in group_names
- name: Update and upgrade portage packages
become: true
shell: eix-sync && emerge -uDNU --with-bdeps=y @world
when: package_manager == 'emerge' or 'emerge' in group_names

View File

@@ -0,0 +1,21 @@
- name: Setup doom emacs
when: "'emacs' in setup"
tags: [doom,emacs]
block:
- name: Remove old emacs config
file: state=absent path={{ home }}/.emacs.d
- name: Git clone doom emacs
git:
repo: https://github.com/hlissner/doom-emacs
dest: "{{ home }}/.emacs.d"
accept_newhostkey: yes
single_branch: yes
version: master
depth: 1
- name: Install doom emacs
shell: |
chown -R {{ name }} {{ home }}/.emacs.d
echo "y\ny"|su {{ name }} {{ home }}/.emacs.d/bin/doom install
#* ^ Above we answer terminal prompts
# - name: Add doom emacs config
# - name: Run doom sync

View File

@@ -1,4 +1,5 @@
- name: Create user
when: "'system' in setup"
user:
name="{{ name }}"
groups="{{ item }}"
@@ -13,3 +14,4 @@
key="{{ item }}"
with_items:
- "{{ pubkeys }}"
- import_tasks: doom-emacs.yml

View File

@@ -1,7 +0,0 @@
#!/bin/sh
alias\
ls="lsd -h --color=auto --group-dirs first"\
ll="ls -l"\
la="ls -a"\
diff="diff --color=auto"\
grep="grep --color=auto -n"

View File

@@ -1,33 +0,0 @@
- name: Setup user zsh config
block:
- name: Add .zshrc
copy: src=zshrc.zsh dest=/home/{{ name }}/.zshrc owner={{ name }} group={{ name }} mode=0755
- name: Add zsh zstyles config
copy: src=zstyles.zsh dest=/home/{{ name }}/.zstyles owner={{ name }} group={{ name }} mode=0755
- name: Add .env file
copy: src=env.sh dest=/home/{{ name }}/.env owner={{ name }} group={{ name }} mode=0755
- name: Add .aliases
copy: src=aliases.sh dest=/home/{{ name }}/.aliases owner={{ name }} group={{ name }} mode=0755
- name: Add .bat.conf
copy: src=bat.conf dest=/home/{{ name }}/.bat.conf owner={{ name }} group={{ name }} mode=0755
- name: Install zsh syntax highlighting
git:
repo: https://github.com/zsh-users/zsh-syntax-highlighting.git
dest: /home/{{ name }}/.zshrc.d/zsh-syntax-highlighting
update: yes
clone: yes
rescue:
- name: Remove .zshrc
file: state=absent path=/home/{{ name }}/.zshrc
- name: Remove zsh zstyles config
file: state=absent path=/home/{{ name }}/.zstyles
- name: Remove .env file
file: state=absent path=/home/{{ name }}/.env
- name: Remove .aliases
file: state=absent path=/home/{{ name }}/.aliases
- name: Remove .bat.conf
file: state=absent path=/home/{{ name }}/.bat.conf
# - name: Remove zsh syntax highlighting
# file: state=absent path=/home/{{ name }}/.zshrc.d/zsh-syntax-highlighting

View File

@@ -1,11 +1,40 @@
[linode]
archy.42069.no
[kjellern]
42069.no
stor
# Aliases
[schwarzerfunke_vpn]
100.64.69.10
[void]
192.168.88.69
[apt:children]
42069.no
[pacman:children]
[archy]
archy.42069.no
stor
[liten]
192.168.88.2
[store]
192.168.88.3
# Location based groupings
[sky:children]
schwarzerfunke_vpn
[loftet:children]
void
[vpn:children]
loftet
sky
[linode:children]
archy
[kjellern:children]
liten
store
# Package manager groupings
[yay:children]
schwarzerfunke_vpn
archy
store
[xbps:children]
void
[apt:children]
liten
[nix:children]
void

View File

@@ -1,2 +1,7 @@
---
- hosts: all
roles: [update, common, user, zsh]
roles:
- {role: update, tags: update}
- common
- user
- shell

24
skyid.ini Normal file
View File

@@ -0,0 +1,24 @@
[all:vars]
ansible_ssh_private_key_file=~/.ssh/skyid_rsa
ansible_become_exe=sudo
ansible_user=sivert
[skyid]
smokeping.skyid.no
myrkdalen.skyid.no
lost-islands.skyid.no
monitoring.skyid.no
gulf-of-oman.skyid.no
lofoten.skyid.no
narvik.skyid.no
hangar-22.skyid.no
propaganda.skyid.no
toten.skyid.no
hamar.skyid.no
mercury.skyid.no
bergen.skyid.no
molde.skyid.no
deploy.skyid.no
scrapmetal.skyid.no
dawnbreaker.skyid.no
backup.skyid.no

View File

@@ -1,5 +1,27 @@
#!/bin/sh
[ "$1" == "stop" ] && docker kill ansible && exit 0
docker run --rm --name ansible -id alpine
[ $? == 0 ] && docker exec ansible /bin/sh -c "apk update && apk add python3"
ansible -i docker.ini all -m ping
#!/bin/bash
user="${USER:-"root"}"
function playbook() {
book="${1:-"site.yml"}"
opts=""
[ ! -z "$2" ] && opts="-t $2"
ansible-playbook "$book" "$opts" -i docker.ini
}
case "$1" in
play)
book="${2:-"site.yml"}"
# opts=""
# [ ! -z "$3" ] && opts="-t $3"
ansible-playbook "$book" -i docker.ini;;
# playbook "$2" "$3";;
kill) docker kill ansible;;
run)
docker run --rm --name ansible -id alpine
[ "$?" == "0" ] && docker exec ansible /bin/sh -c "apk update && apk add python3"
ansible -i docker.ini all -m ping;;
zsh) docker exec -itu "$user" ansible zsh;;
*sh) docker exec -it ansible "$1";;
"") echo "Usage: $0 [run|kill|play|zsh|*sh|{container cmd}]";;
*) docker exec -itu "$user" ansible $@;;
esac