All Projects → PauloPortugal → manjaro-playbook

PauloPortugal / manjaro-playbook

Licence: MIT license
Manjaro/Arch Linux Ansible provision playbook

Programming Languages

shell
77523 projects
emacs lisp
2029 projects

Projects that are alternatives of or similar to manjaro-playbook

notion-repackaged
notion executables with the notion-enhancer embedded & a vanilla port of the official app to linux
Stars: ✭ 733 (+2832%)
Mutual labels:  arch-linux, manjaro
manjarno
Why you shouldn't use Manjaro
Stars: ✭ 96 (+284%)
Mutual labels:  arch-linux, manjaro
gnome-control-center-x11-scaling
gnome-control-center build with Ubuntu patches for Xorg fractional scaling on Manjaro / Arch Linux
Stars: ✭ 19 (-24%)
Mutual labels:  arch-linux, manjaro
piu
Cross platform package manager wrapper
Stars: ✭ 33 (+32%)
Mutual labels:  arch-linux, manjaro
dockpack
This project uses ansible, packer and vagrant to create an agile lab.
Stars: ✭ 13 (-48%)
Mutual labels:  vagrant, ansible-playbook
mutter-x11-scaling
Mutter build with Ubuntu patch for Xorg fractional scaling on Manjaro / Arch Linux
Stars: ✭ 77 (+208%)
Mutual labels:  arch-linux, manjaro
arch-ansible
An Ansible playbook to install Arch Linux
Stars: ✭ 33 (+32%)
Mutual labels:  vagrant, ansible-playbook
devops
Setup & installers for databases, runtimes, queues etc. using Anaconda, Ansible, Vagrant, Docker, AWS, Puppet, automation etc.
Stars: ✭ 28 (+12%)
Mutual labels:  vagrant, provisioning
guix-vm
Scripts and support necessary to make a GuixSD Virtualbox image
Stars: ✭ 18 (-28%)
Mutual labels:  vagrant
dotfiles
My dotfiles based on Makefile
Stars: ✭ 150 (+500%)
Mutual labels:  arch-linux
vagrant-jenkins
Vagrant box running Ubuntu with an installed Jenkins instance
Stars: ✭ 39 (+56%)
Mutual labels:  vagrant
development-environment
A development environment for Java, Python, Node.js and Go built using Vagrant
Stars: ✭ 50 (+100%)
Mutual labels:  vagrant
chatroom
💬chat
Stars: ✭ 56 (+124%)
Mutual labels:  ansible-playbook
k8s-all-in-one
Create a All-in-one Kubernetes Cluster.
Stars: ✭ 35 (+40%)
Mutual labels:  vagrant
vagrant-boot2docker-swarm
A multi-machine Docker swarm Vagrant environment
Stars: ✭ 16 (-36%)
Mutual labels:  vagrant
arch-btrfs-install-guide
Arch Linux installation guide with btrfs and snapper, this guide is based on the information from unicks.eu guide https://www.youtube.com/watch?v=TKdZiCTh3EM, and Arch Linux UEFI step-by-step installation guide https://www.youtube.com/watch?v=dOXYZ8hKdmc from ALU.
Stars: ✭ 32 (+28%)
Mutual labels:  arch-linux
fvang
Flask-Vagrant-Ansible-Nginx-Gunicorn Starter Pack
Stars: ✭ 32 (+28%)
Mutual labels:  vagrant
vagrant-wagtail-develop
A script to painlessly set up a Vagrant environment for development of Wagtail
Stars: ✭ 36 (+44%)
Mutual labels:  vagrant
wsl-distrod
Distrod is a meta-distro for WSL 2 which installs Ubuntu, Arch, Debian, Gentoo, etc. with systemd in a minute for you. Distrod also has built-in auto-start feature on Windows startup and port forwarding ability.
Stars: ✭ 1,637 (+6448%)
Mutual labels:  arch-linux
cikit
Continuous Integration Kit (CIKit)
Stars: ✭ 21 (-16%)
Mutual labels:  vagrant

Manjaro/Arch Linux Ansible Provision

This is an Ansible playbook meant to configure a Manjaro OS (Arch Linux distribution) GNOME 3 desktop. It should run locally after a clean OS install.

This playbook follows the Manjaro community recommendation when installing the additional software packages from the Arch User Repository:

🪧 Table of contents


Provision and configure a Vagrant VM

Before applying the changes against your desktop/laptop, being able to test against a Docker container or a Vagrant VM machine allows to test the playbook safer, quicker and often.

