env-ansible/README.md
Chad 392294fb45
General Enhancements, NixOS Support (#47)
* Begin adding Nix.

* Install LBRY from Nix since its Flatpak is no longer supported..

* Got the global install to work, now just figuring out why LBRY won't work.

* Add alias to blow away dev branch and start back up from remote or main.

* Nix install not really working, requires manual intervention, maybe add to setup.sh or just try NixOS and see if it can 'replace' this entire Ansible project and cease the use of multiple operating systems.

* Start working on having a path for NixOS.

* Add NixOS.

* Skip the installer portion if using NixOS.

* Start including more tasks. ALl work besides GNOME due to psutil, even though it is included in configuration.nix.

* This should have never been added. Was an accident if it snuck though.

* Test using env rather than hard-coded bash path.

* Use variables, start thinking about future.

* Add file to manage setting up NixOS for the first or any subsequent times.

* Use the new nixos.sh script.

* Ensure /usr/local/bin is in PATH.

* Do not use * inside of "" for ls.

* Add filename cleanup shortcut.

* Add a clean option as well as a few bugfixes and checking that convert is installed.

* Use underscores in filenames and remove plurality.

* Bring the file into better column compliance.

* Stop running the dconf psutil failures against NixOS for now.

* Ensure the old names of scripts are removed from bin.

* Clean filename fixes as well as a traversing version.

* Remove extra spacing.

* Begin adding swapfile creation.

* Add dangerous code reset command.

* Add some cleaning for NixOS package manager.

* The ~ was being taken literally and created as a new folder.

* More work on swap files, and a new ansible.nix file.

* Fix the swap confuration line.

* Finish the swap configuration by checking if it already exists. Always keep the fstab line in existence.

* Reorder and enhance the update function for NixOS.

* Add comment.

* Start working on dconf for NixOS since don't have home-manager working yet in configration.nix.

* Add notes.

* If the file was created, make sure the user owns it and can edit by default.

* Favorites are working and only need maintained in one place! :)

* Add .zshrc for GNOME settings on NixOS.

* Add most other settings that are done manually post-install. Report any failures with their placement.

* FINALLY! Keyboard shortcuts and some final Gnome Tweak settings!

* Add night light settings.

* Move around some comments.

* Pull first then deal with any merge issues, rather than trying to push when there are things to pull.

* Test removing the dconf commands for non-NixOS.

* Alter output; remove extra newlines and add cache verbosity.

* dconf in rc files is working on Ubuntu!

* Add delete. Fix filename quotes. Other enhancements.

* Create new folder chain if clean changed directory names.

* Add TBD about changing the directory structure.

* Only say success if the file really exists. Skip if conversion fails.

* Only say success if the file really exists. Skip if conversion fails.

* Add quotes around dirname.

* Add quotes around the entire directory tree.

* Add quotes to comment in case it ever gets used.

* Add a bittorrent client.

* Disable Bluetooth on all devices, it's normally off anyways.

* Fix comments, this enables not disables.

* Create new services report.

* Add services report to main area and move all reports to NixOS area.

* Fix swap file variable name for non-NixOS distros.

* Add godot editor.

* Re-add extra programs Geary and OpenShot for variety.

* Shorten the output for 80 char terminals.

* Add Code-OSS for when Codium is having issues.

* Allow code-oss to be installed.

* Add the full desktop entry for Code-OSS.

* Ansible handles the newlines, prevent the -e from getting into the file.

* Enhance newlines in nmap report.

* Add NixOS.
2023-10-17 04:30:36 -07:00

79 lines
2.8 KiB
Markdown

# ansible
Getting real with system management via ansible-pull.
Per-system configuration is handled via local files to the provisioned machine,
rather than using a hosts file. This keeps future hosts private and allows
changing what's on the machine without code changes and releases. The files are
accessed via the show-config and edit-config aliases.
## Disclaimer
This setup is specific to the maintainer's devices and needs. You're welcome to
use it as an example for your needs, but do not expect it to work as-is.
## Currently Supported Linux Systems
### Debian Family
#### Debian
100%, but only if using a recent enough version of Ansible. `pip` usually has a
better version than `apt`.
#### Ubuntu
100%, both server and desktop.
#### Pop!_OS
100%, have not used for a while though.
#### Mint
100%, but not really used, just tested once for fun.
#### Parrot Security OS (MATE)
100% for a while, but OS did not serve maintainer's needs and 404 errors were
terrible while updating. Ubuntu Rolling Rhino filled the gap.
### Arch Family
#### Manjaro
100% at some point.
### Fedora Family
#### Fedora 35
Workstation: 100%
Server: 100%
## Suse Family
### openSUSE Tumbleweed v2022-02-17
Generic: 100%
Workstation: 100%
### openSUSE Leap 15.4
Generic: 100%
Workstation: Currently failing at `[Workstation | Linux | Flatpak Distro | Package Manager | Install From Repo]` with message `Problem: nothing provides libedataserver-1.2.so.24 needed by the to be installed evolution-data-server-32bit-3.34.4-3.3.1.x86_64`.
### NixOS
99%, still need to get Telegraf going and refactor local.yml but everything else
is working well. It is automatically implementing github.com/Hyperling/NixOS.
## Currently Supported Unix Systems
### FreeBSD 12, 13
100%, although GUI is not working completely on 13 yet (dash-to-dock doesn't compile).
Software choices are slightly more limited since not `flatpak`-enabled and not feeling a `ports` setup.
## Waiting To Be Tested
### Kali Linux
### Arch Linux ARM
Specifically for the Pinephone.
### Arch Linux x86
Would be great to have Arch get built up by this. Used for many years but left
after update problems due to a long computer hiatus.
### Fedora Mobile
Specifically for the Pinephone.
## Future Goals
Eventually some of the scripts and install files will be put into the files
folder. This will allow initializing systems outside of the maintainer's home
network.
There may also be a refactor of task-specific facts to be in their task file so
that some playbooks can be more self-sufficient and be provided to the community
without hacking. The original goal was to never define facts in tasks, but the
benefit has yet to be seen for some tasks. Shared facts will definitely continue
to exist under the facts tree.
## Other Notes
### Get Setup Values
Use this command to see the variables for a system:
`ansible localhost -m setup --connection=local`.