{"id":14984600,"url":"https://github.com/stonier/groot_ansible","last_synced_at":"2025-04-10T21:20:46.537Z","repository":{"id":57436084,"uuid":"80091275","full_name":"stonier/groot_ansible","owner":"stonier","description":"Ansible scripts for my own use cases.","archived":false,"fork":false,"pushed_at":"2024-10-07T13:34:50.000Z","size":245,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":3,"default_branch":"devel","last_synced_at":"2024-10-10T09:34:47.242Z","etag":null,"topics":["ansible","ansible-modules","ansible-playbooks","ansible-roles","ansible-scripts"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stonier.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-26T06:27:47.000Z","updated_at":"2024-10-07T13:34:54.000Z","dependencies_parsed_at":"2024-09-11T18:16:44.667Z","dependency_job_id":"14a425e9-77fa-450a-8d81-2940cc98d5b4","html_url":"https://github.com/stonier/groot_ansible","commit_stats":{"total_commits":180,"total_committers":1,"mean_commits":180.0,"dds":0.0,"last_synced_commit":"65d2edc9c1db376152a20bf6d9f08044362872d9"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stonier%2Fgroot_ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stonier%2Fgroot_ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stonier%2Fgroot_ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stonier%2Fgroot_ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stonier","download_url":"https://codeload.github.com/stonier/groot_ansible/tar.gz/refs/heads/devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248298865,"owners_count":21080419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-modules","ansible-playbooks","ansible-roles","ansible-scripts"],"created_at":"2024-09-24T14:09:19.228Z","updated_at":"2025-04-10T21:20:46.519Z","avatar_url":"https://github.com/stonier.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Groot Ansible\n\n## Usage - With Debs\n\n\n```\n# 1) Download the bootstrap script\n$ wget https://raw.githubusercontent.com/stonier/groot_ansible/devel/scripts/groot-ansible-bootstrap\n$ chmod 755 groot-ansible-bootstrap\n$ ./groot-ansible-bootstrap\n\n# 2) Install\n$ groot-ansible --help\n$ groot-ansbile extras/chrome       (not strictly necessary, but good to test)\n$ groot-ansible bootstrap/daniel -f (force vci to configure the index)\n\n# 3) Update\n$ groot-ansible utils/update  # update itself\n```\n\n## Usage - From Sources\n\nIf I don't have the deb built yet, then it will fail to fetch `python-groot-ansible` and you'll need to clone the repo and source the setup script which will fetch any dependencies it requires and boot you into a virtual environment.\n\n```\n# 1) Get Groot Ansible\n$ sudo apt install git\n$ git clone https://github.com/stonier/groot_ansible\n\n# 2) Drop into a Venv\n$ cd groot_ansible\n$ . ./venv.bash\n\n# 3) First time Setup (ignore the deb fail if no debs exist)\n$ cd scripts\n$ ./groot-ansible-bootstrap\n\n# 4) Relogin/reboot (if groups changed)\n\n# 5) Manual Preparation (not yet automated)\n#    Generate and add an ssh key to github\n\n# 6) Start Installing!\n$ groot-ansbile extras/chrome       (not strictly necessary, but good to test)\n$ groot-ansible bootstrap/daniel -f (force vci to configure the index)\n```\n\n## Usage - Help\n\n```bash\n$ groot-ansible --help\nusage: groot-ansible [-h] [-v]\n                     {utils/update,utils/testies,bootstrap/pc,bootstrap/daniel,os/ubuntu,os/kubuntu,os/system76,devel/git,devel/powerline,devel/ros1,devel/ros2,extras/chrome,extras/snorriheim,extras/vscode}\n                     ...\n\nA frontend to groot playbooks\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -v, --version         show the version number and exit\n\ncommands:\n  {utils/update,utils/testies,bootstrap/pc,bootstrap/daniel,os/ubuntu,os/kubuntu,os/system76,devel/git,devel/powerline,devel/ros1,devel/ros2,extras/chrome,extras/snorriheim}\n                        valid commands for groot-ansible interactions\n    utils/update        update your ansible/apt environment\n    utils/testies       trigger experiments\n    bootstrap/pc        bootstrap a pc/laptop for development\n    bootstrap/daniel    bootstrap a pc/laptop for development (Daniel)\n    os/ubuntu           useful non-core packages for ubuntu\n    os/kubuntu          kubuntu desktop packages and configuration\n    os/system76         drivers from system76 for ubuntu\n    devel/git           git binaries, modules and configuration\n    devel/powerline     powerline in the shell for the user\n    devel/ros1          ros1 environment for ubuntu\n    devel/ros2          ros2 environment for ubuntu\n    extras/chrome       google chrome for ubuntu\n    extras/snorriheim   snorriheim ppa and packages\n    extras/vscode       vscode for ubuntu\n\nAnd his noodly appendage reached forth to tickle the blessed...\n\n$ groot-ansible extras/chrome\n$ groot-ansible extras/vscode\n```\n\n## Dev Notes\n\nSome rough guidelines (in much need of explanation).\n\n* Avoid tags in roles, it adds complexity (see also [here](https://www.theodo.fr/blog/2015/10/best-practices-to-build-great-ansible-playbooks/))\n* Roles as minimal, fundamental jobs that can be composed by playbooks\n* ...\n\n### Tags, Playbooks, Roles\n\nThe following three entities can be used in a variety of ways - e.g. roles and playbooks\nboth can be used to help share procedures and it is easy to get mixed up about\nwhat to use and what not. Some conventions that I am currently sticking to.\n\n* **Tags** : for dev handles that enable 'mucking around' with what is getting done.\n* **Roles** : use as much as possible to share jobs\n* **Playbooks** : to script use cases\n\n### Secrets\n\n```\n$ ansible-vault edit secrets.yaml\n\u003cpassword\u003e\n```\n\n### Debs\n\n```\nmake deb\ncd deb_dist\nsudo dpkg -i python3-groot-ansible-\u003ctab\u003e\u003ctab\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstonier%2Fgroot_ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstonier%2Fgroot_ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstonier%2Fgroot_ansible/lists"}