{"id":15571138,"url":"https://github.com/baztian/ansible-mint-setup","last_synced_at":"2025-07-23T21:12:32.824Z","repository":{"id":35694879,"uuid":"213755334","full_name":"baztian/ansible-mint-setup","owner":"baztian","description":"Ansible playbook for my Linux Mint setup","archived":false,"fork":false,"pushed_at":"2021-12-02T11:08:52.000Z","size":211,"stargazers_count":6,"open_issues_count":5,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T08:12:04.427Z","etag":null,"topics":["ansible"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baztian.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}},"created_at":"2019-10-08T21:10:59.000Z","updated_at":"2025-01-25T15:03:12.000Z","dependencies_parsed_at":"2022-09-08T14:20:49.034Z","dependency_job_id":null,"html_url":"https://github.com/baztian/ansible-mint-setup","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baztian%2Fansible-mint-setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baztian%2Fansible-mint-setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baztian%2Fansible-mint-setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baztian%2Fansible-mint-setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baztian","download_url":"https://codeload.github.com/baztian/ansible-mint-setup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248951977,"owners_count":21188420,"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"],"created_at":"2024-10-02T17:55:17.703Z","updated_at":"2025-04-14T19:53:28.895Z","avatar_url":"https://github.com/baztian.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ansible Mint setup\n\n![CI](https://github.com/baztian/ansible-mint-setup/workflows/CI/badge.svg)\n\nAnsible playbook whose aim is to save time setting up my Linux Mint XFCE machines.\n\n## Ansible installation\n\nSetup ansible on the *host* (not VM guest).\n\n    sudo -s\n    apt update\n    apt install -y python3-venv libssl-dev python3-dev\n    python3 -m venv /opt/ansible-2.8.5\n    . /opt/ansible-2.8.5/bin/activate\n    pip install wheel\n    pip install ansible==2.8.5\n    deactivate\n    ln -sf /opt/ansible-2.8.5/bin/ansible-playbook /usr/local/bin/\n    exit\n\n## Usage\n\nInstall on local machine using `ansible-pull`.\n\n    ansible-pull -U https://github.com/baztian/ansible-mint-setup.git -i local playbook.yml -K\n\nInstall on local machine using stock `ansible`.\n\n    ansible-playbook playbook.yml -i local -K\n\nInstall but skip some steps.\n\n    ansible-playbook playbook.yml -i local -K --skip-tags xfce,calibre,eac,spotify,multimedia,squeezeplay\n\nForce upgrade required roles.\n\n    ansible-galaxy install -f -r requirements.yml\n\n## Manual steps while running the Linux Mint installer\n\n1. Start _Install Linux Mint_\n1. _English_\n1. _German - German (no dead keys)_\n1. _Install third-party_\n1. _Erase disk_ plus _Encrypt_ plus _LVM_\n1. Generate _Security Key_ in KeePass\n1. _Berlin_\n1. _Name_ `\u003cFirstname\u003e \u003cLastname\u003e`\n1. _Computer's name_ `vbox`\n1. _Username_ `\u003cmyuser\u003e`\n1. _Require login_\n\n## Testing\n\nBefore setting up a real machine I usually try this on up a [VirtualBox](https://www.virtualbox.org/) (see below). Once set up I can test the ansible playbook.\n\n    ansible-playbook playbook.yml -i vbox -K\n\nTo easily create a new VM from scratch I use these commands. (Heavily inspired by https://www.perkin.org.uk/posts/create-virtualbox-vm-from-the-command-line.html)\n\n    ISO=/path/to/linux_mint.iso\n    VM='LinuxMint'\n    MEDIUM=\"$HOME/VirtualBox VMs/$VM/$VM.vdi\"\n    VBoxManage createvm --name $VM --ostype \"Ubuntu_64\" --register\n    VBoxManage createhd --filename \"$MEDIUM\" --size 32768\n    VBoxManage storagectl $VM --name \"SATA Controller\" --add sata \\\n     --controller IntelAHCI\n    VBoxManage storageattach $VM --storagectl \"SATA Controller\" --port 0 \\\n     --device 0 --type hdd --medium \"$MEDIUM\"\n    VBoxManage storagectl $VM --name \"IDE Controller\" --add ide\n    VBoxManage storageattach $VM --storagectl \"IDE Controller\" --port 0 \\\n     --device 0 --type dvddrive --medium $ISO\n    VBoxManage modifyvm $VM --ioapic on\n    VBoxManage modifyvm $VM --boot1 dvd --boot2 disk --boot3 none --boot4 none\n    VBoxManage modifyvm $VM --memory 4096 --vram 128\n    # Port forwarding 3222 for ssh\n    VBoxManage modifyvm $VM --natpf1 \"guestssh,tcp,,3222,,22\"\n\nNow start the VM.\n\n    VBoxManage startvm $VM\n\nOr start headless and connect to localhost:3389 via vnc\n\n    # enable VNC server on port 3389\n    VBoxManage modifyvm $VM --vrde on\n    # set VNC password\n    VBoxManage modifyvm $VM --vrdeproperty VNCPassword=secret\n    VBoxHeadless -s $VM\n\nRun through the installer. Set up using the description below.\n\nSetup SSH server on the VM.\n\n    sudo apt install -y openssh-server\n\nSetup SSH authorized keys and configure `vbox` alias.\n\n```\nssh-copy-id -p 3222 -o IdentitiesOnly=yes -i ~/.ssh/id_rsa localhost\ncat \u003e\u003e ~/.ssh/config \u003c\u003cHERE\nHost vbox\n  HostName localhost\n  Port 3222\n  IdentityFile ~/.ssh/id_rsa.pub\n  IdentitiesOnly yes\nHERE\n```\n\nInstall the guest additions.\n\n    VBoxManage storageattach $VM --storagectl \"IDE Controller\" --port 0 \\\n     --device 0 --type dvddrive --medium /usr/share/virtualbox/VBoxGuestAdditions.iso\n    ssh vbox\n    user@vbox$ sudo mount /dev/cdrom /media \u0026\u0026 sudo /media/VBoxLinuxAdditions.run\n    user@vbox$ sudo shutdown -h now\n\nNow it's time to take a snapshot.\n\n    VBoxManage snapshot $VM take installer_finished\n\nTry the ansible script. If you want to start from the previous state again run\n\n    VBoxManage snapshot $VM restore installer_finished\n\n## Customization and development notes\n\nThe following notes might help you in developing and customizing the roles.\n\n### Identifying xfconf properties\n\nTo browse Xfce configuration use `xfce4-settings-editor`.\n\nYou can monitor so called channels from the command line with the `-m` switch of `xfconf-query`.\n\n    xfconf-query # list all channels available\n    xfconf-query -m -c xfce4-desktop -v\n\nTo monitor all available channels use this one liner.\n\n    for i in $(xfconf-query); do (xfconf-query -m -c $i -v |awk '{print \"'$i' \" $0}' \u0026) ;done\n\nYou can cancel monitoring by issuing\n\n    killall xfconf-query\n\n## Role dependencies\n\nThis playbook depends on several roles.\n\n|Galaxy Role|Github Role|\n| --------- | --------- |\n| [baztian.apt_upgrade](https://galaxy.ansible.com/baztian/apt_upgrade) | [![CI](https://github.com/baztian/ansible-apt-upgrade/workflows/CI/badge.svg)](https://github.com/baztian/ansible-apt-upgrade) |\n| [baztian.git](https://galaxy.ansible.com/baztian/git) | [![CI](https://github.com/baztian/ansible-git/workflows/CI/badge.svg)](https://github.com/baztian/ansible-git) |\n| [baztian.asdf](https://galaxy.ansible.com/baztian/asdf) | [![CI](https://github.com/baztian/ansible-asdf/workflows/CI/badge.svg)](https://github.com/baztian/ansible-asdf) |\n| [baztian.docker](https://galaxy.ansible.com/baztian/docker) | [![CI](https://github.com/baztian/ansible-docker/workflows/CI/badge.svg)](https://github.com/baztian/ansible-docker) |\n| [baztian.vscode](https://galaxy.ansible.com/baztian/vscode) | [![CI](https://github.com/baztian/ansible-vscode/workflows/CI/badge.svg)](https://github.com/baztian/ansible-vscode) |\n| [baztian.python](https://galaxy.ansible.com/baztian/python) | [![CI](https://github.com/baztian/ansible-python/workflows/CI/badge.svg)](https://github.com/baztian/ansible-python) |\n| [baztian.pip_venv](https://galaxy.ansible.com/baztian/pip_venv) | [![CI](https://github.com/baztian/ansible-pip-venv/workflows/CI/badge.svg)](https://github.com/baztian/ansible-pip-venv) |\n| [baztian.adr_tools](https://galaxy.ansible.com/baztian/adr_tools) | [![CI](https://github.com/baztian/ansible-adr-tools/workflows/CI/badge.svg)](https://github.com/baztian/ansible-adr-tools) |\n| [baztian.dev_tools](https://galaxy.ansible.com/baztian/dev_tools) | [![CI](https://github.com/baztian/ansible-dev-tools/workflows/CI/badge.svg)](https://github.com/baztian/ansible-dev-tools) |\n| [baztian.java](https://galaxy.ansible.com/baztian/java) | [![CI](https://github.com/baztian/ansible-java/workflows/CI/badge.svg)](https://github.com/baztian/ansible-java) |\n| [baztian.aws](https://galaxy.ansible.com/baztian/aws) | [![CI](https://github.com/baztian/ansible-aws/workflows/CI/badge.svg)](https://github.com/baztian/ansible-aws) |\n| [baztian.keepass](https://galaxy.ansible.com/baztian/keepass) | [![CI](https://github.com/baztian/ansible-keepass/workflows/CI/badge.svg)](https://github.com/baztian/ansible-keepass) |\n| [baztian.calibre](https://galaxy.ansible.com/baztian/calibre) | [![CI](https://github.com/baztian/ansible-calibre/workflows/CI/badge.svg)](https://github.com/baztian/ansible-calibre) |\n| [baztian.joplin](https://galaxy.ansible.com/baztian/joplin) | [![CI](https://github.com/baztian/ansible-joplin/workflows/CI/badge.svg)](https://github.com/baztian/ansible-joplin) |\n| [baztian.gocryptfs](https://galaxy.ansible.com/baztian/gocryptfs) | [![CI](https://github.com/baztian/ansible-gocryptfs/workflows/CI/badge.svg)](https://github.com/baztian/ansible-gocryptfs) |\n| [baztian.emacs](https://galaxy.ansible.com/baztian/emacs) | [![CI](https://github.com/baztian/ansible-emacs/workflows/CI/badge.svg)](https://github.com/baztian/ansible-emacs) |\n| [baztian.jetbrains_toolbox](https://galaxy.ansible.com/baztian/jetbrains_toolbox) | [![CI](https://github.com/baztian/ansible-jetbrains-toolbox/workflows/CI/badge.svg)](https://github.com/baztian/ansible-jetbrains-toolbox) |\n| [baztian.js](https://galaxy.ansible.com/baztian/js) | [![CI](https://github.com/baztian/ansible-js/workflows/CI/badge.svg)](https://github.com/baztian/ansible-js) |\n| [baztian.jython](https://galaxy.ansible.com/baztian/jython) | [![CI](https://github.com/baztian/ansible-jython/workflows/CI/badge.svg)](https://github.com/baztian/ansible-jython) |\n| [baztian.other_installs](https://galaxy.ansible.com/baztian/other_installs) | [![CI](https://github.com/baztian/ansible-other-installs/workflows/CI/badge.svg)](https://github.com/baztian/ansible-other-installs) |\n| [baztian.multimedia](https://galaxy.ansible.com/baztian/multimedia) | [![CI](https://github.com/baztian/ansible-multimedia/workflows/CI/badge.svg)](https://github.com/baztian/ansible-multimedia) |\n| [baztian.squeezeplay](https://galaxy.ansible.com/baztian/squeezeplay) | [![CI](https://github.com/baztian/ansible-squeezeplay/workflows/CI/badge.svg)](https://github.com/baztian/ansible-squeezeplay) |\n| [baztian.skype](https://galaxy.ansible.com/baztian/skype) | [![CI](https://github.com/baztian/ansible-skype/workflows/CI/badge.svg)](https://github.com/baztian/ansible-skype) |\n| [baztian.xfce](https://galaxy.ansible.com/baztian/xfce) | [![CI](https://github.com/baztian/ansible-xfce/workflows/CI/badge.svg)](https://github.com/baztian/ansible-xfce) |\n| [baztian.signal](https://galaxy.ansible.com/baztian/signal) | [![CI](https://github.com/baztian/ansible-signal/workflows/CI/badge.svg)](https://github.com/baztian/ansible-signal) |\n| [baztian.vagrant](https://galaxy.ansible.com/baztian/vagrant) | [![CI](https://github.com/baztian/ansible-vagrant/workflows/CI/badge.svg)](https://github.com/baztian/ansible-vagrant) |\n| [baztian.eac](https://galaxy.ansible.com/baztian/eac) | [![CI](https://github.com/baztian/ansible-eac/workflows/CI/badge.svg)](https://github.com/baztian/ansible-eac) |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaztian%2Fansible-mint-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaztian%2Fansible-mint-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaztian%2Fansible-mint-setup/lists"}