{"id":23585595,"url":"https://github.com/pythoninthegrass/ansible_meetup","last_synced_at":"2025-06-29T04:41:43.304Z","repository":{"id":264917024,"uuid":"862162082","full_name":"pythoninthegrass/ansible_meetup","owner":"pythoninthegrass","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-07T23:30:50.000Z","size":374,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T05:09:42.468Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pythoninthegrass.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2024-09-24T06:29:21.000Z","updated_at":"2024-10-19T18:56:32.000Z","dependencies_parsed_at":"2024-11-26T21:16:55.022Z","dependency_job_id":null,"html_url":"https://github.com/pythoninthegrass/ansible_meetup","commit_stats":null,"previous_names":["pythoninthegrass/ansible_meetup"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fansible_meetup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fansible_meetup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fansible_meetup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fansible_meetup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pythoninthegrass","download_url":"https://codeload.github.com/pythoninthegrass/ansible_meetup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252817625,"owners_count":21808706,"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":[],"created_at":"2024-12-27T03:15:43.136Z","updated_at":"2025-05-07T05:09:48.380Z","avatar_url":"https://github.com/pythoninthegrass.png","language":"Shell","readme":"# ansible_meetup\n\n## Minimum Requirements\n\n* macOS/Linux\n* [Homebrew](https://brew.sh)\n* Tart\n* Ansible\n\n## Recommended Requirements\n\n* Devbox\n\n## Quickstart\n\n### Environment\n\nCreate the virtual environment and install the requirements.\n\n```bash\npython3 -m venv .venv\npython3 -m pip install --upgrade pip\npython3 -m pip install -r requirements.txt\n```\n\nActivate the virtual environment.\n\n```bash\n# activate\nsource .venv/bin/activate\n\n# exit\n# deactivate\n```\n\n### Ansible\n\nInstall third-party roles.\n\n```bash\ncd ./ansible\nansible-galaxy install -r requirements.yml\n```\n\nCopy the `ansible.cfg.example` file to `ansible.cfg`.\n\n```bash\n# change any settings as needed\ncp ansible.cfg.example ansible.cfg\n```\n\nEdit the `hosts` file to include the IP address of the target machine.\n\n```bash\n[servers]\n192.168.105.5    ansible_user=admin\n```\n\nRun a quick smoke test.\n\n```bash\n# ping the target machine\nansible -m ping 192.168.105.5\n\n# ping a group of machines\nansible -m ping servers\n\n# ping all machines\nansible -m ping all\n```\n\n\u003e [!NOTE]\n\u003e `ansible` is an \"agentless\" configuration management tool.\n\u003e\n\u003e This means that you do not need to install any software on the target machine.\n\u003e\n\u003e However, you do need to have SSH access to the target machine.\n\nOnce the machine is reachable over SSH, run the `main.yml` file:\n\n```bash\nansible-navigator run tasks/main.yml --limit 'servers' -v\n```\n\nThis will execute these tasks sequentially: \n* `pkg.yml`\n* `git.yml`\n* `pull-repos.yml`\n* `gum.yml`\n* `docker.yml`\n* `wallpaper.yml` \n\nShout-out to @schultzie for convincing me to switch to `ansible-navigator`!\n\n## Dev\n\n```bash\n# install tart\nbrew install cirruslabs/cli/tart\n\n# tart commands\ntart clone \u003cimage\u003e\ntart run \u003cname\u003e\ntart list\ntart stop \u003cname\u003e\ntart delete \u003cname\u003e\n\n# start macos guest (manual)\ntart clone ghcr.io/cirruslabs/macos-sonoma-base:latest sonoma-base\ntart set sonoma-base --disk-size 40\ntart run sonoma-base\nssh-copy-id admin@$(tart ip sonoma-base)\nssh admin@$(tart ip sonoma-base)\n\n# vagrant via task (automatic)\n# * macos, ubuntu, fedora are supported\ntask vagrant:plugin\ntask vagrant:up -- macos\ntask vagrant:ssh -- macos\ntask vagrant:halt -- macos\ntask vagrant:destroy -- macos\ntask vagrant:validate -- macos\n```\n\n## TODO\n\n* Ansible\n  * ~~Install~~\n  * ~~Setup~~\n  * Playbooks\n    * Pare down to useful examples for short demo\n    * Ideas\n      * kind cluster\n      * cron job\n      * dev environment\n      * wallpaper \n* Vagrant\n  * Use provisioning with ansible to install minimum requirements in each vm\n* Tart\n  * Orchard\n    * Orchestrate VMs\n  * Snapshots?\n  * Packer\n    * Build custom images (e.g., Fedora 40, Ubuntu 24.04)\n* Test\n  * gum install on fedora and ubuntu\n  * Run on fresh Mac (remember devbox 😭)\n\n## Further Reading\n\n* [Using Ansible playbooks — Ansible Community Documentation](https://docs.ansible.com/ansible/latest/playbook_guide/index.html)\n* [Ansible Navigator Documentation](https://ansible.readthedocs.io/projects/navigator/)\n* [4 things to know about programming using Ansible | Enable Sysadmin](https://www.redhat.com/sysadmin/ansible-coding-programming)\n* [General tips — Ansible Community Documentation](https://docs.ansible.com/ansible/latest/tips_tricks/ansible_tips_tricks.html)\n* [geerlingguy/mac-dev-playbook: Mac setup and configuration via Ansible.](https://github.com/geerlingguy/mac-dev-playbook)\n* [Allaman/mac-setup: My Ansible Playbook to configure my MacBook](https://github.com/Allaman/mac-setup)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythoninthegrass%2Fansible_meetup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpythoninthegrass%2Fansible_meetup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythoninthegrass%2Fansible_meetup/lists"}