Since this is a Manjaro/Arch Desktop setup, having a Virtual Box to be able to login and inspect the UI is somewhat useful, although this is still an experimentation as the preferred approach was to opt for a Docker container.

The Vagrant VM box is based on a Manjaro Gnome X64 21.0 box. This should not be an issue if you want the latest Manjaro release, as the playbook will upgrade the VM to the lastest Manjaro release version.

Provision and configure a Manjaro Vagrant VM

Install and configure Vagrant & Oracle VirtualBox locally

# if from a different Linux distribution or on a Mac make sure to install Vagrant and Oracle
# if you are using a Manjaro/Arch, install and configure Vagrant & Oracle VirtualBox locally
ansible-playbook playbook.yml -l localhost --extra-vars="user_name=USERNAME user_git_name=GIT_USERNAME" --ask-become-pass --tags virtualization

#Provision the Vagrant box
vagrant up --provision

# Run Ansible playbook against the Vagrant VM
ansible-playbook playbook.yml -l testbuild --extra-vars="user_name=USERNAME user_git_name=GIT_USERNAME user_email=EMAIL" --ask-become-pass

Run and configure the localhost machine

Install everything

ansible-lint
ansible-playbook playbook.yml -l localhost --extra-vars="user_name=USERNAME user_git_name=GIT_USERNAME user_email=EMAIL" --ask-become-pass

Install everything with debug turned on

ansible-lint
ansible-playbook -vvvv playbook.yml -l localhost --extra-vars="user_name=USERNAME user_git_name=GIT_USERNAME user_email=EMAIL" --ask-become-pass

Install only the 'dev-tools' role with minimal logging

ansible-lint
ansible-playbook -v playbook.yml -l localhost --extra-vars="user_name=USERNAME user_git_name=GIT_USERNAME user_email=EMAIL" --ask-become-pass --tags dev-tools

🧰 Playbook Roles

Roles supported:

Roles Description
base Install Linux util libraries, python-pip, xinput, terminator, snap and zsh
users Setup user accounts
printers Install printer drivers
browsers Install tor, google-chrome and chromedriver
audio-tools Install audacity
dev-tools Install tesseract, jq, xq, docker, docker-compose, go, nodejs, npm, nvm, jre8, jre10, maven, clojure, leiningen, sbt, scala, minikube, kubectl, kubectx, kubefwd, hub and heroku
cloud-tools Install google-cloud-sdk
editors Install vim, emacs, gimp, Intellij + JetBrains Toolbox, Goland, Visual Studio Code and Xmind
media Install Spotify and Peek (GIF Screen recorder)
multimedia Install gimp, darktable and kdenlive
gnome Configure the desktop environment
comms Install communication/Instant Messaging apps: signal-desktop, slack-desktop
aur Install Arch User Repository libraries
security Install clamav, clamtk, ufw, ufw-extras and gufw
virtualization Install vagrant, virtualbox and virtualbox-host-modules

Example on how to install only browsers:

ansible-playbook playbook.yml --extra-vars="user_name=USERNAME user_git_name=GIT_USERNAME user_email=EMAIL" --ask-become-pass --tags browsers

🚀 Instructions to install a new Manjaro image

1. Creating Bootable Linux USB Drive from the Command Line

Find out the name of the USB drive

lsblk

Flash the ISO image to the USB drive

dd bs=4M if=/path/to/iso of=/dev/sdx status=progress oflag=sync

Change boot order and install Manjaro.

2. Refresh pacaman mirrors, the copy of the master package database from the server and install ansible, git and xclip

After installing Manjaro, ensure that ansible, git and xclip are installed

sudo pacman-mirrors -f && sudo pacman -Syyu
sudo pacman -S ansible ansible-lint git xclip --noconfirm

3. Set Git SSH credentials

Generate a new SSH Key

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Start the ssh-agent in the background

eval "$(ssh-agent -s)"

Add SSH Key to the ssh-agent

ssh-add ~/.ssh/id_rsa

Copy the SSH public key to the clipboard

xclip -sel clip < ~/.ssh/id_rsa.pub

4. Git clone the current project

git clone [email protected]:PauloPortugal/manjaro-playbook.git
cd manjaro-playbook

☁️ Google Cloud Configuration

On the command line run

gcloud init
gcloud auth login

For more information about Gcloud command lines read https://cloud.google.com/sdk/gcloud

🚧 TODO

  1. It would be nice to include more audio-tools.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].