From 800781a803f071d6bde7feb5ff12229020a50d1b Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sun, 13 Oct 2019 18:21:28 -0400 Subject: [PATCH 01/41] Update default make command --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6fb6a23..803f6fe 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ #!/usr/bin/make .PHONY: all -all: install +all: install provision .PHONY: install install: From a1976105656c66c829d243c3a902d424c3505532 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sun, 13 Oct 2019 18:59:23 -0400 Subject: [PATCH 02/41] Add Github Actions badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 90e8103..3cee553 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # dev_setup -[![pipeline status](https://gitlab.com/Artis3n/dev_setup/badges/master/pipeline.svg)](https://gitlab.com/Artis3n/dev_setup/commits/master) +[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fartis3n%2Fdev-setup%2Fbadge&style=flat)](https://actions-badge.atrox.dev/artis3n/dev-setup/goto) From 0f2f37b4f1a9742eba7c542264f246e918ba1221 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sun, 24 Nov 2019 18:29:52 -0500 Subject: [PATCH 03/41] Adding and configuring Molecule --- .flake8 | 3 + .gitignore | 1 + .python-version | 1 + .yamllint | 36 +++ Makefile | 6 +- Pipfile | 4 +- Pipfile.lock | 443 ++++++++++++++++++++++++++++++++-- Vagrantfile | 20 -- files/vars.yml | 1 + molecule/default/molecule.yml | 27 +++ molecule/default/playbook.yml | 94 ++++++++ tasks/docker.yml | 1 - 12 files changed, 589 insertions(+), 48 deletions(-) create mode 100644 .flake8 create mode 100644 .python-version create mode 100644 .yamllint delete mode 100644 Vagrantfile create mode 100644 molecule/default/molecule.yml create mode 100644 molecule/default/playbook.yml diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..ae587c4 --- /dev/null +++ b/.flake8 @@ -0,0 +1,3 @@ +[flake8] +ignore = E402 +max-line-length = 100 diff --git a/.gitignore b/.gitignore index a15cf47..018cfc4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ roles/ .vagrant/ files/secrets.yml collections/ +__pycache__ diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..aaf18d2 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.7.5 diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..96453c2 --- /dev/null +++ b/.yamllint @@ -0,0 +1,36 @@ +--- +# Based on ansible-lint config +extends: default + +ignore: | + .pre-commit-config.yaml + +rules: + braces: + max-spaces-inside: 1 + level: error + brackets: + max-spaces-inside: 1 + level: error + colons: + max-spaces-after: -1 + level: error + commas: + max-spaces-after: -1 + level: error + comments: disable + comments-indentation: disable + document-start: disable + empty-lines: + max: 3 + level: error + hyphens: + level: error + indentation: disable + key-duplicates: enable + line-length: disable + new-line-at-end-of-file: disable + new-lines: + type: unix + trailing-spaces: disable + truthy: disable diff --git a/Makefile b/Makefile index fcecfaf..7b3c72c 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,15 @@ #!/usr/bin/make .PHONY: all -all: install +all: dev-install .PHONY: install install: if [ ! -f /usr/bin/python3 ]; then sudo apt update && sudo apt install -y python3; fi; if [ ! -f /usr/bin/pip3 ]; then sudo apt update && sudo apt install -y python3-pip; fi; - if [ ! -f ~/.local/bin/pipenv ]; then pip3 install pipenv; fi; + if [ ! -f ~/.local/bin/pipenv ]; then pip3 install --user pipenv; fi; if [ ! -d ~/.local/share/virtualenvs ]; then mkdir -p ~/.local/share/virtualenvs/; fi; - if [ ! $$(find ~/.local/share/virtualenvs/ -name "dev-setup*") ]; then ~/.local/bin/pipenv install --python /usr/bin/python3; fi; + if [ ! $$(find ~/.local/share/virtualenvs/ -name "dev-setup*") ]; then ~/.local/bin/pipenv install; fi; if [ ! -d ~/.ansible/roles/gantsign.visual-studio-code ]; then ~/.local/bin/pipenv run ansible-galaxy install gantsign.visual-studio-code; fi; if [ ! -d ~/.ansible/roles/artis3n.bitwarden_app ]; then ~/.local/bin/pipenv run ansible-galaxy install artis3n.bitwarden_app; fi; if [ ! -d ./collections/ansible_collections/artis3n/github_version ]; then ~/.local/bin/pipenv run ansible-galaxy collection install artis3n.github_version -p ./collections; fi; diff --git a/Pipfile b/Pipfile index 79b5636..dbcee2d 100644 --- a/Pipfile +++ b/Pipfile @@ -9,6 +9,8 @@ ansible = "*" [dev-packages] pre-commit = "*" ansible-lint = "*" +molecule = {extras = ["docker"],version = "*"} +docker = "*" [requires] -python_version = "3.6" +python_version = "3.7" diff --git a/Pipfile.lock b/Pipfile.lock index 729443d..0869df0 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "50b7123f057bb630535385cdad70a4e191729825743e70607606864e7a0f44e2" + "sha256": "27f8df5f578e26bc97d10744f0d4efb1ba56e49fe5e2defb3e954b916d048ace" }, "pipfile-spec": 6, "requires": { - "python_version": "3.6" + "python_version": "3.7" }, "sources": [ { @@ -18,10 +18,10 @@ "default": { "ansible": { "hashes": [ - "sha256:9f9a9ace1d63cd8a4692ab6ee6ed04823743f1bd339a6ef188860c02cf7f46f1" + "sha256:d87cb25df02284d59226ff1d935d7075a175f31d0db83564c2f1ca28bbbd4cb4" ], "index": "pypi", - "version": "==2.9.0" + "version": "==2.9.1" }, "cffi": { "hashes": [ @@ -36,6 +36,7 @@ "sha256:32a262e2b90ffcfdd97c7a5e24a6012a43c61f1f5a57789ad80af1d26c6acd97", "sha256:3c9fff570f13480b201e9ab69453108f6d98244a7f495e91b6c654a47486ba43", "sha256:415bdc7ca8c1c634a6d7163d43fb0ea885a07e9618a64bda407e04b04333b7db", + "sha256:42194f54c11abc8583417a7cf4eaff544ce0de8187abaf5d29029c91b1725ad3", "sha256:4424e42199e86b21fc4db83bd76909a6fc2a2aefb352cb5414833c030f6ed71b", "sha256:4a43c91840bda5f55249413037b7a9b79c90b1184ed504883b72c4df70778579", "sha256:599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346", @@ -152,19 +153,19 @@ }, "six": { "hashes": [ - "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", - "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" + "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", + "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" ], - "version": "==1.12.0" + "version": "==1.13.0" } }, "develop": { "ansible": { "hashes": [ - "sha256:9f9a9ace1d63cd8a4692ab6ee6ed04823743f1bd339a6ef188860c02cf7f46f1" + "sha256:d87cb25df02284d59226ff1d935d7075a175f31d0db83564c2f1ca28bbbd4cb4" ], "index": "pypi", - "version": "==2.9.0" + "version": "==2.9.1" }, "ansible-lint": { "hashes": [ @@ -174,6 +175,19 @@ "index": "pypi", "version": "==4.1.0" }, + "anyconfig": { + "hashes": [ + "sha256:4d6016ae6eecc5e502bc7e99ae0639c5710c5c67bde5f21b06b9eaafd9ce0e7e" + ], + "version": "==0.9.7" + }, + "arrow": { + "hashes": [ + "sha256:01a16d8a93eddf86a29237f32ae36b29c27f047e79312eb4df5d55fd5a2b3183", + "sha256:e1a318a4c0b787833ae46302c02488b6eeef413c6a13324b3261ad320f21ec1e" + ], + "version": "==0.15.4" + }, "aspy.yaml": { "hashes": [ "sha256:463372c043f70160a9ec950c3f1e4c3a82db5fca01d334b6bc89c7164d744bdc", @@ -181,6 +195,56 @@ ], "version": "==1.3.0" }, + "attrs": { + "hashes": [ + "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c", + "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72" + ], + "version": "==19.3.0" + }, + "bcrypt": { + "hashes": [ + "sha256:0258f143f3de96b7c14f762c770f5fc56ccd72f8a1857a451c1cd9a655d9ac89", + "sha256:0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42", + "sha256:19a4b72a6ae5bb467fea018b825f0a7d917789bcfe893e53f15c92805d187294", + "sha256:5432dd7b34107ae8ed6c10a71b4397f1c853bd39a4d6ffa7e35f40584cffd161", + "sha256:6305557019906466fc42dbc53b46da004e72fd7a551c044a827e572c82191752", + "sha256:69361315039878c0680be456640f8705d76cb4a3a3fe1e057e0f261b74be4b31", + "sha256:6fe49a60b25b584e2f4ef175b29d3a83ba63b3a4df1b4c0605b826668d1b6be5", + "sha256:74a015102e877d0ccd02cdeaa18b32aa7273746914a6c5d0456dd442cb65b99c", + "sha256:763669a367869786bb4c8fcf731f4175775a5b43f070f50f46f0b59da45375d0", + "sha256:8b10acde4e1919d6015e1df86d4c217d3b5b01bb7744c36113ea43d529e1c3de", + "sha256:9fe92406c857409b70a38729dbdf6578caf9228de0aef5bc44f859ffe971a39e", + "sha256:a190f2a5dbbdbff4b74e3103cef44344bc30e61255beb27310e2aec407766052", + "sha256:a595c12c618119255c90deb4b046e1ca3bcfad64667c43d1166f2b04bc72db09", + "sha256:c9457fa5c121e94a58d6505cadca8bed1c64444b83b3204928a866ca2e599105", + "sha256:cb93f6b2ab0f6853550b74e051d297c27a638719753eb9ff66d1e4072be67133", + "sha256:ce4e4f0deb51d38b1611a27f330426154f2980e66582dc5f438aad38b5f24fc1", + "sha256:d7bdc26475679dd073ba0ed2766445bb5b20ca4793ca0db32b399dccc6bc84b7", + "sha256:ff032765bb8716d9387fd5376d987a937254b0619eff0972779515b5c98820bc" + ], + "version": "==3.1.7" + }, + "binaryornot": { + "hashes": [ + "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061", + "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4" + ], + "version": "==0.4.4" + }, + "cerberus": { + "hashes": [ + "sha256:302e6694f206dd85cb63f13fd5025b31ab6d38c99c50c6d769f8fa0b0f299589" + ], + "version": "==1.3.2" + }, + "certifi": { + "hashes": [ + "sha256:e4f3620cfea4f83eedc95b24abd9cd56f3c4b146dd0177e83a21b4eb49e21e50", + "sha256:fd7c7c74727ddcf00e9acd26bba8da604ffec95bf1c2144e67aff7a8b50e6cef" + ], + "version": "==2019.9.11" + }, "cffi": { "hashes": [ "sha256:0b49274afc941c626b605fb59b59c3485c17dc776dc3cc7cc14aca74cc19cc42", @@ -194,6 +258,7 @@ "sha256:32a262e2b90ffcfdd97c7a5e24a6012a43c61f1f5a57789ad80af1d26c6acd97", "sha256:3c9fff570f13480b201e9ab69453108f6d98244a7f495e91b6c654a47486ba43", "sha256:415bdc7ca8c1c634a6d7163d43fb0ea885a07e9618a64bda407e04b04333b7db", + "sha256:42194f54c11abc8583417a7cf4eaff544ce0de8187abaf5d29029c91b1725ad3", "sha256:4424e42199e86b21fc4db83bd76909a6fc2a2aefb352cb5414833c030f6ed71b", "sha256:4a43c91840bda5f55249413037b7a9b79c90b1184ed504883b72c4df70778579", "sha256:599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346", @@ -225,6 +290,40 @@ ], "version": "==2.0.1" }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "click": { + "hashes": [ + "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13", + "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" + ], + "version": "==7.0" + }, + "click-completion": { + "hashes": [ + "sha256:5bf816b81367e638a190b6e91b50779007d14301b3f9f3145d68e3cade7bce86" + ], + "version": "==0.5.2" + }, + "colorama": { + "hashes": [ + "sha256:05eed71e2e327246ad6b38c540c4a3117230b19679b875190486ddd2d721422d", + "sha256:f8ac84de7840f5b9c4e3347b3c1eaa50f7e49c2b07596221daec5edaabbd7c48" + ], + "version": "==0.4.1" + }, + "cookiecutter": { + "hashes": [ + "sha256:1316a52e1c1f08db0c9efbf7d876dbc01463a74b155a0d83e722be88beda9a3e", + "sha256:ed8f54a8fc79b6864020d773ce11539b5f08e4617f353de1f22d23226f6a0d36" + ], + "version": "==1.6.0" + }, "cryptography": { "hashes": [ "sha256:02079a6addc7b5140ba0825f542c0869ff4df9a69c360e339ecead5baefa843c", @@ -251,6 +350,49 @@ ], "version": "==2.8" }, + "docker": { + "hashes": [ + "sha256:6e06c5e70ba4fad73e35f00c55a895a448398f3ada7faae072e2bb01348bafc1", + "sha256:8f93775b8bdae3a2df6bc9a5312cce564cade58d6555f2c2570165a1270cd8a7" + ], + "index": "pypi", + "version": "==4.1.0" + }, + "entrypoints": { + "hashes": [ + "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", + "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" + ], + "version": "==0.3" + }, + "fasteners": { + "hashes": [ + "sha256:007e4d2b2d4a10093f67e932e5166722d2eab83b77724156e92ad013c6226574", + "sha256:3a176da6b70df9bb88498e1a18a9e4a8579ed5b9141207762368a1017bf8f5ef" + ], + "version": "==0.15" + }, + "flake8": { + "hashes": [ + "sha256:45681a117ecc81e870cbf1262835ae4af5e7a8b08e40b944a8a6e6b895914cfb", + "sha256:49356e766643ad15072a789a20915d3c91dc89fd313ccd71802303fd67e4deca" + ], + "version": "==3.7.9" + }, + "future": { + "hashes": [ + "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d" + ], + "version": "==0.18.2" + }, + "git-url-parse": { + "hashes": [ + "sha256:4655ee22f1d8bf7a1eb1066c1da16529b186966c6d8331f7f55686a76a9f7aef", + "sha256:7b5f4e3aeb1d693afeee67a3bd4ac063f7206c2e8e46e559f0da0da98445f117", + "sha256:9353ff40d69488ff2299b27f40e0350ad87bd5348ea6ea09a1895eda9e5733de" + ], + "version": "==1.2.2" + }, "identify": { "hashes": [ "sha256:4f1fe9a59df4e80fcb0213086fcf502bc1765a01ea4fe8be48da3b65afd2a017", @@ -258,6 +400,13 @@ ], "version": "==1.4.7" }, + "idna": { + "hashes": [ + "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", + "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" + ], + "version": "==2.8" + }, "importlib-metadata": { "hashes": [ "sha256:aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25dc3ad26", @@ -266,14 +415,6 @@ "markers": "python_version < '3.8'", "version": "==0.23" }, - "importlib-resources": { - "hashes": [ - "sha256:6e2783b2538bd5a14678284a3962b0660c715e5a0f10243fd5e00a4b5974f50b", - "sha256:d3279fd0f6f847cced9f7acc19bd3e5df54d34f93a2e7bb5f238f81545787078" - ], - "markers": "python_version < '3.7'", - "version": "==1.0.2" - }, "jinja2": { "hashes": [ "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f", @@ -281,6 +422,13 @@ ], "version": "==2.10.3" }, + "jinja2-time": { + "hashes": [ + "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40", + "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa" + ], + "version": "==0.2.0" + }, "markupsafe": { "hashes": [ "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", @@ -314,6 +462,31 @@ ], "version": "==1.1.1" }, + "mccabe": { + "hashes": [ + "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", + "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + ], + "version": "==0.6.1" + }, + "molecule": { + "extras": [ + "docker" + ], + "hashes": [ + "sha256:12fa4231ed69c6e7f50432588eaace36cea917a8c73c1751269ce55df32ced24", + "sha256:d9d7621167041ae2a8eb19f1f8dc23c071cdab2cd3ca80655e2c8796b4c00e09" + ], + "index": "pypi", + "version": "==2.22" + }, + "monotonic": { + "hashes": [ + "sha256:23953d55076df038541e648a53676fb24980f7a1be290cdda21300b3bc21dfb0", + "sha256:552a91f381532e33cbd07c6a2655a21908088962bb8fa7239ecbcc6ad1140cc7" + ], + "version": "==1.5" + }, "more-itertools": { "hashes": [ "sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832", @@ -327,6 +500,54 @@ ], "version": "==1.3.3" }, + "packaging": { + "hashes": [ + "sha256:28b924174df7a2fa32c1953825ff29c61e2f5e082343165438812f00d3a7fc47", + "sha256:d9551545c6d761f3def1677baf08ab2a3ca17c56879e70fecba2fc4dde4ed108" + ], + "version": "==19.2" + }, + "paramiko": { + "hashes": [ + "sha256:99f0179bdc176281d21961a003ffdb2ec369daac1a1007241f53374e376576cf", + "sha256:f4b2edfa0d226b70bd4ca31ea7e389325990283da23465d572ed1f70a7583041" + ], + "version": "==2.6.0" + }, + "pathspec": { + "hashes": [ + "sha256:e285ccc8b0785beadd4c18e5708b12bb8fcf529a1e61215b3feff1d1e559ea5c" + ], + "version": "==0.6.0" + }, + "pbr": { + "hashes": [ + "sha256:2c8e420cd4ed4cec4e7999ee47409e876af575d4c35a45840d59e8b5f3155ab8", + "sha256:b32c8ccaac7b1a20c0ce00ce317642e6cf231cf038f9875e0280e28af5bf7ac9" + ], + "version": "==5.4.3" + }, + "pexpect": { + "hashes": [ + "sha256:2094eefdfcf37a1fdbfb9aa090862c1a4878e5c7e0e7e7088bdb511c558e5cd1", + "sha256:9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb" + ], + "version": "==4.7.0" + }, + "pluggy": { + "hashes": [ + "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", + "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d" + ], + "version": "==0.13.1" + }, + "poyo": { + "hashes": [ + "sha256:3e2ca8e33fdc3c411cd101ca395668395dd5dc7ac775b8e809e3def9f9fe041a", + "sha256:e26956aa780c45f011ca9886f044590e2d8fd8b61db7b1c1cf4e0869f48ed4dd" + ], + "version": "==0.5.0" + }, "pre-commit": { "hashes": [ "sha256:9f152687127ec90642a2cc3e4d9e1e6240c4eb153615cb02aa1ad41d331cbb6e", @@ -335,12 +556,112 @@ "index": "pypi", "version": "==1.20.0" }, + "psutil": { + "hashes": [ + "sha256:021d361439586a0fd8e64f8392eb7da27135db980f249329f1a347b9de99c695", + "sha256:145e0f3ab9138165f9e156c307100905fd5d9b7227504b8a9d3417351052dc3d", + "sha256:348ad4179938c965a27d29cbda4a81a1b2c778ecd330a221aadc7bd33681afbd", + "sha256:3feea46fbd634a93437b718518d15b5dd49599dfb59a30c739e201cc79bb759d", + "sha256:474e10a92eeb4100c276d4cc67687adeb9d280bbca01031a3e41fb35dfc1d131", + "sha256:47aeb4280e80f27878caae4b572b29f0ec7967554b701ba33cd3720b17ba1b07", + "sha256:73a7e002781bc42fd014dfebb3fc0e45f8d92a4fb9da18baea6fb279fbc1d966", + "sha256:d051532ac944f1be0179e0506f6889833cf96e466262523e57a871de65a15147", + "sha256:dfb8c5c78579c226841908b539c2374da54da648ee5a837a731aa6a105a54c00", + "sha256:e3f5f9278867e95970854e92d0f5fe53af742a7fc4f2eba986943345bcaed05d", + "sha256:e9649bb8fc5cea1f7723af53e4212056a6f984ee31784c10632607f472dec5ee" + ], + "markers": "sys_platform != 'win32' and sys_platform != 'cygwin'", + "version": "==5.6.5" + }, + "ptyprocess": { + "hashes": [ + "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0", + "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f" + ], + "version": "==0.6.0" + }, + "py": { + "hashes": [ + "sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa", + "sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53" + ], + "version": "==1.8.0" + }, + "pycodestyle": { + "hashes": [ + "sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56", + "sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c" + ], + "version": "==2.5.0" + }, "pycparser": { "hashes": [ "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3" ], "version": "==2.19" }, + "pyflakes": { + "hashes": [ + "sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0", + "sha256:d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2" + ], + "version": "==2.1.1" + }, + "pynacl": { + "hashes": [ + "sha256:05c26f93964373fc0abe332676cb6735f0ecad27711035b9472751faa8521255", + "sha256:0c6100edd16fefd1557da078c7a31e7b7d7a52ce39fdca2bec29d4f7b6e7600c", + "sha256:0d0a8171a68edf51add1e73d2159c4bc19fc0718e79dec51166e940856c2f28e", + "sha256:1c780712b206317a746ace34c209b8c29dbfd841dfbc02aa27f2084dd3db77ae", + "sha256:2424c8b9f41aa65bbdbd7a64e73a7450ebb4aa9ddedc6a081e7afcc4c97f7621", + "sha256:2d23c04e8d709444220557ae48ed01f3f1086439f12dbf11976e849a4926db56", + "sha256:30f36a9c70450c7878053fa1344aca0145fd47d845270b43a7ee9192a051bf39", + "sha256:37aa336a317209f1bb099ad177fef0da45be36a2aa664507c5d72015f956c310", + "sha256:4943decfc5b905748f0756fdd99d4f9498d7064815c4cf3643820c9028b711d1", + "sha256:53126cd91356342dcae7e209f840212a58dcf1177ad52c1d938d428eebc9fee5", + "sha256:57ef38a65056e7800859e5ba9e6091053cd06e1038983016effaffe0efcd594a", + "sha256:5bd61e9b44c543016ce1f6aef48606280e45f892a928ca7068fba30021e9b786", + "sha256:6482d3017a0c0327a49dddc8bd1074cc730d45db2ccb09c3bac1f8f32d1eb61b", + "sha256:7d3ce02c0784b7cbcc771a2da6ea51f87e8716004512493a2b69016326301c3b", + "sha256:a14e499c0f5955dcc3991f785f3f8e2130ed504fa3a7f44009ff458ad6bdd17f", + "sha256:a39f54ccbcd2757d1d63b0ec00a00980c0b382c62865b61a505163943624ab20", + "sha256:aabb0c5232910a20eec8563503c153a8e78bbf5459490c49ab31f6adf3f3a415", + "sha256:bd4ecb473a96ad0f90c20acba4f0bf0df91a4e03a1f4dd6a4bdc9ca75aa3a715", + "sha256:bf459128feb543cfca16a95f8da31e2e65e4c5257d2f3dfa8c0c1031139c9c92", + "sha256:e2da3c13307eac601f3de04887624939aca8ee3c9488a0bb0eca4fb9401fc6b1", + "sha256:f67814c38162f4deb31f68d590771a29d5ae3b1bd64b75cf232308e5c74777e0" + ], + "version": "==1.3.0" + }, + "pyparsing": { + "hashes": [ + "sha256:20f995ecd72f2a1f4bf6b072b63b22e2eb457836601e76d6e5dfcd75436acc1f", + "sha256:4ca62001be367f01bd3e92ecbb79070272a9d4964dce6a48a82ff0b8bc7e683a" + ], + "version": "==2.4.5" + }, + "pytest": { + "hashes": [ + "sha256:1897d74f60a5d8be02e06d708b41bf2445da2ee777066bd68edf14474fc201eb", + "sha256:f6a567e20c04259d41adce9a360bd8991e6aa29dd9695c5e6bd25a9779272673" + ], + "version": "==5.3.0" + }, + "python-dateutil": { + "hashes": [ + "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", + "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a" + ], + "version": "==2.8.1" + }, + "python-gilt": { + "hashes": [ + "sha256:4fd58c128635d1f4a8c93305e648f23379ce56e23624e4c5479427fcd2d5656e", + "sha256:c7321ef1a8efddbdef657b4fd21c3eaf1b4cb24a9656d97b73a444b1feb2067a", + "sha256:e23a45a6905e6bb7aec3ff7652b48309933a6991fad4546d9e793ac7e0513f8a" + ], + "version": "==1.2.1" + }, "pyyaml": { "hashes": [ "sha256:0113bc0ec2ad727182326b61326afa3d1d8280ae1122493553fd6f4397f33df9", @@ -359,6 +680,13 @@ ], "version": "==5.1.2" }, + "requests": { + "hashes": [ + "sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4", + "sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" + ], + "version": "==2.22.0" + }, "ruamel.yaml": { "hashes": [ "sha256:0db639b1b2742dae666c6fc009b8d1931ef15c9276ef31c0673cc6dcf766cf40", @@ -390,12 +718,39 @@ "markers": "platform_python_implementation == 'CPython' and python_version < '3.8'", "version": "==0.2.0" }, + "sh": { + "hashes": [ + "sha256:ae3258c5249493cebe73cb4e18253a41ed69262484bad36fdb3efcb8ad8870bb", + "sha256:b52bf5833ed01c7b5c5fb73a7f71b3d98d48e9b9b8764236237bdc7ecae850fc" + ], + "version": "==1.12.14" + }, + "shellingham": { + "hashes": [ + "sha256:77d37a4fd287c1e663006f7ecf1b9deca9ad492d0082587bd813c44eb49e4e62", + "sha256:985b23bbd1feae47ca6a6365eacd314d93d95a8a16f8f346945074c28fe6f3e0" + ], + "version": "==1.3.1" + }, "six": { "hashes": [ - "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", - "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" + "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", + "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" ], - "version": "==1.12.0" + "version": "==1.13.0" + }, + "tabulate": { + "hashes": [ + "sha256:5470cc6687a091c7042cee89b2946d9235fe9f6d49c193a4ae2ac7bf386737c8" + ], + "version": "==0.8.6" + }, + "testinfra": { + "hashes": [ + "sha256:8de4772bf4749b1d1985360caa20593314b5bb4df85ccfbdf8788ac317b53a18", + "sha256:9f2ddbb102018f2ef08d4b0b9b39aea962c678f31132045c8a61910758e6dd04" + ], + "version": "==3.2.1" }, "toml": { "hashes": [ @@ -404,12 +759,54 @@ ], "version": "==0.10.0" }, + "tree-format": { + "hashes": [ + "sha256:a538523aa78ae7a4b10003b04f3e1b37708e0e089d99c9d3b9e1c71384c9a7f9", + "sha256:b5056228dbedde1fb81b79f71fb0c23c98e9d365230df9b29af76e8d8003de11" + ], + "version": "==0.1.2" + }, + "urllib3": { + "hashes": [ + "sha256:a8a318824cc77d1fd4b2bec2ded92646630d7fe8619497b142c84a9e6f5a7293", + "sha256:f3c5fd51747d450d4dcf6f923c81f78f811aab8205fda64b0aba34a4e48b0745" + ], + "version": "==1.25.7" + }, "virtualenv": { "hashes": [ - "sha256:11cb4608930d5fd3afb545ecf8db83fa50e1f96fc4fca80c94b07d2c83146589", - "sha256:d257bb3773e48cac60e475a19b608996c73f4d333b3ba2e4e57d5ac6134e0136" + "sha256:116655188441670978117d0ebb6451eb6a7526f9ae0796cc0dee6bd7356909b0", + "sha256:b57776b44f91511866594e477dd10e76a6eb44439cdd7f06dcd30ba4c5bd854f" + ], + "version": "==16.7.8" + }, + "wcwidth": { + "hashes": [ + "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", + "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" + ], + "version": "==0.1.7" + }, + "websocket-client": { + "hashes": [ + "sha256:1151d5fb3a62dc129164292e1227655e4bbc5dd5340a5165dfae61128ec50aa9", + "sha256:1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a" + ], + "version": "==0.56.0" + }, + "whichcraft": { + "hashes": [ + "sha256:acdbb91b63d6a15efbd6430d1d7b2d36e44a71697e93e19b7ded477afd9fce87", + "sha256:deda9266fbb22b8c64fd3ee45c050d61139cd87419765f588e37c8d23e236dd9" + ], + "version": "==0.6.1" + }, + "yamllint": { + "hashes": [ + "sha256:0260121ed6a428b98bbadb7b6b66e9cd00114382e3d7ad06fa80e0754414cf15", + "sha256:c65f6df10e2752054ac89fbe7b32abc00864aecb747cf40c73fe445aea1da5f1" ], - "version": "==16.7.7" + "version": "==1.19.0" }, "zipp": { "hashes": [ diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index 363c753..0000000 --- a/Vagrantfile +++ /dev/null @@ -1,20 +0,0 @@ -Vagrant.configure("2") do |config| - config.vm.box = "ubuntu/disco64" - config.vm.hostname = "ansible-cow" - - config.vm.provider "virtualbox" do |v| - v.name = "ansible-cow" - v.memory = 2048 - v.cpus = 2 - end - - config.ssh.insert_key = false - - config.vm.provision "ansible" do |ansible| - ansible.verbose = true - ansible.playbook = "main.yml" - ansible.galaxy_role_file = "requirements.yml" - ansible.vault_password_file = ".vault_pass" - # ansible.ask_become_pass = true - end - end diff --git a/files/vars.yml b/files/vars.yml index af37f2f..3928f10 100644 --- a/files/vars.yml +++ b/files/vars.yml @@ -62,6 +62,7 @@ apt_packages: - shellcheck - jq - awscli + - flameshot pentest_packages: - sqlmap diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml new file mode 100644 index 0000000..b20d30f --- /dev/null +++ b/molecule/default/molecule.yml @@ -0,0 +1,27 @@ +--- +dependency: + name: galaxy + options: + role-file: requirements.yml +driver: + name: docker +lint: + name: yamllint +platforms: + - name: instance + image: geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu1804}-ansible:latest + command: ${MOLECULE_DOCKER_COMMAND:-""} + pre_build_image: true + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + privileged: true +provisioner: + name: ansible + lint: + name: ansible-lint + options: + 'vault-id': ../../.vault_pass +verifier: + name: testinfra + lint: + name: flake8 diff --git a/molecule/default/playbook.yml b/molecule/default/playbook.yml new file mode 100644 index 0000000..081ff6c --- /dev/null +++ b/molecule/default/playbook.yml @@ -0,0 +1,94 @@ +--- +- name: Converge + hosts: all + gather_facts: yes + vars_files: + - ../../files/vars.yml + - ../../files/secrets.yml + + tasks: + - name: Setup | Scripts folder + file: + path: "{{ install_dir }}" + state: directory + mode: 0755 + + - import_tasks: ../../tasks/apt.yml + become: yes + tags: apt + + - import_tasks: ../../tasks/terminal.yml + tags: terminal + + - import_tasks: ../../tasks/java.yml + tags: + - language + - java + + - import_tasks: ../../tasks/node.yml + tags: + - language + - node + + - import_tasks: ../../tasks/ruby.yml + tags: + - language + - ruby + + - import_tasks: ../../tasks/git.yml + tags: git + + - import_tasks: ../../tasks/vagrant.yml + tags: vagrant + + - import_tasks: ../../tasks/terraform.yml + tags: terraform + + - import_tasks: ../../tasks/cloudgoat.yml + tags: cloudgoat + + - import_tasks: ../../tasks/docker.yml + tags: docker + + - import_tasks: ../../tasks/applications/jetbrains.yml + tags: + - applications + - jetbrains + + - import_tasks: ../../tasks/applications/vmware.yml + tags: + - applications + - vmware + + - import_tasks: ../../tasks/applications/calibre.yml + tags: + - applications + - calibre + + - import_tasks: ../../tasks/applications/keybase.yml + tags: + - applications + - keybase + + - import_tasks: ../../tasks/gpg.yml + tags: gpg + + - import_tasks: ../../tasks/ssh.yml + tags: ssh + + - import_tasks: ../../tasks/pentest.yml + tags: pentest + + - import_tasks: ../../tasks/wine.yml + tags: wine + + roles: + - role: gantsign.visual-studio-code + users: + - username: "{{ lookup('env', 'USER') }}" + visual_studio_code_extensions: + - Shan.code-settings-sync + - role: artis3n.bitwarden_app + + handlers: + - import_tasks: ../../handlers/handlers.yml diff --git a/tasks/docker.yml b/tasks/docker.yml index be61216..2c0a32a 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -18,7 +18,6 @@ apt_repository: repo: "{{ docker_apt_repo }}" state: present - update_cache: true - name: Docker | Install become: yes From 0e96842382e49f0d4afead578a09c649da8fc29c Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sun, 24 Nov 2019 18:32:40 -0500 Subject: [PATCH 04/41] Updating github workflow to use molecule --- .github/workflows/ansible.yml | 40 ----------------------------------- .github/workflows/main.yml | 35 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 40 deletions(-) delete mode 100644 .github/workflows/ansible.yml create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/ansible.yml b/.github/workflows/ansible.yml deleted file mode 100644 index e6c9145..0000000 --- a/.github/workflows/ansible.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Ansible - Playbook review - -on: - push: - branches: - - master - pull_request: - branches: - - master - -jobs: - build: - - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - - steps: - - uses: actions/checkout@v1 - - name: Set up Python 3.7 - uses: actions/setup-python@v1 - with: - python-version: 3.7 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install pipenv - pipenv install --dev - pipenv run ansible-galaxy install -r requirements.yml - - name: Lint with flake8 - run: | - pip install flake8 - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Lint with Ansible-lint - run: | - pipenv run ansible-lint -c .ansible-lint *.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..4ec15f4 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,35 @@ +name: Ansible + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v1 + - name: Set up Python 3.7 + uses: actions/setup-python@v1 + with: + python-version: 3.7 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pipenv + pipenv install --dev + + - name: Lint with Molecule + run: molecule lint + + - name: Test with Molecule + run: molecule test From 170be1222f4d419c55d9ee99be332ab9737f0349 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sun, 24 Nov 2019 18:39:26 -0500 Subject: [PATCH 05/41] Fixing workflow dependencies --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4ec15f4..75de50a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,7 +29,7 @@ jobs: pipenv install --dev - name: Lint with Molecule - run: molecule lint + run: pipenv run molecule lint - name: Test with Molecule - run: molecule test + run: pipenv run molecule test From c33960c345d4fdb657fd7a865bcffa2886c64c96 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sun, 24 Nov 2019 18:53:20 -0500 Subject: [PATCH 06/41] Setting up ansible-vault in workflow --- .github/workflows/main.yml | 6 +++++- README.md | 3 ++- files/secrets-example.yml | 6 ++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 75de50a..c381627 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,4 +32,8 @@ jobs: run: pipenv run molecule lint - name: Test with Molecule - run: pipenv run molecule test + run: | + echo "ASecret" > .vault_pass + cat files/secrets-example.yml > files/secrets.yml + pipenv run ansible-vault encrypt --vault-id .vault_pass files/secrets.yml + pipenv run molecule test diff --git a/README.md b/README.md index 3cee553..266954e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ # dev_setup -[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fartis3n%2Fdev-setup%2Fbadge&style=flat)](https://actions-badge.atrox.dev/artis3n/dev-setup/goto) +[![Build Status](https://github.com/artis3n/dev-setup/workflows/Ansible/badge.svg)](https://github.com/artis3n/dev-setup/workflows/Ansible/badge.svg) +![GitHub Pipenv locked Python version](https://img.shields.io/github/pipenv/locked/python-version/artis3n/dev-setup) diff --git a/files/secrets-example.yml b/files/secrets-example.yml index 4c8ee53..7312b1f 100644 --- a/files/secrets-example.yml +++ b/files/secrets-example.yml @@ -1,4 +1,6 @@ --- -gpg_pass: password for the GPG key -keyname: name of the GPG key +# password for the GPG key +gpg_pass: testpass +# name of the GPG key +keyname: thekey From 8ba57d93db9848b1b15ab80f9a2e7963897600b4 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sun, 24 Nov 2019 19:10:17 -0500 Subject: [PATCH 07/41] Temporary stop gap --- .github/workflows/main.yml | 3 +++ molecule/default/molecule.yml | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c381627..e0b0d79 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,6 +15,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] + molecule-os: [ubuntu1804] steps: - uses: actions/checkout@v1 @@ -37,3 +38,5 @@ jobs: cat files/secrets-example.yml > files/secrets.yml pipenv run ansible-vault encrypt --vault-id .vault_pass files/secrets.yml pipenv run molecule test + env: + MOLECULE_DISTRO: ${{ matrix.molecule-os }} diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index b20d30f..6cc9c51 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -21,6 +21,10 @@ provisioner: name: ansible-lint options: 'vault-id': ../../.vault_pass +# inventory: +# host_vars: +# instance: +# ansible_user: ansible verifier: name: testinfra lint: From 97f9a2cec8ec2b99cb3fcf25102878f90db983b6 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Wed, 27 Nov 2019 01:42:11 -0500 Subject: [PATCH 08/41] Update Molecule Docker image --- molecule/default/molecule.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 6cc9c51..5e393da 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -9,7 +9,7 @@ lint: name: yamllint platforms: - name: instance - image: geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu1804}-ansible:latest + image: artis3n/docker-${MOLECULE_DISTRO:-ubuntu1804}-ansible:latest command: ${MOLECULE_DOCKER_COMMAND:-""} pre_build_image: true volumes: From 71e3fa9e80c3adc424bd7cb0ef64284da2a6909c Mon Sep 17 00:00:00 2001 From: Artis3n Date: Wed, 27 Nov 2019 01:55:32 -0500 Subject: [PATCH 09/41] Trying to resolve ansible unprivileged user error --- molecule/default/molecule.yml | 4 ---- molecule/default/playbook.yml | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 5e393da..152ecab 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -21,10 +21,6 @@ provisioner: name: ansible-lint options: 'vault-id': ../../.vault_pass -# inventory: -# host_vars: -# instance: -# ansible_user: ansible verifier: name: testinfra lint: diff --git a/molecule/default/playbook.yml b/molecule/default/playbook.yml index 081ff6c..2bb9a6d 100644 --- a/molecule/default/playbook.yml +++ b/molecule/default/playbook.yml @@ -2,6 +2,8 @@ - name: Converge hosts: all gather_facts: yes + vars: + ansible_user: ansible vars_files: - ../../files/vars.yml - ../../files/secrets.yml From 2a9c5860e13b11ab08f53095b3d3ebf3e95ace10 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Wed, 27 Nov 2019 02:02:30 -0500 Subject: [PATCH 10/41] Fixing user assignment to vsc extension --- molecule/default/molecule.yml | 4 ++++ molecule/default/playbook.yml | 2 -- requirements.yml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 152ecab..16f1b98 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -21,6 +21,10 @@ provisioner: name: ansible-lint options: 'vault-id': ../../.vault_pass + inventory: + host_vars: + instance: + ansible_user: ansible verifier: name: testinfra lint: diff --git a/molecule/default/playbook.yml b/molecule/default/playbook.yml index 2bb9a6d..081ff6c 100644 --- a/molecule/default/playbook.yml +++ b/molecule/default/playbook.yml @@ -2,8 +2,6 @@ - name: Converge hosts: all gather_facts: yes - vars: - ansible_user: ansible vars_files: - ../../files/vars.yml - ../../files/secrets.yml diff --git a/requirements.yml b/requirements.yml index 4c3c869..ed65076 100644 --- a/requirements.yml +++ b/requirements.yml @@ -1,6 +1,6 @@ - src: gantsign.visual-studio-code users: - - username: "{{ lookup('env', 'USER') }}" + - username: "{{ ansible_user }}" visual_studio_code_extensions: - Shan.code-settings-sync From 9db41f1beaae5bfa283c7af5f9e056f9afddaf74 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Wed, 27 Nov 2019 02:07:50 -0500 Subject: [PATCH 11/41] Trying to modify ansible_user for the imported roles --- molecule/default/molecule.yml | 4 ---- molecule/default/playbook.yml | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 16f1b98..152ecab 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -21,10 +21,6 @@ provisioner: name: ansible-lint options: 'vault-id': ../../.vault_pass - inventory: - host_vars: - instance: - ansible_user: ansible verifier: name: testinfra lint: diff --git a/molecule/default/playbook.yml b/molecule/default/playbook.yml index 081ff6c..2bb9a6d 100644 --- a/molecule/default/playbook.yml +++ b/molecule/default/playbook.yml @@ -2,6 +2,8 @@ - name: Converge hosts: all gather_facts: yes + vars: + ansible_user: ansible vars_files: - ../../files/vars.yml - ../../files/secrets.yml From cedede1ace346d16ea37e18350cd2fbcdbe0b0f4 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Fri, 6 Dec 2019 15:21:06 -0500 Subject: [PATCH 12/41] Trying to get non-root user used in molecule test --- Makefile | 4 ++++ molecule/default/molecule.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Makefile b/Makefile index 7b3c72c..4173dca 100644 --- a/Makefile +++ b/Makefile @@ -36,5 +36,9 @@ provision: secret: if [ -f ./files/secrets.yml ]; then ~/.local/bin/pipenv run ansible-vault edit ./files/secrets.yml; else ~/.local/bin/pipenv run ansible-vault create ./files/secrets.yml; fi; +.PHONY: test +test: + pipenv run molecule test + .PHONY: reset-run reset-run: clean install run diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 152ecab..16f1b98 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -21,6 +21,10 @@ provisioner: name: ansible-lint options: 'vault-id': ../../.vault_pass + inventory: + host_vars: + instance: + ansible_user: ansible verifier: name: testinfra lint: From 09c40bbcaac7fd69e1b4e90f71780be4aa85a2d6 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Fri, 6 Dec 2019 18:26:56 -0500 Subject: [PATCH 13/41] Found the spot I needed to update... --- molecule/default/molecule.yml | 2 +- molecule/default/playbook.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 16f1b98..fee5674 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -20,7 +20,7 @@ provisioner: lint: name: ansible-lint options: - 'vault-id': ../../.vault_pass + vault-id: ../../.vault_pass inventory: host_vars: instance: diff --git a/molecule/default/playbook.yml b/molecule/default/playbook.yml index 2bb9a6d..57fa20f 100644 --- a/molecule/default/playbook.yml +++ b/molecule/default/playbook.yml @@ -87,7 +87,7 @@ roles: - role: gantsign.visual-studio-code users: - - username: "{{ lookup('env', 'USER') }}" + - username: "{{ ansible_user }}" visual_studio_code_extensions: - Shan.code-settings-sync - role: artis3n.bitwarden_app From 12e4e378d8d519007db159875f5809397741f247 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Fri, 6 Dec 2019 19:14:59 -0500 Subject: [PATCH 14/41] Fixed the permissions problem --- molecule/default/playbook.yml | 2 -- requirements.yml | 5 ----- 2 files changed, 7 deletions(-) diff --git a/molecule/default/playbook.yml b/molecule/default/playbook.yml index 57fa20f..f7a7d75 100644 --- a/molecule/default/playbook.yml +++ b/molecule/default/playbook.yml @@ -2,8 +2,6 @@ - name: Converge hosts: all gather_facts: yes - vars: - ansible_user: ansible vars_files: - ../../files/vars.yml - ../../files/secrets.yml diff --git a/requirements.yml b/requirements.yml index ed65076..91dcd81 100644 --- a/requirements.yml +++ b/requirements.yml @@ -1,7 +1,2 @@ - src: gantsign.visual-studio-code - users: - - username: "{{ ansible_user }}" - visual_studio_code_extensions: - - Shan.code-settings-sync - - src: artis3n.bitwarden_app From 2f92c48b5820ea57303fcd608fb3e424403a5660 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Fri, 6 Dec 2019 19:40:36 -0500 Subject: [PATCH 15/41] Fix the invocations of the github lookup plugin --- tasks/git.yml | 2 +- tasks/node.yml | 2 +- tasks/terminal.yml | 2 +- tasks/terraform.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tasks/git.yml b/tasks/git.yml index c784971..ab792ba 100644 --- a/tasks/git.yml +++ b/tasks/git.yml @@ -19,7 +19,7 @@ - name: Git | Hub | Get latest version set_fact: - hub_version: "{{ lookup('artis3n.github_version.github_version', 'github/hub') }}" + hub_version: "{{ lookup('artis3n.github.latest_release', 'github/hub') }}" - name: Git | Hub | Download get_url: diff --git a/tasks/node.yml b/tasks/node.yml index 9828e8c..48a2d33 100644 --- a/tasks/node.yml +++ b/tasks/node.yml @@ -2,7 +2,7 @@ - name: Node | Set nvm version set_fact: - nvm_version: "{{ lookup('artis3n.github_version.github_version', 'nvm-sh/nvm')[1:] }}" + nvm_version: "{{ lookup('artis3n.github.latest_release', 'nvm-sh/nvm')[1:] }}" - name: Node | Download nvm get_url: diff --git a/tasks/terminal.yml b/tasks/terminal.yml index 33f55da..bbb77ff 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -7,7 +7,7 @@ - name: Terminal | Set Spaceship version set_fact: - spaceship_version: "{{ lookup('artis3n.github_version.github_version', 'denysdovhan/spaceship-prompt') }}" + spaceship_version: "{{ lookup('artis3n.github.latest_release', 'denysdovhan/spaceship-prompt') }}" - name: Terminal | ZSH Spaceship theme git: diff --git a/tasks/terraform.yml b/tasks/terraform.yml index 4d2d6a7..f1c27c1 100644 --- a/tasks/terraform.yml +++ b/tasks/terraform.yml @@ -2,7 +2,7 @@ - name: Terraform | Get latest release set_fact: - terraform_version: "{{ lookup('artis3n.github_version.github_version', 'hashicorp/terraform')[1:] }}" + terraform_version: "{{ lookup('artis3n.github.latest_release', 'hashicorp/terraform')[1:] }}" - name: Terraform | Ensure directory file: From dc1387fa0673aef7515de165bbe4f0470cc63464 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Fri, 6 Dec 2019 20:21:02 -0500 Subject: [PATCH 16/41] Added collection install --- Makefile | 4 ++-- main.yml | 19 +++++++++++-------- requirements.yml | 6 ++++++ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 4173dca..37fbd79 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ install: if [ ! $$(find ~/.local/share/virtualenvs/ -name "dev-setup*") ]; then ~/.local/bin/pipenv install; fi; if [ ! -d ~/.ansible/roles/gantsign.visual-studio-code ]; then ~/.local/bin/pipenv run ansible-galaxy install gantsign.visual-studio-code; fi; if [ ! -d ~/.ansible/roles/artis3n.bitwarden_app ]; then ~/.local/bin/pipenv run ansible-galaxy install artis3n.bitwarden_app; fi; - if [ ! -d ./collections/ansible_collections/artis3n/github_version ]; then ~/.local/bin/pipenv run ansible-galaxy collection install artis3n.github_version -p ./collections; fi; + if [ ! -d ~/.ansible/collections/ansible_collections/artis3n/github ]; then ~/.local/bin/pipenv run ansible-galaxy collection install artis3n.github; fi; .PHONY: dev-install dev-install: install @@ -22,7 +22,7 @@ dev-install: install clean: -~/.local/bin/pipenv --rm rm -rf ~/.ansible/roles/ - rm -rf ~/.ansible/collections/ansible_collections/artis3n/github_version + rm -rf ~/.ansible/collections/ansible_collections/artis3n/github .PHONY: lint lint: diff --git a/main.yml b/main.yml index 751aff3..e23f670 100644 --- a/main.yml +++ b/main.yml @@ -7,6 +7,17 @@ - files/vars.yml - files/secrets.yml + collections: + - artis3n.github + + roles: + - role: gantsign.visual-studio-code + users: + - username: "{{ lookup('env', 'USER') }}" + visual_studio_code_extensions: + - Shan.code-settings-sync + - role: artis3n.bitwarden_app + tasks: - name: Setup | Scripts folder file: @@ -83,13 +94,5 @@ - import_tasks: tasks/wine.yml tags: wine - roles: - - role: gantsign.visual-studio-code - users: - - username: "{{ lookup('env', 'USER') }}" - visual_studio_code_extensions: - - Shan.code-settings-sync - - role: artis3n.bitwarden_app - handlers: - import_tasks: handlers/handlers.yml diff --git a/requirements.yml b/requirements.yml index 91dcd81..b466f2c 100644 --- a/requirements.yml +++ b/requirements.yml @@ -1,2 +1,8 @@ +--- + +roles: - src: gantsign.visual-studio-code - src: artis3n.bitwarden_app + +collections: +- name: artis3n.github From d44030b17d04e55b9c829f9667c6979624babaa3 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Fri, 6 Dec 2019 20:50:18 -0500 Subject: [PATCH 17/41] Added the collection to molecule --- molecule/default/playbook.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/molecule/default/playbook.yml b/molecule/default/playbook.yml index f7a7d75..0cdf2ab 100644 --- a/molecule/default/playbook.yml +++ b/molecule/default/playbook.yml @@ -6,6 +6,17 @@ - ../../files/vars.yml - ../../files/secrets.yml + collections: + - artis3n.github + + roles: + - role: gantsign.visual-studio-code + users: + - username: "{{ ansible_user }}" + visual_studio_code_extensions: + - Shan.code-settings-sync + - role: artis3n.bitwarden_app + tasks: - name: Setup | Scripts folder file: @@ -82,13 +93,5 @@ - import_tasks: ../../tasks/wine.yml tags: wine - roles: - - role: gantsign.visual-studio-code - users: - - username: "{{ ansible_user }}" - visual_studio_code_extensions: - - Shan.code-settings-sync - - role: artis3n.bitwarden_app - handlers: - import_tasks: ../../handlers/handlers.yml From 21cfee4ece848f3e401df5a2b8bcbbb8bc814d71 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 7 Dec 2019 12:25:36 -0500 Subject: [PATCH 18/41] Adding collection install manually --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e0b0d79..8a7d815 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -37,6 +37,8 @@ jobs: echo "ASecret" > .vault_pass cat files/secrets-example.yml > files/secrets.yml pipenv run ansible-vault encrypt --vault-id .vault_pass files/secrets.yml + # Molecule can't recognize a collection dependency, so install collection here. + ansible-galaxy collection install artis3n.github pipenv run molecule test env: MOLECULE_DISTRO: ${{ matrix.molecule-os }} From d1f4c53526446afd9650f686ba5871d9839854d3 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 7 Dec 2019 21:10:07 -0500 Subject: [PATCH 19/41] Tasks have to be modified if ansible is running as a different user --- tasks/terminal.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tasks/terminal.yml b/tasks/terminal.yml index bbb77ff..d1332ad 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -10,18 +10,32 @@ spaceship_version: "{{ lookup('artis3n.github.latest_release', 'denysdovhan/spaceship-prompt') }}" - name: Terminal | ZSH Spaceship theme + become: yes git: repo: https://github.com/denysdovhan/spaceship-prompt.git version: "{{ spaceship_version }}" dest: "{{ lookup('env', 'HOME') }}/.oh-my-zsh/custom/themes/spaceship-prompt" +- name: Terminal | Set file permissions + become: yes + file: + path: "{{ lookup('env', 'HOME') }}/.oh-my-zsh/custom/themes/spaceship-prompt" + state: directory + owner: "{{ lookup('env', 'USER') }}" + group: "{{ lookup('env', 'USER') }}" + recurse: yes + - name: Terminal | ZSH Spaceship symbolic link + become: yes file: src: "{{ lookup('env', 'HOME') }}/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme" dest: "{{ lookup('env', 'HOME') }}/.oh-my-zsh/custom/themes/spaceship.zsh-theme" state: link + owner: "{{ lookup('env', 'USER') }}" + group: "{{ lookup('env', 'USER') }}" - name: Terminal | Set Spaceship as the terminal theme + become: yes lineinfile: path: "{{ lookup('env', 'HOME') }}/.zshrc" regexp: "^ZSH_THEME=" From 799949ec6a4f7271860f94fbf80c6ad365d85bd4 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 5 Aug 2020 23:47:17 +0000 Subject: [PATCH 20/41] Updating for the modern era --- Makefile | 7 +- Pipfile | 2 +- Pipfile.lock | 772 ++++++++++++++----------------- files/secrets-example.yml | 6 - files/vars.yml | 114 ++--- handlers/handlers.yml | 7 +- main.yml | 72 +-- molecule/default/molecule.yml | 31 +- molecule/default/playbook.yml | 70 +-- requirements.yml | 8 +- tasks/applications/bitwarden.yml | 7 + tasks/applications/calibre.yml | 12 +- tasks/applications/jetbrains.yml | 2 +- tasks/applications/keybase.yml | 22 - tasks/applications/vmware.yml | 23 - tasks/apt.yml | 29 +- tasks/cloudgoat.yml | 45 -- tasks/docker.yml | 30 +- tasks/git.yml | 64 +-- tasks/gpg.yml | 51 -- tasks/java.yml | 29 +- tasks/node.yml | 51 -- tasks/ruby.yml | 35 -- tasks/ssh.yml | 14 +- tasks/terminal.yml | 56 +-- tasks/terraform.yml | 49 +- tasks/vagrant.yml | 8 - tasks/wine.yml | 36 -- 28 files changed, 601 insertions(+), 1051 deletions(-) delete mode 100644 files/secrets-example.yml create mode 100644 tasks/applications/bitwarden.yml delete mode 100644 tasks/applications/keybase.yml delete mode 100644 tasks/applications/vmware.yml delete mode 100644 tasks/cloudgoat.yml delete mode 100644 tasks/gpg.yml delete mode 100644 tasks/node.yml delete mode 100644 tasks/ruby.yml delete mode 100644 tasks/vagrant.yml delete mode 100644 tasks/wine.yml diff --git a/Makefile b/Makefile index 37fbd79..6c87ead 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,6 @@ install: if [ ! -d ~/.local/share/virtualenvs ]; then mkdir -p ~/.local/share/virtualenvs/; fi; if [ ! $$(find ~/.local/share/virtualenvs/ -name "dev-setup*") ]; then ~/.local/bin/pipenv install; fi; if [ ! -d ~/.ansible/roles/gantsign.visual-studio-code ]; then ~/.local/bin/pipenv run ansible-galaxy install gantsign.visual-studio-code; fi; - if [ ! -d ~/.ansible/roles/artis3n.bitwarden_app ]; then ~/.local/bin/pipenv run ansible-galaxy install artis3n.bitwarden_app; fi; if [ ! -d ~/.ansible/collections/ansible_collections/artis3n/github ]; then ~/.local/bin/pipenv run ansible-galaxy collection install artis3n.github; fi; .PHONY: dev-install @@ -30,11 +29,7 @@ lint: .PHONY: provision provision: - ~/.local/bin/pipenv run ansible-playbook --vault-id .vault_pass -i inventory main.yml --ask-become-pass - -.PHONY: secret -secret: - if [ -f ./files/secrets.yml ]; then ~/.local/bin/pipenv run ansible-vault edit ./files/secrets.yml; else ~/.local/bin/pipenv run ansible-vault create ./files/secrets.yml; fi; + ~/.local/bin/pipenv run ansible-playbook -i inventory main.yml --ask-become-pass .PHONY: test test: diff --git a/Pipfile b/Pipfile index dbcee2d..5eac7dd 100644 --- a/Pipfile +++ b/Pipfile @@ -13,4 +13,4 @@ molecule = {extras = ["docker"],version = "*"} docker = "*" [requires] -python_version = "3.7" +python_version = "3.8" diff --git a/Pipfile.lock b/Pipfile.lock index 0869df0..715462f 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "27f8df5f578e26bc97d10744f0d4efb1ba56e49fe5e2defb3e954b916d048ace" + "sha256": "71e079be782a28b185a2075745bce754a062141ec9d5961c796184acc655b5b9" }, "pipfile-spec": 6, "requires": { - "python_version": "3.7" + "python_version": "3.8" }, "sources": [ { @@ -18,81 +18,76 @@ "default": { "ansible": { "hashes": [ - "sha256:d87cb25df02284d59226ff1d935d7075a175f31d0db83564c2f1ca28bbbd4cb4" + "sha256:88f9d033ece7fd51eca3abb4f02e13b63c924b97f9705a997d5a711c0cf42ab1" ], "index": "pypi", - "version": "==2.9.1" + "version": "==2.9.11" }, "cffi": { "hashes": [ - "sha256:0b49274afc941c626b605fb59b59c3485c17dc776dc3cc7cc14aca74cc19cc42", - "sha256:0e3ea92942cb1168e38c05c1d56b0527ce31f1a370f6117f1d490b8dcd6b3a04", - "sha256:135f69aecbf4517d5b3d6429207b2dff49c876be724ac0c8bf8e1ea99df3d7e5", - "sha256:19db0cdd6e516f13329cba4903368bff9bb5a9331d3410b1b448daaadc495e54", - "sha256:2781e9ad0e9d47173c0093321bb5435a9dfae0ed6a762aabafa13108f5f7b2ba", - "sha256:291f7c42e21d72144bb1c1b2e825ec60f46d0a7468f5346841860454c7aa8f57", - "sha256:2c5e309ec482556397cb21ede0350c5e82f0eb2621de04b2633588d118da4396", - "sha256:2e9c80a8c3344a92cb04661115898a9129c074f7ab82011ef4b612f645939f12", - "sha256:32a262e2b90ffcfdd97c7a5e24a6012a43c61f1f5a57789ad80af1d26c6acd97", - "sha256:3c9fff570f13480b201e9ab69453108f6d98244a7f495e91b6c654a47486ba43", - "sha256:415bdc7ca8c1c634a6d7163d43fb0ea885a07e9618a64bda407e04b04333b7db", - "sha256:42194f54c11abc8583417a7cf4eaff544ce0de8187abaf5d29029c91b1725ad3", - "sha256:4424e42199e86b21fc4db83bd76909a6fc2a2aefb352cb5414833c030f6ed71b", - "sha256:4a43c91840bda5f55249413037b7a9b79c90b1184ed504883b72c4df70778579", - "sha256:599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346", - "sha256:5c4fae4e9cdd18c82ba3a134be256e98dc0596af1e7285a3d2602c97dcfa5159", - "sha256:5ecfa867dea6fabe2a58f03ac9186ea64da1386af2159196da51c4904e11d652", - "sha256:62f2578358d3a92e4ab2d830cd1c2049c9c0d0e6d3c58322993cc341bdeac22e", - "sha256:6471a82d5abea994e38d2c2abc77164b4f7fbaaf80261cb98394d5793f11b12a", - "sha256:6d4f18483d040e18546108eb13b1dfa1000a089bcf8529e30346116ea6240506", - "sha256:71a608532ab3bd26223c8d841dde43f3516aa5d2bf37b50ac410bb5e99053e8f", - "sha256:74a1d8c85fb6ff0b30fbfa8ad0ac23cd601a138f7509dc617ebc65ef305bb98d", - "sha256:7b93a885bb13073afb0aa73ad82059a4c41f4b7d8eb8368980448b52d4c7dc2c", - "sha256:7d4751da932caaec419d514eaa4215eaf14b612cff66398dd51129ac22680b20", - "sha256:7f627141a26b551bdebbc4855c1157feeef18241b4b8366ed22a5c7d672ef858", - "sha256:8169cf44dd8f9071b2b9248c35fc35e8677451c52f795daa2bb4643f32a540bc", - "sha256:aa00d66c0fab27373ae44ae26a66a9e43ff2a678bf63a9c7c1a9a4d61172827a", - "sha256:ccb032fda0873254380aa2bfad2582aedc2959186cce61e3a17abc1a55ff89c3", - "sha256:d754f39e0d1603b5b24a7f8484b22d2904fa551fe865fd0d4c3332f078d20d4e", - "sha256:d75c461e20e29afc0aee7172a0950157c704ff0dd51613506bd7d82b718e7410", - "sha256:dcd65317dd15bc0451f3e01c80da2216a31916bdcffd6221ca1202d96584aa25", - "sha256:e570d3ab32e2c2861c4ebe6ffcad6a8abf9347432a37608fe1fbd157b3f0036b", - "sha256:fd43a88e045cf992ed09fa724b5315b790525f2676883a6ea64e3263bae6549d" - ], - "version": "==1.13.2" + "sha256:267adcf6e68d77ba154334a3e4fc921b8e63cbb38ca00d33d40655d4228502bc", + "sha256:26f33e8f6a70c255767e3c3f957ccafc7f1f706b966e110b855bfe944511f1f9", + "sha256:3cd2c044517f38d1b577f05927fb9729d3396f1d44d0c659a445599e79519792", + "sha256:4a03416915b82b81af5502459a8a9dd62a3c299b295dcdf470877cb948d655f2", + "sha256:4ce1e995aeecf7cc32380bc11598bfdfa017d592259d5da00fc7ded11e61d022", + "sha256:4f53e4128c81ca3212ff4cf097c797ab44646a40b42ec02a891155cd7a2ba4d8", + "sha256:4fa72a52a906425416f41738728268072d5acfd48cbe7796af07a923236bcf96", + "sha256:66dd45eb9530e3dde8f7c009f84568bc7cac489b93d04ac86e3111fb46e470c2", + "sha256:6923d077d9ae9e8bacbdb1c07ae78405a9306c8fd1af13bfa06ca891095eb995", + "sha256:833401b15de1bb92791d7b6fb353d4af60dc688eaa521bd97203dcd2d124a7c1", + "sha256:8416ed88ddc057bab0526d4e4e9f3660f614ac2394b5e019a628cdfff3733849", + "sha256:892daa86384994fdf4856cb43c93f40cbe80f7f95bb5da94971b39c7f54b3a9c", + "sha256:98be759efdb5e5fa161e46d404f4e0ce388e72fbf7d9baf010aff16689e22abe", + "sha256:a6d28e7f14ecf3b2ad67c4f106841218c8ab12a0683b1528534a6c87d2307af3", + "sha256:b1d6ebc891607e71fd9da71688fcf332a6630b7f5b7f5549e6e631821c0e5d90", + "sha256:b2a2b0d276a136146e012154baefaea2758ef1f56ae9f4e01c612b0831e0bd2f", + "sha256:b87dfa9f10a470eee7f24234a37d1d5f51e5f5fa9eeffda7c282e2b8f5162eb1", + "sha256:bac0d6f7728a9cc3c1e06d4fcbac12aaa70e9379b3025b27ec1226f0e2d404cf", + "sha256:c991112622baee0ae4d55c008380c32ecfd0ad417bcd0417ba432e6ba7328caa", + "sha256:cda422d54ee7905bfc53ee6915ab68fe7b230cacf581110df4272ee10462aadc", + "sha256:d3148b6ba3923c5850ea197a91a42683f946dba7e8eb82dfa211ab7e708de939", + "sha256:d6033b4ffa34ef70f0b8086fd4c3df4bf801fee485a8a7d4519399818351aa8e", + "sha256:ddff0b2bd7edcc8c82d1adde6dbbf5e60d57ce985402541cd2985c27f7bec2a0", + "sha256:e23cb7f1d8e0f93addf0cae3c5b6f00324cccb4a7949ee558d7b6ca973ab8ae9", + "sha256:effd2ba52cee4ceff1a77f20d2a9f9bf8d50353c854a282b8760ac15b9833168", + "sha256:f90c2267101010de42f7273c94a1f026e56cbc043f9330acd8a80e64300aba33", + "sha256:f960375e9823ae6a07072ff7f8a85954e5a6434f97869f50d0e41649a1c8144f", + "sha256:fcf32bf76dc25e30ed793145a57426064520890d7c02866eb93d3e4abe516948" + ], + "version": "==1.14.1" }, "cryptography": { "hashes": [ - "sha256:02079a6addc7b5140ba0825f542c0869ff4df9a69c360e339ecead5baefa843c", - "sha256:1df22371fbf2004c6f64e927668734070a8953362cd8370ddd336774d6743595", - "sha256:369d2346db5934345787451504853ad9d342d7f721ae82d098083e1f49a582ad", - "sha256:3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651", - "sha256:44ff04138935882fef7c686878e1c8fd80a723161ad6a98da31e14b7553170c2", - "sha256:4b1030728872c59687badcca1e225a9103440e467c17d6d1730ab3d2d64bfeff", - "sha256:58363dbd966afb4f89b3b11dfb8ff200058fbc3b947507675c19ceb46104b48d", - "sha256:6ec280fb24d27e3d97aa731e16207d58bd8ae94ef6eab97249a2afe4ba643d42", - "sha256:7270a6c29199adc1297776937a05b59720e8a782531f1f122f2eb8467f9aab4d", - "sha256:73fd30c57fa2d0a1d7a49c561c40c2f79c7d6c374cc7750e9ac7c99176f6428e", - "sha256:7f09806ed4fbea8f51585231ba742b58cbcfbfe823ea197d8c89a5e433c7e912", - "sha256:90df0cc93e1f8d2fba8365fb59a858f51a11a394d64dbf3ef844f783844cc793", - "sha256:971221ed40f058f5662a604bd1ae6e4521d84e6cad0b7b170564cc34169c8f13", - "sha256:a518c153a2b5ed6b8cc03f7ae79d5ffad7315ad4569b2d5333a13c38d64bd8d7", - "sha256:b0de590a8b0979649ebeef8bb9f54394d3a41f66c5584fff4220901739b6b2f0", - "sha256:b43f53f29816ba1db8525f006fa6f49292e9b029554b3eb56a189a70f2a40879", - "sha256:d31402aad60ed889c7e57934a03477b572a03af7794fa8fb1780f21ea8f6551f", - "sha256:de96157ec73458a7f14e3d26f17f8128c959084931e8997b9e655a39c8fde9f9", - "sha256:df6b4dca2e11865e6cfbfb708e800efb18370f5a46fd601d3755bc7f85b3a8a2", - "sha256:ecadccc7ba52193963c0475ac9f6fa28ac01e01349a2ca48509667ef41ffd2cf", - "sha256:fb81c17e0ebe3358486cd8cc3ad78adbae58af12fc2bf2bc0bb84e8090fa5ce8" - ], - "version": "==2.8" + "sha256:0c608ff4d4adad9e39b5057de43657515c7da1ccb1807c3a27d4cf31fc923b4b", + "sha256:0cbfed8ea74631fe4de00630f4bb592dad564d57f73150d6f6796a24e76c76cd", + "sha256:124af7255ffc8e964d9ff26971b3a6153e1a8a220b9a685dc407976ecb27a06a", + "sha256:384d7c681b1ab904fff3400a6909261cae1d0939cc483a68bdedab282fb89a07", + "sha256:45741f5499150593178fc98d2c1a9c6722df88b99c821ad6ae298eff0ba1ae71", + "sha256:4b9303507254ccb1181d1803a2080a798910ba89b1a3c9f53639885c90f7a756", + "sha256:4d355f2aee4a29063c10164b032d9fa8a82e2c30768737a2fd56d256146ad559", + "sha256:51e40123083d2f946794f9fe4adeeee2922b581fa3602128ce85ff813d85b81f", + "sha256:8713ddb888119b0d2a1462357d5946b8911be01ddbf31451e1d07eaa5077a261", + "sha256:8e924dbc025206e97756e8903039662aa58aa9ba357d8e1d8fc29e3092322053", + "sha256:8ecef21ac982aa78309bb6f092d1677812927e8b5ef204a10c326fc29f1367e2", + "sha256:8ecf9400d0893836ff41b6f977a33972145a855b6efeb605b49ee273c5e6469f", + "sha256:9367d00e14dee8d02134c6c9524bb4bd39d4c162456343d07191e2a0b5ec8b3b", + "sha256:a09fd9c1cca9a46b6ad4bea0a1f86ab1de3c0c932364dbcf9a6c2a5eeb44fa77", + "sha256:ab49edd5bea8d8b39a44b3db618e4783ef84c19c8b47286bf05dfdb3efb01c83", + "sha256:bea0b0468f89cdea625bb3f692cd7a4222d80a6bdafd6fb923963f2b9da0e15f", + "sha256:bec7568c6970b865f2bcebbe84d547c52bb2abadf74cefce396ba07571109c67", + "sha256:ce82cc06588e5cbc2a7df3c8a9c778f2cb722f56835a23a68b5a7264726bb00c", + "sha256:dea0ba7fe6f9461d244679efa968d215ea1f989b9c1957d7f10c21e5c7c09ad6" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==3.0" }, "jinja2": { "hashes": [ - "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f", - "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de" + "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", + "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" ], - "version": "==2.10.3" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.11.2" }, "markupsafe": { "hashes": [ @@ -100,13 +95,16 @@ "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", @@ -123,90 +121,83 @@ "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", - "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.1.1" }, "pycparser": { "hashes": [ - "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3" + "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0", + "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" ], - "version": "==2.19" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.20" }, "pyyaml": { "hashes": [ - "sha256:0113bc0ec2ad727182326b61326afa3d1d8280ae1122493553fd6f4397f33df9", - "sha256:01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4", - "sha256:5124373960b0b3f4aa7df1707e63e9f109b5263eca5976c66e08b1c552d4eaf8", - "sha256:5ca4f10adbddae56d824b2c09668e91219bb178a1eee1faa56af6f99f11bf696", - "sha256:7907be34ffa3c5a32b60b95f4d95ea25361c951383a894fec31be7252b2b6f34", - "sha256:7ec9b2a4ed5cad025c2278a1e6a19c011c80a3caaac804fd2d329e9cc2c287c9", - "sha256:87ae4c829bb25b9fe99cf71fbb2140c448f534e24c998cc60f39ae4f94396a73", - "sha256:9de9919becc9cc2ff03637872a440195ac4241c80536632fffeb6a1e25a74299", - "sha256:a5a85b10e450c66b49f98846937e8cfca1db3127a9d5d1e31ca45c3d0bef4c5b", - "sha256:b0997827b4f6a7c286c01c5f60384d218dca4ed7d9efa945c3e1aa623d5709ae", - "sha256:b631ef96d3222e62861443cc89d6563ba3eeb816eeb96b2629345ab795e53681", - "sha256:bf47c0607522fdbca6c9e817a6e81b08491de50f3766a7a0e6a5be7905961b41", - "sha256:f81025eddd0327c7d4cfe9b62cf33190e1e736cc6e97502b3ec425f574b3e7a8" - ], - "version": "==5.1.2" + "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97", + "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76", + "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2", + "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648", + "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf", + "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f", + "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2", + "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee", + "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d", + "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c", + "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a" + ], + "version": "==5.3.1" }, "six": { "hashes": [ - "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", - "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" + "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", + "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" ], - "version": "==1.13.0" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.15.0" } }, "develop": { "ansible": { "hashes": [ - "sha256:d87cb25df02284d59226ff1d935d7075a175f31d0db83564c2f1ca28bbbd4cb4" + "sha256:88f9d033ece7fd51eca3abb4f02e13b63c924b97f9705a997d5a711c0cf42ab1" ], "index": "pypi", - "version": "==2.9.1" + "version": "==2.9.11" }, "ansible-lint": { "hashes": [ - "sha256:9430ea6e654ba4bf5b9c6921efc040f46cda9c4fd2896a99ff71d21037bcb123", - "sha256:c1b442b01091eca13ef11d98c3376e9489ba5b69a8467828ca86044f384bc0a1" + "sha256:b9fc9a6564f5d60a4284497f966f38ef78f0e2505edbe2bd1225f1ade31c2d8a", + "sha256:eb925d8682d70563ccb80e2aca7b3edf84fb0b768cea3edc6846aac7abdc414a" ], "index": "pypi", - "version": "==4.1.0" + "version": "==4.2.0" }, - "anyconfig": { + "appdirs": { "hashes": [ - "sha256:4d6016ae6eecc5e502bc7e99ae0639c5710c5c67bde5f21b06b9eaafd9ce0e7e" + "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", + "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128" ], - "version": "==0.9.7" + "version": "==1.4.4" }, "arrow": { "hashes": [ - "sha256:01a16d8a93eddf86a29237f32ae36b29c27f047e79312eb4df5d55fd5a2b3183", - "sha256:e1a318a4c0b787833ae46302c02488b6eeef413c6a13324b3261ad320f21ec1e" - ], - "version": "==0.15.4" - }, - "aspy.yaml": { - "hashes": [ - "sha256:463372c043f70160a9ec950c3f1e4c3a82db5fca01d334b6bc89c7164d744bdc", - "sha256:e7c742382eff2caed61f87a39d13f99109088e5e93f04d76eb8d4b28aa143f45" - ], - "version": "==1.3.0" - }, - "attrs": { - "hashes": [ - "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c", - "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72" + "sha256:271b8e05174d48e50324ed0dc5d74796c839c7e579a4f21cf1a7394665f9e94f", + "sha256:edc31dc051db12c95da9bac0271cd1027b8e36912daf6d4580af53b23e62721a" ], - "version": "==19.3.0" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.15.8" }, "bcrypt": { "hashes": [ "sha256:0258f143f3de96b7c14f762c770f5fc56ccd72f8a1857a451c1cd9a655d9ac89", "sha256:0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42", "sha256:19a4b72a6ae5bb467fea018b825f0a7d917789bcfe893e53f15c92805d187294", + "sha256:436a487dec749bca7e6e72498a75a5fa2433bda13bac91d023e18df9089ae0b8", "sha256:5432dd7b34107ae8ed6c10a71b4397f1c853bd39a4d6ffa7e35f40584cffd161", "sha256:6305557019906466fc42dbc53b46da004e72fd7a551c044a827e572c82191752", "sha256:69361315039878c0680be456640f8705d76cb4a3a3fe1e057e0f261b74be4b31", @@ -223,6 +214,7 @@ "sha256:d7bdc26475679dd073ba0ed2766445bb5b20ca4793ca0db32b399dccc6bc84b7", "sha256:ff032765bb8716d9387fd5376d987a937254b0619eff0972779515b5c98820bc" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==3.1.7" }, "binaryornot": { @@ -236,59 +228,56 @@ "hashes": [ "sha256:302e6694f206dd85cb63f13fd5025b31ab6d38c99c50c6d769f8fa0b0f299589" ], + "markers": "python_version >= '2.7'", "version": "==1.3.2" }, "certifi": { "hashes": [ - "sha256:e4f3620cfea4f83eedc95b24abd9cd56f3c4b146dd0177e83a21b4eb49e21e50", - "sha256:fd7c7c74727ddcf00e9acd26bba8da604ffec95bf1c2144e67aff7a8b50e6cef" + "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3", + "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41" ], - "version": "==2019.9.11" + "version": "==2020.6.20" }, "cffi": { "hashes": [ - "sha256:0b49274afc941c626b605fb59b59c3485c17dc776dc3cc7cc14aca74cc19cc42", - "sha256:0e3ea92942cb1168e38c05c1d56b0527ce31f1a370f6117f1d490b8dcd6b3a04", - "sha256:135f69aecbf4517d5b3d6429207b2dff49c876be724ac0c8bf8e1ea99df3d7e5", - "sha256:19db0cdd6e516f13329cba4903368bff9bb5a9331d3410b1b448daaadc495e54", - "sha256:2781e9ad0e9d47173c0093321bb5435a9dfae0ed6a762aabafa13108f5f7b2ba", - "sha256:291f7c42e21d72144bb1c1b2e825ec60f46d0a7468f5346841860454c7aa8f57", - "sha256:2c5e309ec482556397cb21ede0350c5e82f0eb2621de04b2633588d118da4396", - "sha256:2e9c80a8c3344a92cb04661115898a9129c074f7ab82011ef4b612f645939f12", - "sha256:32a262e2b90ffcfdd97c7a5e24a6012a43c61f1f5a57789ad80af1d26c6acd97", - "sha256:3c9fff570f13480b201e9ab69453108f6d98244a7f495e91b6c654a47486ba43", - "sha256:415bdc7ca8c1c634a6d7163d43fb0ea885a07e9618a64bda407e04b04333b7db", - "sha256:42194f54c11abc8583417a7cf4eaff544ce0de8187abaf5d29029c91b1725ad3", - "sha256:4424e42199e86b21fc4db83bd76909a6fc2a2aefb352cb5414833c030f6ed71b", - "sha256:4a43c91840bda5f55249413037b7a9b79c90b1184ed504883b72c4df70778579", - "sha256:599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346", - "sha256:5c4fae4e9cdd18c82ba3a134be256e98dc0596af1e7285a3d2602c97dcfa5159", - "sha256:5ecfa867dea6fabe2a58f03ac9186ea64da1386af2159196da51c4904e11d652", - "sha256:62f2578358d3a92e4ab2d830cd1c2049c9c0d0e6d3c58322993cc341bdeac22e", - "sha256:6471a82d5abea994e38d2c2abc77164b4f7fbaaf80261cb98394d5793f11b12a", - "sha256:6d4f18483d040e18546108eb13b1dfa1000a089bcf8529e30346116ea6240506", - "sha256:71a608532ab3bd26223c8d841dde43f3516aa5d2bf37b50ac410bb5e99053e8f", - "sha256:74a1d8c85fb6ff0b30fbfa8ad0ac23cd601a138f7509dc617ebc65ef305bb98d", - "sha256:7b93a885bb13073afb0aa73ad82059a4c41f4b7d8eb8368980448b52d4c7dc2c", - "sha256:7d4751da932caaec419d514eaa4215eaf14b612cff66398dd51129ac22680b20", - "sha256:7f627141a26b551bdebbc4855c1157feeef18241b4b8366ed22a5c7d672ef858", - "sha256:8169cf44dd8f9071b2b9248c35fc35e8677451c52f795daa2bb4643f32a540bc", - "sha256:aa00d66c0fab27373ae44ae26a66a9e43ff2a678bf63a9c7c1a9a4d61172827a", - "sha256:ccb032fda0873254380aa2bfad2582aedc2959186cce61e3a17abc1a55ff89c3", - "sha256:d754f39e0d1603b5b24a7f8484b22d2904fa551fe865fd0d4c3332f078d20d4e", - "sha256:d75c461e20e29afc0aee7172a0950157c704ff0dd51613506bd7d82b718e7410", - "sha256:dcd65317dd15bc0451f3e01c80da2216a31916bdcffd6221ca1202d96584aa25", - "sha256:e570d3ab32e2c2861c4ebe6ffcad6a8abf9347432a37608fe1fbd157b3f0036b", - "sha256:fd43a88e045cf992ed09fa724b5315b790525f2676883a6ea64e3263bae6549d" - ], - "version": "==1.13.2" + "sha256:267adcf6e68d77ba154334a3e4fc921b8e63cbb38ca00d33d40655d4228502bc", + "sha256:26f33e8f6a70c255767e3c3f957ccafc7f1f706b966e110b855bfe944511f1f9", + "sha256:3cd2c044517f38d1b577f05927fb9729d3396f1d44d0c659a445599e79519792", + "sha256:4a03416915b82b81af5502459a8a9dd62a3c299b295dcdf470877cb948d655f2", + "sha256:4ce1e995aeecf7cc32380bc11598bfdfa017d592259d5da00fc7ded11e61d022", + "sha256:4f53e4128c81ca3212ff4cf097c797ab44646a40b42ec02a891155cd7a2ba4d8", + "sha256:4fa72a52a906425416f41738728268072d5acfd48cbe7796af07a923236bcf96", + "sha256:66dd45eb9530e3dde8f7c009f84568bc7cac489b93d04ac86e3111fb46e470c2", + "sha256:6923d077d9ae9e8bacbdb1c07ae78405a9306c8fd1af13bfa06ca891095eb995", + "sha256:833401b15de1bb92791d7b6fb353d4af60dc688eaa521bd97203dcd2d124a7c1", + "sha256:8416ed88ddc057bab0526d4e4e9f3660f614ac2394b5e019a628cdfff3733849", + "sha256:892daa86384994fdf4856cb43c93f40cbe80f7f95bb5da94971b39c7f54b3a9c", + "sha256:98be759efdb5e5fa161e46d404f4e0ce388e72fbf7d9baf010aff16689e22abe", + "sha256:a6d28e7f14ecf3b2ad67c4f106841218c8ab12a0683b1528534a6c87d2307af3", + "sha256:b1d6ebc891607e71fd9da71688fcf332a6630b7f5b7f5549e6e631821c0e5d90", + "sha256:b2a2b0d276a136146e012154baefaea2758ef1f56ae9f4e01c612b0831e0bd2f", + "sha256:b87dfa9f10a470eee7f24234a37d1d5f51e5f5fa9eeffda7c282e2b8f5162eb1", + "sha256:bac0d6f7728a9cc3c1e06d4fcbac12aaa70e9379b3025b27ec1226f0e2d404cf", + "sha256:c991112622baee0ae4d55c008380c32ecfd0ad417bcd0417ba432e6ba7328caa", + "sha256:cda422d54ee7905bfc53ee6915ab68fe7b230cacf581110df4272ee10462aadc", + "sha256:d3148b6ba3923c5850ea197a91a42683f946dba7e8eb82dfa211ab7e708de939", + "sha256:d6033b4ffa34ef70f0b8086fd4c3df4bf801fee485a8a7d4519399818351aa8e", + "sha256:ddff0b2bd7edcc8c82d1adde6dbbf5e60d57ce985402541cd2985c27f7bec2a0", + "sha256:e23cb7f1d8e0f93addf0cae3c5b6f00324cccb4a7949ee558d7b6ca973ab8ae9", + "sha256:effd2ba52cee4ceff1a77f20d2a9f9bf8d50353c854a282b8760ac15b9833168", + "sha256:f90c2267101010de42f7273c94a1f026e56cbc043f9330acd8a80e64300aba33", + "sha256:f960375e9823ae6a07072ff7f8a85954e5a6434f97869f50d0e41649a1c8144f", + "sha256:fcf32bf76dc25e30ed793145a57426064520890d7c02866eb93d3e4abe516948" + ], + "version": "==1.14.1" }, "cfgv": { "hashes": [ - "sha256:edb387943b665bf9c434f717bf630fa78aecd53d5900d2e05da6ad6048553144", - "sha256:fbd93c9ab0a523bf7daec408f3be2ed99a980e20b2d19b50fc184ca6b820d289" + "sha256:32e43d604bbe7896fe7c248a9c2276447dbef840feb28fe20494f62af110211d", + "sha256:cf22deb93d4bcf92f345a5c3cd39d3d41d6340adc60c78bbbd6588c384fda6a1" ], - "version": "==2.0.1" + "markers": "python_full_version >= '3.6.1'", + "version": "==3.2.0" }, "chardet": { "hashes": [ @@ -299,10 +288,11 @@ }, "click": { "hashes": [ - "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13", - "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" + "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", + "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" ], - "version": "==7.0" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==7.1.2" }, "click-completion": { "hashes": [ @@ -310,117 +300,129 @@ ], "version": "==0.5.2" }, + "click-help-colors": { + "hashes": [ + "sha256:0d841a4058ec88c47f93ff6f32547a055f8e0a0273f6bd6cb3e08430f195131d", + "sha256:119e5faf69cfc919c995c5962326ac8fd87f11e56a371af594e3dfd8458f4c6e" + ], + "version": "==0.8" + }, "colorama": { "hashes": [ - "sha256:05eed71e2e327246ad6b38c540c4a3117230b19679b875190486ddd2d721422d", - "sha256:f8ac84de7840f5b9c4e3347b3c1eaa50f7e49c2b07596221daec5edaabbd7c48" + "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff", + "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1" ], - "version": "==0.4.1" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.4.3" }, "cookiecutter": { "hashes": [ - "sha256:1316a52e1c1f08db0c9efbf7d876dbc01463a74b155a0d83e722be88beda9a3e", - "sha256:ed8f54a8fc79b6864020d773ce11539b5f08e4617f353de1f22d23226f6a0d36" + "sha256:430eb882d028afb6102c084bab6cf41f6559a77ce9b18dc6802e3bc0cc5f4a30", + "sha256:efb6b2d4780feda8908a873e38f0e61778c23f6a2ea58215723bcceb5b515dac" ], - "version": "==1.6.0" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==1.7.2" }, "cryptography": { "hashes": [ - "sha256:02079a6addc7b5140ba0825f542c0869ff4df9a69c360e339ecead5baefa843c", - "sha256:1df22371fbf2004c6f64e927668734070a8953362cd8370ddd336774d6743595", - "sha256:369d2346db5934345787451504853ad9d342d7f721ae82d098083e1f49a582ad", - "sha256:3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651", - "sha256:44ff04138935882fef7c686878e1c8fd80a723161ad6a98da31e14b7553170c2", - "sha256:4b1030728872c59687badcca1e225a9103440e467c17d6d1730ab3d2d64bfeff", - "sha256:58363dbd966afb4f89b3b11dfb8ff200058fbc3b947507675c19ceb46104b48d", - "sha256:6ec280fb24d27e3d97aa731e16207d58bd8ae94ef6eab97249a2afe4ba643d42", - "sha256:7270a6c29199adc1297776937a05b59720e8a782531f1f122f2eb8467f9aab4d", - "sha256:73fd30c57fa2d0a1d7a49c561c40c2f79c7d6c374cc7750e9ac7c99176f6428e", - "sha256:7f09806ed4fbea8f51585231ba742b58cbcfbfe823ea197d8c89a5e433c7e912", - "sha256:90df0cc93e1f8d2fba8365fb59a858f51a11a394d64dbf3ef844f783844cc793", - "sha256:971221ed40f058f5662a604bd1ae6e4521d84e6cad0b7b170564cc34169c8f13", - "sha256:a518c153a2b5ed6b8cc03f7ae79d5ffad7315ad4569b2d5333a13c38d64bd8d7", - "sha256:b0de590a8b0979649ebeef8bb9f54394d3a41f66c5584fff4220901739b6b2f0", - "sha256:b43f53f29816ba1db8525f006fa6f49292e9b029554b3eb56a189a70f2a40879", - "sha256:d31402aad60ed889c7e57934a03477b572a03af7794fa8fb1780f21ea8f6551f", - "sha256:de96157ec73458a7f14e3d26f17f8128c959084931e8997b9e655a39c8fde9f9", - "sha256:df6b4dca2e11865e6cfbfb708e800efb18370f5a46fd601d3755bc7f85b3a8a2", - "sha256:ecadccc7ba52193963c0475ac9f6fa28ac01e01349a2ca48509667ef41ffd2cf", - "sha256:fb81c17e0ebe3358486cd8cc3ad78adbae58af12fc2bf2bc0bb84e8090fa5ce8" - ], - "version": "==2.8" - }, - "docker": { - "hashes": [ - "sha256:6e06c5e70ba4fad73e35f00c55a895a448398f3ada7faae072e2bb01348bafc1", - "sha256:8f93775b8bdae3a2df6bc9a5312cce564cade58d6555f2c2570165a1270cd8a7" + "sha256:0c608ff4d4adad9e39b5057de43657515c7da1ccb1807c3a27d4cf31fc923b4b", + "sha256:0cbfed8ea74631fe4de00630f4bb592dad564d57f73150d6f6796a24e76c76cd", + "sha256:124af7255ffc8e964d9ff26971b3a6153e1a8a220b9a685dc407976ecb27a06a", + "sha256:384d7c681b1ab904fff3400a6909261cae1d0939cc483a68bdedab282fb89a07", + "sha256:45741f5499150593178fc98d2c1a9c6722df88b99c821ad6ae298eff0ba1ae71", + "sha256:4b9303507254ccb1181d1803a2080a798910ba89b1a3c9f53639885c90f7a756", + "sha256:4d355f2aee4a29063c10164b032d9fa8a82e2c30768737a2fd56d256146ad559", + "sha256:51e40123083d2f946794f9fe4adeeee2922b581fa3602128ce85ff813d85b81f", + "sha256:8713ddb888119b0d2a1462357d5946b8911be01ddbf31451e1d07eaa5077a261", + "sha256:8e924dbc025206e97756e8903039662aa58aa9ba357d8e1d8fc29e3092322053", + "sha256:8ecef21ac982aa78309bb6f092d1677812927e8b5ef204a10c326fc29f1367e2", + "sha256:8ecf9400d0893836ff41b6f977a33972145a855b6efeb605b49ee273c5e6469f", + "sha256:9367d00e14dee8d02134c6c9524bb4bd39d4c162456343d07191e2a0b5ec8b3b", + "sha256:a09fd9c1cca9a46b6ad4bea0a1f86ab1de3c0c932364dbcf9a6c2a5eeb44fa77", + "sha256:ab49edd5bea8d8b39a44b3db618e4783ef84c19c8b47286bf05dfdb3efb01c83", + "sha256:bea0b0468f89cdea625bb3f692cd7a4222d80a6bdafd6fb923963f2b9da0e15f", + "sha256:bec7568c6970b865f2bcebbe84d547c52bb2abadf74cefce396ba07571109c67", + "sha256:ce82cc06588e5cbc2a7df3c8a9c778f2cb722f56835a23a68b5a7264726bb00c", + "sha256:dea0ba7fe6f9461d244679efa968d215ea1f989b9c1957d7f10c21e5c7c09ad6" ], - "index": "pypi", - "version": "==4.1.0" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==3.0" }, - "entrypoints": { + "distlib": { "hashes": [ - "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", - "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" + "sha256:8c09de2c67b3e7deef7184574fc060ab8a793e7adbb183d942c389c8b13c52fb", + "sha256:edf6116872c863e1aa9d5bb7cb5e05a022c519a4594dc703843343a9ddd9bff1" ], - "version": "==0.3" + "version": "==0.3.1" }, - "fasteners": { + "distro": { "hashes": [ - "sha256:007e4d2b2d4a10093f67e932e5166722d2eab83b77724156e92ad013c6226574", - "sha256:3a176da6b70df9bb88498e1a18a9e4a8579ed5b9141207762368a1017bf8f5ef" + "sha256:0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92", + "sha256:df74eed763e18d10d0da624258524ae80486432cd17392d9c3d96f5e83cd2799" ], - "version": "==0.15" + "version": "==1.5.0" }, - "flake8": { + "docker": { "hashes": [ - "sha256:45681a117ecc81e870cbf1262835ae4af5e7a8b08e40b944a8a6e6b895914cfb", - "sha256:49356e766643ad15072a789a20915d3c91dc89fd313ccd71802303fd67e4deca" + "sha256:03a46400c4080cb6f7aa997f881ddd84fef855499ece219d75fbdb53289c17ab", + "sha256:26eebadce7e298f55b76a88c4f8802476c5eaddbdbe38dbc6cce8781c47c9b54" ], - "version": "==3.7.9" + "index": "pypi", + "version": "==4.2.2" }, - "future": { + "fasteners": { "hashes": [ - "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d" + "sha256:007e4d2b2d4a10093f67e932e5166722d2eab83b77724156e92ad013c6226574", + "sha256:3a176da6b70df9bb88498e1a18a9e4a8579ed5b9141207762368a1017bf8f5ef" ], - "version": "==0.18.2" + "version": "==0.15" }, - "git-url-parse": { + "filelock": { "hashes": [ - "sha256:4655ee22f1d8bf7a1eb1066c1da16529b186966c6d8331f7f55686a76a9f7aef", - "sha256:7b5f4e3aeb1d693afeee67a3bd4ac063f7206c2e8e46e559f0da0da98445f117", - "sha256:9353ff40d69488ff2299b27f40e0350ad87bd5348ea6ea09a1895eda9e5733de" + "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59", + "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836" ], - "version": "==1.2.2" + "version": "==3.0.12" }, "identify": { "hashes": [ - "sha256:4f1fe9a59df4e80fcb0213086fcf502bc1765a01ea4fe8be48da3b65afd2a017", - "sha256:d8919589bd2a5f99c66302fec0ef9027b12ae150b0b0213999ad3f695fc7296e" + "sha256:110ed090fec6bce1aabe3c72d9258a9de82207adeaa5a05cd75c635880312f9a", + "sha256:ccd88716b890ecbe10920659450a635d2d25de499b9a638525a48b48261d989b" ], - "version": "==1.4.7" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.4.25" }, "idna": { "hashes": [ - "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", - "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" + "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6", + "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0" ], - "version": "==2.8" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.10" }, "importlib-metadata": { "hashes": [ - "sha256:aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25dc3ad26", - "sha256:d5f18a79777f3aa179c145737780282e27b508fc8fd688cb17c7a813e8bd39af" + "sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83", + "sha256:dc15b2969b4ce36305c51eebe62d418ac7791e9a157911d58bfb1f9ccd8e2070" ], "markers": "python_version < '3.8'", - "version": "==0.23" + "version": "==1.7.0" + }, + "importlib-resources": { + "hashes": [ + "sha256:19f745a6eca188b490b1428c8d1d4a0d2368759f32370ea8fb89cad2ab1106c3", + "sha256:d028f66b66c0d5732dae86ba4276999855e162a749c92620a38c1d779ed138a7" + ], + "markers": "python_version < '3.7'", + "version": "==3.0.0" }, "jinja2": { "hashes": [ - "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f", - "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de" + "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", + "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" ], - "version": "==2.10.3" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.11.2" }, "jinja2-time": { "hashes": [ @@ -435,13 +437,16 @@ "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", @@ -458,27 +463,23 @@ "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", - "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.1.1" }, - "mccabe": { - "hashes": [ - "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", - "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" - ], - "version": "==0.6.1" - }, "molecule": { "extras": [ "docker" ], "hashes": [ - "sha256:12fa4231ed69c6e7f50432588eaace36cea917a8c73c1751269ce55df32ced24", - "sha256:d9d7621167041ae2a8eb19f1f8dc23c071cdab2cd3ca80655e2c8796b4c00e09" + "sha256:b83d73b3e34ad9bc7cc62f1869a2c9e4c4cc5e5c5a2d9de963e838d5f37fb47b", + "sha256:e3ba0fb0bab1f60b6f0aef768a3759b383267773be47ee942adadf27d9f6fa35" ], "index": "pypi", - "version": "==2.22" + "version": "==3.0.6" }, "monotonic": { "hashes": [ @@ -487,58 +488,39 @@ ], "version": "==1.5" }, - "more-itertools": { - "hashes": [ - "sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832", - "sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4" - ], - "version": "==7.2.0" - }, "nodeenv": { "hashes": [ - "sha256:ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a" + "sha256:4b0b77afa3ba9b54f4b6396e60b0c83f59eaeb2d63dc3cc7a70f7f4af96c82bc" ], - "version": "==1.3.3" - }, - "packaging": { - "hashes": [ - "sha256:28b924174df7a2fa32c1953825ff29c61e2f5e082343165438812f00d3a7fc47", - "sha256:d9551545c6d761f3def1677baf08ab2a3ca17c56879e70fecba2fc4dde4ed108" - ], - "version": "==19.2" + "version": "==1.4.0" }, "paramiko": { "hashes": [ - "sha256:99f0179bdc176281d21961a003ffdb2ec369daac1a1007241f53374e376576cf", - "sha256:f4b2edfa0d226b70bd4ca31ea7e389325990283da23465d572ed1f70a7583041" + "sha256:920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f", + "sha256:9c980875fa4d2cb751604664e9a2d0f69096643f5be4db1b99599fe114a97b2f" ], - "version": "==2.6.0" + "version": "==2.7.1" }, "pathspec": { "hashes": [ - "sha256:e285ccc8b0785beadd4c18e5708b12bb8fcf529a1e61215b3feff1d1e559ea5c" + "sha256:7d91249d21749788d07a2d0f94147accd8f845507400749ea19c1ec9054a12b0", + "sha256:da45173eb3a6f2a5a487efba21f050af2b41948be6ab52b6a1e3ff22bb8b7061" ], - "version": "==0.6.0" - }, - "pbr": { - "hashes": [ - "sha256:2c8e420cd4ed4cec4e7999ee47409e876af575d4c35a45840d59e8b5f3155ab8", - "sha256:b32c8ccaac7b1a20c0ce00ce317642e6cf231cf038f9875e0280e28af5bf7ac9" - ], - "version": "==5.4.3" + "version": "==0.8.0" }, "pexpect": { "hashes": [ - "sha256:2094eefdfcf37a1fdbfb9aa090862c1a4878e5c7e0e7e7088bdb511c558e5cd1", - "sha256:9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb" + "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", + "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" ], - "version": "==4.7.0" + "version": "==4.8.0" }, "pluggy": { "hashes": [ "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.13.1" }, "poyo": { @@ -546,32 +528,16 @@ "sha256:3e2ca8e33fdc3c411cd101ca395668395dd5dc7ac775b8e809e3def9f9fe041a", "sha256:e26956aa780c45f011ca9886f044590e2d8fd8b61db7b1c1cf4e0869f48ed4dd" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.5.0" }, "pre-commit": { "hashes": [ - "sha256:9f152687127ec90642a2cc3e4d9e1e6240c4eb153615cb02aa1ad41d331cbb6e", - "sha256:c2e4810d2d3102d354947907514a78c5d30424d299dc0fe48f5aa049826e9b50" + "sha256:1657663fdd63a321a4a739915d7d03baedd555b25054449090f97bb0cb30a915", + "sha256:e8b1315c585052e729ab7e99dcca5698266bedce9067d21dc909c23e3ceed626" ], "index": "pypi", - "version": "==1.20.0" - }, - "psutil": { - "hashes": [ - "sha256:021d361439586a0fd8e64f8392eb7da27135db980f249329f1a347b9de99c695", - "sha256:145e0f3ab9138165f9e156c307100905fd5d9b7227504b8a9d3417351052dc3d", - "sha256:348ad4179938c965a27d29cbda4a81a1b2c778ecd330a221aadc7bd33681afbd", - "sha256:3feea46fbd634a93437b718518d15b5dd49599dfb59a30c739e201cc79bb759d", - "sha256:474e10a92eeb4100c276d4cc67687adeb9d280bbca01031a3e41fb35dfc1d131", - "sha256:47aeb4280e80f27878caae4b572b29f0ec7967554b701ba33cd3720b17ba1b07", - "sha256:73a7e002781bc42fd014dfebb3fc0e45f8d92a4fb9da18baea6fb279fbc1d966", - "sha256:d051532ac944f1be0179e0506f6889833cf96e466262523e57a871de65a15147", - "sha256:dfb8c5c78579c226841908b539c2374da54da648ee5a837a731aa6a105a54c00", - "sha256:e3f5f9278867e95970854e92d0f5fe53af742a7fc4f2eba986943345bcaed05d", - "sha256:e9649bb8fc5cea1f7723af53e4212056a6f984ee31784c10632607f472dec5ee" - ], - "markers": "sys_platform != 'win32' and sys_platform != 'cygwin'", - "version": "==5.6.5" + "version": "==2.6.0" }, "ptyprocess": { "hashes": [ @@ -580,119 +546,88 @@ ], "version": "==0.6.0" }, - "py": { - "hashes": [ - "sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa", - "sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53" - ], - "version": "==1.8.0" - }, - "pycodestyle": { - "hashes": [ - "sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56", - "sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c" - ], - "version": "==2.5.0" - }, "pycparser": { "hashes": [ - "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3" - ], - "version": "==2.19" - }, - "pyflakes": { - "hashes": [ - "sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0", - "sha256:d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2" + "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0", + "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" ], - "version": "==2.1.1" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.20" }, "pynacl": { "hashes": [ - "sha256:05c26f93964373fc0abe332676cb6735f0ecad27711035b9472751faa8521255", - "sha256:0c6100edd16fefd1557da078c7a31e7b7d7a52ce39fdca2bec29d4f7b6e7600c", - "sha256:0d0a8171a68edf51add1e73d2159c4bc19fc0718e79dec51166e940856c2f28e", - "sha256:1c780712b206317a746ace34c209b8c29dbfd841dfbc02aa27f2084dd3db77ae", - "sha256:2424c8b9f41aa65bbdbd7a64e73a7450ebb4aa9ddedc6a081e7afcc4c97f7621", - "sha256:2d23c04e8d709444220557ae48ed01f3f1086439f12dbf11976e849a4926db56", - "sha256:30f36a9c70450c7878053fa1344aca0145fd47d845270b43a7ee9192a051bf39", - "sha256:37aa336a317209f1bb099ad177fef0da45be36a2aa664507c5d72015f956c310", - "sha256:4943decfc5b905748f0756fdd99d4f9498d7064815c4cf3643820c9028b711d1", - "sha256:53126cd91356342dcae7e209f840212a58dcf1177ad52c1d938d428eebc9fee5", - "sha256:57ef38a65056e7800859e5ba9e6091053cd06e1038983016effaffe0efcd594a", - "sha256:5bd61e9b44c543016ce1f6aef48606280e45f892a928ca7068fba30021e9b786", - "sha256:6482d3017a0c0327a49dddc8bd1074cc730d45db2ccb09c3bac1f8f32d1eb61b", - "sha256:7d3ce02c0784b7cbcc771a2da6ea51f87e8716004512493a2b69016326301c3b", - "sha256:a14e499c0f5955dcc3991f785f3f8e2130ed504fa3a7f44009ff458ad6bdd17f", - "sha256:a39f54ccbcd2757d1d63b0ec00a00980c0b382c62865b61a505163943624ab20", - "sha256:aabb0c5232910a20eec8563503c153a8e78bbf5459490c49ab31f6adf3f3a415", - "sha256:bd4ecb473a96ad0f90c20acba4f0bf0df91a4e03a1f4dd6a4bdc9ca75aa3a715", - "sha256:bf459128feb543cfca16a95f8da31e2e65e4c5257d2f3dfa8c0c1031139c9c92", - "sha256:e2da3c13307eac601f3de04887624939aca8ee3c9488a0bb0eca4fb9401fc6b1", - "sha256:f67814c38162f4deb31f68d590771a29d5ae3b1bd64b75cf232308e5c74777e0" - ], - "version": "==1.3.0" - }, - "pyparsing": { - "hashes": [ - "sha256:20f995ecd72f2a1f4bf6b072b63b22e2eb457836601e76d6e5dfcd75436acc1f", - "sha256:4ca62001be367f01bd3e92ecbb79070272a9d4964dce6a48a82ff0b8bc7e683a" - ], - "version": "==2.4.5" - }, - "pytest": { - "hashes": [ - "sha256:1897d74f60a5d8be02e06d708b41bf2445da2ee777066bd68edf14474fc201eb", - "sha256:f6a567e20c04259d41adce9a360bd8991e6aa29dd9695c5e6bd25a9779272673" - ], - "version": "==5.3.0" + "sha256:06cbb4d9b2c4bd3c8dc0d267416aaed79906e7b33f114ddbf0911969794b1cc4", + "sha256:11335f09060af52c97137d4ac54285bcb7df0cef29014a1a4efe64ac065434c4", + "sha256:2fe0fc5a2480361dcaf4e6e7cea00e078fcda07ba45f811b167e3f99e8cff574", + "sha256:30f9b96db44e09b3304f9ea95079b1b7316b2b4f3744fe3aaecccd95d547063d", + "sha256:511d269ee845037b95c9781aa702f90ccc36036f95d0f31373a6a79bd8242e25", + "sha256:537a7ccbea22905a0ab36ea58577b39d1fa9b1884869d173b5cf111f006f689f", + "sha256:54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505", + "sha256:757250ddb3bff1eecd7e41e65f7f833a8405fede0194319f87899690624f2122", + "sha256:7757ae33dae81c300487591c68790dfb5145c7d03324000433d9a2c141f82af7", + "sha256:7c6092102219f59ff29788860ccb021e80fffd953920c4a8653889c029b2d420", + "sha256:8122ba5f2a2169ca5da936b2e5a511740ffb73979381b4229d9188f6dcb22f1f", + "sha256:9c4a7ea4fb81536c1b1f5cc44d54a296f96ae78c1ebd2311bd0b60be45a48d96", + "sha256:cd401ccbc2a249a47a3a1724c2918fcd04be1f7b54eb2a5a71ff915db0ac51c6", + "sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514", + "sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff", + "sha256:f8851ab9041756003119368c1e6cd0b9c631f46d686b3904b18c0139f4419f80" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.4.0" }, "python-dateutil": { "hashes": [ "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.8.1" }, "python-gilt": { "hashes": [ - "sha256:4fd58c128635d1f4a8c93305e648f23379ce56e23624e4c5479427fcd2d5656e", - "sha256:c7321ef1a8efddbdef657b4fd21c3eaf1b4cb24a9656d97b73a444b1feb2067a", - "sha256:e23a45a6905e6bb7aec3ff7652b48309933a6991fad4546d9e793ac7e0513f8a" + "sha256:e220ea2e7e190ee06dbfa5fafe87967858b4ac0cf53f3072fa6ece4664a42082" + ], + "markers": "python_version >= '3.6'", + "version": "==1.2.3" + }, + "python-slugify": { + "hashes": [ + "sha256:69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270" ], - "version": "==1.2.1" + "version": "==4.0.1" }, "pyyaml": { "hashes": [ - "sha256:0113bc0ec2ad727182326b61326afa3d1d8280ae1122493553fd6f4397f33df9", - "sha256:01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4", - "sha256:5124373960b0b3f4aa7df1707e63e9f109b5263eca5976c66e08b1c552d4eaf8", - "sha256:5ca4f10adbddae56d824b2c09668e91219bb178a1eee1faa56af6f99f11bf696", - "sha256:7907be34ffa3c5a32b60b95f4d95ea25361c951383a894fec31be7252b2b6f34", - "sha256:7ec9b2a4ed5cad025c2278a1e6a19c011c80a3caaac804fd2d329e9cc2c287c9", - "sha256:87ae4c829bb25b9fe99cf71fbb2140c448f534e24c998cc60f39ae4f94396a73", - "sha256:9de9919becc9cc2ff03637872a440195ac4241c80536632fffeb6a1e25a74299", - "sha256:a5a85b10e450c66b49f98846937e8cfca1db3127a9d5d1e31ca45c3d0bef4c5b", - "sha256:b0997827b4f6a7c286c01c5f60384d218dca4ed7d9efa945c3e1aa623d5709ae", - "sha256:b631ef96d3222e62861443cc89d6563ba3eeb816eeb96b2629345ab795e53681", - "sha256:bf47c0607522fdbca6c9e817a6e81b08491de50f3766a7a0e6a5be7905961b41", - "sha256:f81025eddd0327c7d4cfe9b62cf33190e1e736cc6e97502b3ec425f574b3e7a8" - ], - "version": "==5.1.2" + "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97", + "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76", + "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2", + "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648", + "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf", + "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f", + "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2", + "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee", + "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d", + "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c", + "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a" + ], + "version": "==5.3.1" }, "requests": { "hashes": [ - "sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4", - "sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" + "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b", + "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898" ], - "version": "==2.22.0" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.24.0" }, "ruamel.yaml": { "hashes": [ - "sha256:0db639b1b2742dae666c6fc009b8d1931ef15c9276ef31c0673cc6dcf766cf40", - "sha256:412a6f5cfdc0525dee6a27c08f5415c7fd832a7afcb7a0ed7319628aed23d408" + "sha256:0962fd7999e064c4865f96fb1e23079075f4a2a14849bcdc5cdba53a24f9759b", + "sha256:099c644a778bf72ffa00524f78dd0b6476bca94a1da344130f4bf3381ce5b954" ], - "version": "==0.16.5" + "markers": "python_version < '3.7'", + "version": "==0.16.10" }, "ruamel.yaml.clib": { "hashes": [ @@ -709,55 +644,67 @@ "sha256:a0ff786d2a7dbe55f9544b3f6ebbcc495d7e730df92a08434604f6f470b899c5", "sha256:b1b7fcee6aedcdc7e62c3a73f238b3d080c7ba6650cd808bce8d7761ec484070", "sha256:b66832ea8077d9b3f6e311c4a53d06273db5dc2db6e8a908550f3c14d67e718c", + "sha256:be018933c2f4ee7de55e7bd7d0d801b3dfb09d21dad0cce8a97995fd3e44be30", "sha256:d0d3ac228c9bbab08134b4004d748cf9f8743504875b3603b3afbb97e3472947", "sha256:d10e9dd744cf85c219bf747c75194b624cc7a94f0c80ead624b06bfa9f61d3bc", "sha256:ea4362548ee0cbc266949d8a441238d9ad3600ca9910c3fe4e82ee3a50706973", "sha256:ed5b3698a2bb241b7f5cbbe277eaa7fe48b07a58784fba4f75224fd066d253ad", "sha256:f9dcc1ae73f36e8059589b601e8e4776b9976effd76c21ad6a855a74318efd6e" ], - "markers": "platform_python_implementation == 'CPython' and python_version < '3.8'", + "markers": "python_version < '3.9' and platform_python_implementation == 'CPython'", "version": "==0.2.0" }, + "selinux": { + "hashes": [ + "sha256:820adcf1b4451c9cc7759848797703263ba0eb6a4cad76d73548a9e0d57b7926", + "sha256:d435f514e834e3fdc0941f6a29d086b80b2ea51b28112aee6254bd104ee42a74" + ], + "markers": "sys_platform == 'linux'", + "version": "==0.2.1" + }, "sh": { "hashes": [ - "sha256:ae3258c5249493cebe73cb4e18253a41ed69262484bad36fdb3efcb8ad8870bb", - "sha256:b52bf5833ed01c7b5c5fb73a7f71b3d98d48e9b9b8764236237bdc7ecae850fc" + "sha256:6f792e45b45d039b423081558904981e8ab49572b0c38009fcc65feaab06bcda", + "sha256:97a3d2205e3c6a842d87ebbc9ae93acae5a352b1bc4609b428d0fd5bb9e286a3" ], - "version": "==1.12.14" + "version": "==1.13.1" }, "shellingham": { "hashes": [ - "sha256:77d37a4fd287c1e663006f7ecf1b9deca9ad492d0082587bd813c44eb49e4e62", - "sha256:985b23bbd1feae47ca6a6365eacd314d93d95a8a16f8f346945074c28fe6f3e0" + "sha256:576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e", + "sha256:7f6206ae169dc1a03af8a138681b3f962ae61cc93ade84d0585cca3aaf770044" ], - "version": "==1.3.1" + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.3.2" }, "six": { "hashes": [ - "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", - "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" + "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", + "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" ], - "version": "==1.13.0" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.15.0" }, "tabulate": { "hashes": [ - "sha256:5470cc6687a091c7042cee89b2946d9235fe9f6d49c193a4ae2ac7bf386737c8" + "sha256:ac64cb76d53b1231d364babcd72abbb16855adac7de6665122f97b593f1eb2ba", + "sha256:db2723a20d04bcda8522165c73eea7c300eda74e0ce852d9022e0159d7895007" ], - "version": "==0.8.6" + "version": "==0.8.7" }, - "testinfra": { + "text-unidecode": { "hashes": [ - "sha256:8de4772bf4749b1d1985360caa20593314b5bb4df85ccfbdf8788ac317b53a18", - "sha256:9f2ddbb102018f2ef08d4b0b9b39aea962c678f31132045c8a61910758e6dd04" + "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", + "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93" ], - "version": "==3.2.1" + "version": "==1.3" }, "toml": { "hashes": [ - "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c", - "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e" + "sha256:926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f", + "sha256:bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88" ], - "version": "==0.10.0" + "version": "==0.10.1" }, "tree-format": { "hashes": [ @@ -768,52 +715,41 @@ }, "urllib3": { "hashes": [ - "sha256:a8a318824cc77d1fd4b2bec2ded92646630d7fe8619497b142c84a9e6f5a7293", - "sha256:f3c5fd51747d450d4dcf6f923c81f78f811aab8205fda64b0aba34a4e48b0745" + "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a", + "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461" ], - "version": "==1.25.7" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", + "version": "==1.25.10" }, "virtualenv": { "hashes": [ - "sha256:116655188441670978117d0ebb6451eb6a7526f9ae0796cc0dee6bd7356909b0", - "sha256:b57776b44f91511866594e477dd10e76a6eb44439cdd7f06dcd30ba4c5bd854f" + "sha256:7b54fd606a1b85f83de49ad8d80dbec08e983a2d2f96685045b262ebc7481ee5", + "sha256:8cd7b2a4850b003a11be2fc213e206419efab41115cc14bca20e69654f2ac08e" ], - "version": "==16.7.8" - }, - "wcwidth": { - "hashes": [ - "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", - "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" - ], - "version": "==0.1.7" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==20.0.30" }, "websocket-client": { "hashes": [ - "sha256:1151d5fb3a62dc129164292e1227655e4bbc5dd5340a5165dfae61128ec50aa9", - "sha256:1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a" + "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549", + "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010" ], - "version": "==0.56.0" - }, - "whichcraft": { - "hashes": [ - "sha256:acdbb91b63d6a15efbd6430d1d7b2d36e44a71697e93e19b7ded477afd9fce87", - "sha256:deda9266fbb22b8c64fd3ee45c050d61139cd87419765f588e37c8d23e236dd9" - ], - "version": "==0.6.1" + "version": "==0.57.0" }, "yamllint": { "hashes": [ - "sha256:0260121ed6a428b98bbadb7b6b66e9cd00114382e3d7ad06fa80e0754414cf15", - "sha256:c65f6df10e2752054ac89fbe7b32abc00864aecb747cf40c73fe445aea1da5f1" + "sha256:40b68de6bacdccec1585dbd54072731b10da7fc2f9cfd96517a71f066208b61f", + "sha256:ad3b0d30317dca005d7af99ff27248d459cae2d931a2ff06a134b67bcd405b30" ], - "version": "==1.19.0" + "version": "==1.24.2" }, "zipp": { "hashes": [ - "sha256:3718b1cbcd963c7d4c5511a8240812904164b7f381b647143a89d3b98f9bcd8e", - "sha256:f06903e9f1f43b12d371004b4ac7b06ab39a44adc747266928ae6debfa7b3335" + "sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b", + "sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96" ], - "version": "==0.6.0" + "markers": "python_version < '3.8'", + "version": "==3.1.0" } } } diff --git a/files/secrets-example.yml b/files/secrets-example.yml deleted file mode 100644 index 7312b1f..0000000 --- a/files/secrets-example.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- - -# password for the GPG key -gpg_pass: testpass -# name of the GPG key -keyname: thekey diff --git a/files/vars.yml b/files/vars.yml index 3928f10..e171b65 100644 --- a/files/vars.yml +++ b/files/vars.yml @@ -1,10 +1,8 @@ ---- - os_short: linux_amd64 -install_dir: "{{ ansible_env.HOME }}/.install_deps" +install_dir: '{{ ansible_env.HOME }}/.install_deps' -email: dev@quantummadness.com +email: dev@artis3nal.com handle: Artis3n zsh_plugins: @@ -18,119 +16,75 @@ zsh_plugins: - rvm - sudo - systemd - - vagrant - vscode - web-search - wd - zsh-syntax-highlighting - zsh-autosuggestions - - poetry - -gpg_comment: Dev Key apt_dependencies: - python3-apt - -apt_repos: - - ansible/ansible - - nextcloud-devs/client - +apt_repos: [] apt_packages: - aptitude + - apt-transport-https + - ca-certificates - curl - - vim - - gnome-tweak-tool - firefox - - golang + - flameshot - git + - golang + - jq + - libssl-dev + - nodejs + - openssl + - openvpn - postgresql - postgresql-contrib - - pgadmin3 - - apt-transport-https - - ca-certificates + - ruby-full - software-properties-common - texlive-full - - openvpn - - openssl - - libssl-dev + - vim + - wget - zsh - - nextcloud-client - - virtualbox - - deja-dup - - vagrant - - gnome-shell-extension-appindicator - - shellcheck - - jq - - awscli - - flameshot - -pentest_packages: - - sqlmap - - nmap - - nikto - - steghide - - exiftool - - foremost - - binwalk - - volatility - - p7zip - - hexedit - - hashcat - - gdb - - wireshark - - tshark - - radare2 - - remmina - -jabba_install_script: jabba.install.sh -java_version: 1.13 -keybase_url: https://prerelease.keybase.io/keybase_amd64.deb -keybase_deb: keybase_amd64.deb - -nvm_install_script: nvm.install.sh -node_version: 12.12.0 - -calibre_url: https://download.calibre-ebook.com/linux-installer.sh +calibre_url: 'https://download.calibre-ebook.com/linux-installer.sh' jetbrains_toolbox: jetbrains-toolbox.tar.gz -jetbrains_toolbox_url: https://data.services.jetbrains.com/products/download?platform=linux&code=TBA - -vmware_url: https://www.vmware.com/go/getworkstation-linux - -ruby_version: 2.6.5 -rvm_repo: rael-gc/rvm -rvm_package: rvm +jetbrains_toolbox_url: 'https://data.services.jetbrains.com/products/download?platform=linux&code=TBA' -rvm_config_list: - - { regexp: 'rvm_silence_path_mismatch_check_flag', line: 'rvm_silence_path_mismatch_check_flag=1' } - - { regexp: 'rvm_autoupdate_flag', line: 'rvm_autoupdate_flag=2' } +sdkman_install_script: sdkman.sh +sdkman_java_version: '14.0.2.hs-adpt' ssh_keypair: filename: id_ed25519 type: ed25519 - comment: dev@quantummadness.com + comment: dev@artis3nal.com gpg_packages: - gnupg2 - rng-tools5 -# https://www.color-hex.com/color-palettes/ keyboard_color: left: a8383b center: aaa939 - right: 2e4372 + right: .inf docker_apt_dependencies: - apt-transport-https - ca-certificates - software-properties-common + - gnupg-agent + - curl +docker_gpgkey_url: https://download.docker.com/linux/ubuntu/gpg +docker_gpgkey_fingerprint: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 docker_apt_arch: amd64 -docker_apt_repo: deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable -docker_apt: docker-ce - -john_jumbo_branch: bleeding-jumbo - -wine_packages: - - winehq-stable - - winetricks +docker_apt_repo: >- + deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/{{ + ansible_distribution|lower }} {{ ansible_distribution_release }} stable +docker_apt: + - docker-ce + - docker-ce-cli + - containerd.io + +bitwarden_snap_package: bitwarden diff --git a/handlers/handlers.yml b/handlers/handlers.yml index c47d033..ffe2b55 100644 --- a/handlers/handlers.yml +++ b/handlers/handlers.yml @@ -1,7 +1,10 @@ --- -- name: Keybase Install - command: /usr/bin/run_keybase +- name: Clean up apt + become: yes + apt: + autoremove: yes + autoclean: yes - name: Restart Docker become: yes diff --git a/main.yml b/main.yml index e23f670..1aeb63c 100644 --- a/main.yml +++ b/main.yml @@ -1,98 +1,62 @@ ---- - name: All Tasks hosts: all connection: local - gather_facts: yes + gather_facts: 'yes' vars_files: - files/vars.yml - - files/secrets.yml - collections: - artis3n.github - roles: - role: gantsign.visual-studio-code users: - - username: "{{ lookup('env', 'USER') }}" + - username: '{{ ansible_user }}' visual_studio_code_extensions: - Shan.code-settings-sync - - role: artis3n.bitwarden_app - tasks: - name: Setup | Scripts folder file: - path: "{{ install_dir }}" + path: '{{ install_dir }}' state: directory - mode: 0755 - + mode: 755 + - import_tasks: tasks/apt.yml - become: yes + become: 'yes' tags: apt - + - import_tasks: tasks/terminal.yml tags: terminal - + - import_tasks: tasks/java.yml tags: - language - java - - - import_tasks: tasks/node.yml - tags: - - language - - node - - - import_tasks: tasks/ruby.yml - tags: - - language - - ruby - + - import_tasks: tasks/git.yml tags: git - - - import_tasks: tasks/vagrant.yml - tags: vagrant - + - import_tasks: tasks/terraform.yml tags: terraform - - - import_tasks: tasks/cloudgoat.yml - tags: cloudgoat - + - import_tasks: tasks/docker.yml tags: docker - + - import_tasks: tasks/applications/jetbrains.yml tags: - applications - jetbrains - - - import_tasks: tasks/applications/vmware.yml - tags: - - applications - - vmware - + - import_tasks: tasks/applications/calibre.yml tags: - applications - calibre - - - import_tasks: tasks/applications/keybase.yml + + - import_tasks: tasks/applications/bitwarden.yml tags: - applications - - keybase - - - import_tasks: tasks/gpg.yml - tags: gpg - + - bitwarden + - import_tasks: tasks/ssh.yml tags: ssh - - - import_tasks: tasks/pentest.yml - tags: pentest - - - import_tasks: tasks/wine.yml - tags: wine - + handlers: - import_tasks: handlers/handlers.yml diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index fee5674..002f63e 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -1,24 +1,24 @@ ---- dependency: name: galaxy options: role-file: requirements.yml + requirements-file: requirements.yml driver: name: docker -lint: - name: yamllint +lint: | + set -e + yamllint . + ansible-lint platforms: - name: instance - image: artis3n/docker-${MOLECULE_DISTRO:-ubuntu1804}-ansible:latest - command: ${MOLECULE_DOCKER_COMMAND:-""} + image: 'geerlingguy/docker-ubuntu2004-ansible:latest' + command: '${MOLECULE_DOCKER_COMMAND:-""}' pre_build_image: true volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro + - '/sys/fs/cgroup:/sys/fs/cgroup:ro' privileged: true provisioner: name: ansible - lint: - name: ansible-lint options: vault-id: ../../.vault_pass inventory: @@ -26,6 +26,15 @@ provisioner: instance: ansible_user: ansible verifier: - name: testinfra - lint: - name: flake8 + name: ansible +scenario: + name: default + test_sequence: + - lint + - destroy + - syntax + - create + - converge + - idempotence + - verify + - destroy diff --git a/molecule/default/playbook.yml b/molecule/default/playbook.yml index 0cdf2ab..d0917c6 100644 --- a/molecule/default/playbook.yml +++ b/molecule/default/playbook.yml @@ -1,97 +1,61 @@ ---- - name: Converge hosts: all - gather_facts: yes + gather_facts: 'yes' vars_files: - ../../files/vars.yml - - ../../files/secrets.yml - collections: - artis3n.github - roles: - role: gantsign.visual-studio-code users: - - username: "{{ ansible_user }}" + - username: '{{ ansible_user }}' visual_studio_code_extensions: - Shan.code-settings-sync - - role: artis3n.bitwarden_app - tasks: - name: Setup | Scripts folder file: - path: "{{ install_dir }}" + path: '{{ install_dir }}' state: directory - mode: 0755 - + mode: 755 + - import_tasks: ../../tasks/apt.yml - become: yes + become: 'yes' tags: apt - + - import_tasks: ../../tasks/terminal.yml tags: terminal - + - import_tasks: ../../tasks/java.yml tags: - language - java - - - import_tasks: ../../tasks/node.yml - tags: - - language - - node - - - import_tasks: ../../tasks/ruby.yml - tags: - - language - - ruby - + - import_tasks: ../../tasks/git.yml tags: git - - - import_tasks: ../../tasks/vagrant.yml - tags: vagrant - + - import_tasks: ../../tasks/terraform.yml tags: terraform - - - import_tasks: ../../tasks/cloudgoat.yml - tags: cloudgoat - + - import_tasks: ../../tasks/docker.yml tags: docker - + - import_tasks: ../../tasks/applications/jetbrains.yml tags: - applications - jetbrains - - - import_tasks: ../../tasks/applications/vmware.yml - tags: - - applications - - vmware - + - import_tasks: ../../tasks/applications/calibre.yml tags: - applications - calibre - - - import_tasks: ../../tasks/applications/keybase.yml + + - import_tasks: tasks/applications/bitwarden.yml tags: - applications - - keybase - - - import_tasks: ../../tasks/gpg.yml - tags: gpg - + - bitwarden + - import_tasks: ../../tasks/ssh.yml tags: ssh - - import_tasks: ../../tasks/pentest.yml - tags: pentest - - - import_tasks: ../../tasks/wine.yml - tags: wine - handlers: - import_tasks: ../../handlers/handlers.yml diff --git a/requirements.yml b/requirements.yml index b466f2c..df681c0 100644 --- a/requirements.yml +++ b/requirements.yml @@ -1,8 +1,4 @@ ---- - roles: -- src: gantsign.visual-studio-code -- src: artis3n.bitwarden_app - + - src: gantsign.visual-studio-code collections: -- name: artis3n.github + - name: artis3n.github diff --git a/tasks/applications/bitwarden.yml b/tasks/applications/bitwarden.yml new file mode 100644 index 0000000..a9aa594 --- /dev/null +++ b/tasks/applications/bitwarden.yml @@ -0,0 +1,7 @@ +--- + +- name: Applications | Bitwarden | Install + become: yes + snap: + name: '{{ bitwarden_snap_package }}' + state: present diff --git a/tasks/applications/calibre.yml b/tasks/applications/calibre.yml index 734762e..b6163a8 100644 --- a/tasks/applications/calibre.yml +++ b/tasks/applications/calibre.yml @@ -1,14 +1,12 @@ ---- - - name: Applications | Calibre | Download get_url: - url: "{{ calibre_url }}" - dest: "{{ install_dir }}/calibre_installer.sh" - mode: 0764 + url: '{{ calibre_url }}' + dest: '{{ install_dir }}/calibre_installer.sh' + mode: 500 register: calibre_installer - name: Applications | Calibre | Install - become: yes - command: sh {{ calibre_installer.dest }} + become: 'yes' + command: 'sh {{ calibre_installer.dest }}' args: creates: /usr/bin/calibre diff --git a/tasks/applications/jetbrains.yml b/tasks/applications/jetbrains.yml index a813a34..c19ea23 100644 --- a/tasks/applications/jetbrains.yml +++ b/tasks/applications/jetbrains.yml @@ -28,4 +28,4 @@ command: ./{{ toolbox_installer.stdout }}/jetbrains-toolbox args: chdir: "{{ install_dir }}" - creates: "{{ ansible_env.HOME }}/.local/share/applications/jetbrains-toolbox.desktop" + creates: "{{ lookup('env', 'HOME') }}/.local/share/applications/jetbrains-toolbox.desktop" diff --git a/tasks/applications/keybase.yml b/tasks/applications/keybase.yml deleted file mode 100644 index 416865a..0000000 --- a/tasks/applications/keybase.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- - -- name: Applications | Keybase | Check for existence - stat: - path: /usr/bin/keybase - register: keybase_binary - -- name: Applications | Keybase | All actions - block: - - name: Applications | Keybase | Download - get_url: - url: "{{ keybase_url }}" - dest: "{{ install_dir }}/{{ keybase_deb }}" - mode: 0644 - - - name: Applications | Keybase | Install - become: yes - apt: - deb: "{{ install_dir }}/{{ keybase_deb }}" - notify: Keybase Install - - when: not keybase_binary.stat.exists diff --git a/tasks/applications/vmware.yml b/tasks/applications/vmware.yml deleted file mode 100644 index 98f2278..0000000 --- a/tasks/applications/vmware.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- - -- name: Applications | VMWare | Check for program - stat: - path: /usr/bin/vmware - register: vmware_app - -- name: Applications | VMWare | Download - get_url: - url: "{{ vmware_url }}" - dest: "{{ install_dir }}/vmware.bundle" - mode: 0764 - async: 1800 - poll: 30 - when: not vmware_app.stat.exists - register: vmware_installer - -- name: Applications | VMWare | Install - become: yes - command: bash {{ vmware_installer.dest }} - args: - creates: /usr/bin/vmware - when: not vmware_app.stat.exists diff --git a/tasks/apt.yml b/tasks/apt.yml index e8b35fe..8819c1b 100644 --- a/tasks/apt.yml +++ b/tasks/apt.yml @@ -1,32 +1,21 @@ ---- - - name: Apt | Install dependencies apt: - name: "{{ apt_dependencies }}" - update_cache: yes + name: '{{ apt_dependencies }}' + update_cache: 'yes' state: present - + notify: Clean up apt - name: Apt | Add Repositories apt_repository: - repo: ppa:{{ item }} + repo: 'ppa:{{ item }}' state: present - with_items: "{{ apt_repos }}" - + with_items: '{{ apt_repos }}' - name: Apt | Upgrade packages - This will take a long time apt: upgrade: full - update_cache: yes - async: 3600 - poll: 60 - + update_cache: 'yes' + notify: Clean up apt - name: Apt | Install packages - This will take a long time apt: - name: "{{ apt_packages }}" + name: '{{ apt_packages }}' state: present - async: 3600 - poll: 60 - -- name: Apt | Clean up - apt: - autoremove: yes - autoclean: yes + notify: Clean up apt diff --git a/tasks/cloudgoat.yml b/tasks/cloudgoat.yml deleted file mode 100644 index 9163c45..0000000 --- a/tasks/cloudgoat.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- - -- name: Cloudgoat | Ensure repo - file: - path: "{{ install_dir }}/cloudgoat" - state: directory - register: cloudgoat_repo - -- name: Cloudgoat | Download - command: git clone https://github.com/RhinoSecurityLabs/cloudgoat.git {{ cloudgoat_repo.path }} - args: - warn: False - creates: "{{ cloudgoat_repo.path }}/cloudgoat.py" - -- name: Cloudgoat | Install dependencies - command: "{{ lookup('env', 'HOME') }}/.local/bin/pipenv install --three -r ./core/python/requirements.txt" - args: - chdir: "{{ install_dir }}/cloudgoat" - creates: "{{ install_dir }}/cloudgoat/Pipfile.lock" - -- name: Cloudgoat | Make executable - file: - path: "{{ install_dir }}/cloudgoat/cloudgoat.py" - mode: u+x - -- name: Cloudgoat | Get python path - command: "{{ lookup('env', 'HOME') }}/.local/bin/pipenv --py" - args: - chdir: "{{ install_dir }}/cloudgoat" - register: cloudgoat_python_exec - changed_when: false - -- name: Cloudgoat | Get venv path - command: "{{ lookup('env', 'HOME') }}/.local/bin/pipenv --venv" - args: - chdir: "{{ install_dir }}/cloudgoat" - register: cloudgoat_venv - changed_when: false - -- name: Cloudgoat | Add to profile - lineinfile: - path: "{{ lookup('env', 'HOME') }}/.zshrc" - regexp: alias cloudgoat - line: alias cloudgoat="{{ cloudgoat_venv.stdout }}/bin/python {{ install_dir }}/cloudgoat/cloudgoat.py" - state: present diff --git a/tasks/docker.yml b/tasks/docker.yml index 2c0a32a..84f8109 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -1,33 +1,31 @@ ---- - - name: Docker | Install apt dependencies - become: yes + become: 'yes' apt: - name: "{{ docker_apt_dependencies }}" + name: '{{ docker_apt_dependencies }}' state: present - name: Docker | Add apt-key - become: yes + become: 'yes' apt_key: - url: https://download.docker.com/linux/ubuntu/gpg - id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 + url: '{{ docker_gpgkey_url }}' + id: '{{ docker_gpgkey_fingerprint }}' state: present - name: Docker | Add repository - become: yes + become: 'yes' apt_repository: - repo: "{{ docker_apt_repo }}" + repo: '{{ docker_apt_repo }}' state: present - name: Docker | Install - become: yes + become: 'yes' apt: - name: "{{ docker_apt }}" + name: '{{ docker_apt }}' state: present notify: Restart Docker - name: Docker | Run at boot - become: yes + become: 'yes' service: name: docker state: started @@ -35,8 +33,8 @@ - name: Docker | Check if in group shell: | - set -o pipefail - id -nG | grep docker + set -o pipefail + id -nG | grep docker args: executable: /bin/bash changed_when: false @@ -44,7 +42,7 @@ failed_when: in_docker_group.rc > 1 - name: Docker | Add user to Docker group - become: yes - command: gpasswd -a {{ ansible_env.USER }} docker + become: 'yes' + command: 'usermod -aG docker ${{ ansible_user }}' when: in_docker_group.rc != 0 notify: Docker user added diff --git a/tasks/git.yml b/tasks/git.yml index ab792ba..bc916a9 100644 --- a/tasks/git.yml +++ b/tasks/git.yml @@ -1,39 +1,45 @@ ---- - - name: Git | Set config git_config: - name: "{{ item.name }}" - value: "{{ item.value }}" + name: '{{ item.name }}' + value: '{{ item.value }}' scope: global - with_items: - - { name: user.email, value: "{{ email }}" } - - { name: user.name, value: "{{ handle }}" } - - { name: push.default, value: simple } - - { name: alias.ci, value: commit } - - { name: alias.s, value: status } - - { name: alias.br, value: branch } - - { name: alias.co, value: checkout } - - { name: alias.get, value: "pull --prune" } - - { name: alias.list, value: "config --get-regexp alias" } - - { name: alias.save, value: "stash save" } - + loop: + - name: user.email + value: '{{ email }}' + - name: user.name + value: '{{ handle }}' + - name: push.default + value: simple + - name: alias.ci + value: commit + - name: alias.s + value: status + - name: alias.br + value: branch + - name: alias.co + value: checkout + - name: alias.get + value: pull --prune + - name: alias.list + value: config --get-regexp alias + - name: alias.save + value: stash save - name: Git | Hub | Get latest version set_fact: - hub_version: "{{ lookup('artis3n.github.latest_release', 'github/hub') }}" - + hub_version: '{{ lookup(''artis3n.github.latest_release'', ''github/hub'') }}' - name: Git | Hub | Download get_url: - url: https://github.com/github/hub/releases/download/{{ hub_version }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz - dest: "{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz" - + url: >- + https://github.com/github/hub/releases/download/{{ hub_version + }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz + dest: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz' - name: Git | Hub | Unarchive unarchive: - src: "{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz" - dest: "{{ install_dir }}/" - creates: "{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}/bin/hub" - + src: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz' + dest: '{{ install_dir }}/' + creates: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}/bin/hub' - name: Git | Hub | Add to local bin - copy: - src: "{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}/bin/hub" - dest: "{{ lookup('env', 'HOME') }}/.local/bin/hub" - mode: 0751 + file: + src: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}/bin/hub' + dest: '{{ lookup(''env'', ''HOME'') }}/.local/bin/hub' + state: link diff --git a/tasks/gpg.yml b/tasks/gpg.yml deleted file mode 100644 index 00f12c7..0000000 --- a/tasks/gpg.yml +++ /dev/null @@ -1,51 +0,0 @@ ---- - -- name: GPG | Ensure Dependencies - become: yes - apt: - name: "{{ gpg_packages }}" - state: present - -- name: GPG | Format parameter file - template: - src: files/gpg/keygen.j2 - dest: "{{ install_dir }}/keygen" - register: gpgconfig - -- name: GPG | Check for existing key - shell: gpg2 --list-secret-keys | grep '{{ handle }}' - changed_when: false - ignore_errors: true - register: gpgkey - -- name: GPG | Generate key - command: gpg2 --batch --full-generate-key {{ gpgconfig.dest }} - args: - chdir: "{{ install_dir }}" - when: not gpgkey.stdout - register: gpggen - -- name: GPG | Import key - command: gpg2 --import {{ keyname }}.pub - args: - chdir: "{{ install_dir }}" - when: not gpgkey.stdout - -- name: GPG | Retrieve GPG Key ID - shell: | - set -o pipefail - gpg2 --list-secret-keys --keyid-format LONG | grep -B 2 'Artis3n' | head -n 1 | tr -d ' ' | cut -c12- | rev | cut -c15- | rev - args: - executable: /bin/bash - changed_when: false - register: gpg_keyid - -- name: GPG | Add to git config - git_config: - name: "{{ item.name }}" - value: "{{ item.value }}" - scope: global - with_items: - - { name: commit.gpgsign, value: 'true' } - - { name: user.signingkey, value: "{{ gpg_keyid.stdout }}" } - - { name: gpg.program, value: gpg2 } diff --git a/tasks/java.yml b/tasks/java.yml index 9eee358..089a761 100644 --- a/tasks/java.yml +++ b/tasks/java.yml @@ -1,24 +1,25 @@ ---- - -- name: Java | Get Jabba install script +- name: Java | Get SDKMan install script get_url: - url: https://github.com/shyiko/jabba/raw/master/install.sh - dest: "{{ install_dir }}/{{ jabba_install_script }}" - mode: 0764 - register: jabba_script + url: 'https://get.sdkman.io' + dest: '{{ install_dir }}/{{ sdkman_install_script }}' + mode: 755 + register: sdkman_script -- name: Java | Install Jabba - command: bash {{ jabba_script.dest }} +- name: Java | Install SDKMan + command: 'bash {{ sdkman_script.dest }}' args: - creates: "{{ lookup('env', 'HOME') }}/.jabba/bin/jabba" + creates: '{{ lookup(''env'', ''HOME'') }}/.sdkman/bin/sdkman-init.sh' - name: Java | Add to profile lineinfile: - path: "{{ lookup('env', 'HOME') }}/.zshrc" - line: "[ -s '/home/{{ lookup('env', 'USER') }}/.jabba/jabba.sh' ] && source '/home/{{ lookup('env', 'USER') }}/.jabba/jabba.sh'" + path: '{{ lookup(''env'', ''HOME'') }}/.zshrc' + line: "{{ item }}" state: present + loop: + - 'export SDKMAN_DIR="{{ lookup(''env'', ''HOME'') }}/.sdkman"' + - '[[ -s "{{ lookup(''env'', ''HOME'') }}/.sdkman/bin/sdkman-init.sh" ]] && source "{{ lookup(''env'', ''HOME'') }}/.sdkman/bin/sdkman-init.sh"' - name: Java | Install JDK - command: "{{ lookup('env', 'HOME') }}/.jabba/bin/jabba install openjdk@{{ java_version }}" + command: sdk install java {{ sdkman_java_version }} args: - creates: "{{ lookup('env', 'HOME') }}/.jabba/jdk/openjdk@{{ java_version }}" + creates: '{{ lookup(''env'', ''HOME'') }}/.sdkman/candidates/java/{{ sdkman_java_version }}/bin/java' diff --git a/tasks/node.yml b/tasks/node.yml deleted file mode 100644 index 48a2d33..0000000 --- a/tasks/node.yml +++ /dev/null @@ -1,51 +0,0 @@ ---- - -- name: Node | Set nvm version - set_fact: - nvm_version: "{{ lookup('artis3n.github.latest_release', 'nvm-sh/nvm')[1:] }}" - -- name: Node | Download nvm - get_url: - url: https://raw.githubusercontent.com/nvm-sh/nvm/v{{ nvm_version }}/install.sh - dest: "{{ install_dir }}/{{ nvm_install_script }}" - mode: 0764 - -- name: Node | Install nvm - command: bash "{{ install_dir }}/{{ nvm_install_script }}" - args: - creates: "{{ lookup('env', 'HOME') }}/.nvm/nvm.sh" - -- name: Node | Add nvm to profiles - blockinfile: - path: "{{ lookup('env', 'HOME') }}/.zshrc" - block: | - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - - autoload -U add-zsh-hook - load-nvmrc() { - local node_version="$(nvm version)" - local nvmrc_path="$(nvm_find_nvmrc)" - - if [ -n "$nvmrc_path" ]; then - local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") - - if [ "$nvmrc_node_version" = "N/A" ]; then - nvm install - elif [ "$nvmrc_node_version" != "$node_version" ]; then - nvm use - fi - elif [ "$node_version" != "$(nvm version default)" ]; then - echo "Reverting to nvm default version" - nvm use default - fi - } - add-zsh-hook chpwd load-nvmrc - load-nvmrc - state: present - -- name: Node | Install Node - shell: source {{ lookup('env', 'HOME') }}/.nvm/nvm.sh && nvm install {{ node_version }} - args: - creates: "{{ lookup('env', 'HOME') }}/.nvm/versions/node/v{{ node_version }}/bin/node" - executable: /bin/bash diff --git a/tasks/ruby.yml b/tasks/ruby.yml deleted file mode 100644 index e111c19..0000000 --- a/tasks/ruby.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- - -- name: Ruby | Add repository - become: yes - apt_repository: - repo: ppa:{{ rvm_repo }} - state: present - -- name: Ruby | Install RVM - become: yes - apt: - name: "{{ rvm_package }}" - state: present - update_cache: yes - -- name: Ruby | Configure rvmrc - lineinfile: - path: "{{ lookup('env', 'HOME') }}/.rvmrc" - regexp: "{{ item.regexp }}" - line: "{{ item.line }}" - state: present - with_items: "{{ rvm_config_list }}" - -- name: Ruby | Check for existing Ruby version - stat: - path: /usr/share/rvm/rubies/ruby-{{ ruby_version }} - register: ruby_path - -- name: Ruby | Install Ruby version - become: yes - command: /usr/share/rvm/bin/rvm install ruby-{{ ruby_version }} - async: 1800 - poll: 30 - args: - creates: /usr/share/rvm/rubies/ruby-{{ ruby_version }}/bin/ruby diff --git a/tasks/ssh.yml b/tasks/ssh.yml index 2978323..a0b5247 100644 --- a/tasks/ssh.yml +++ b/tasks/ssh.yml @@ -1,20 +1,18 @@ ---- - - name: SSH | Ensure directory file: - path: "{{ lookup('env', 'HOME') }}/.ssh" + path: '{{ lookup(''env'', ''HOME'') }}/.ssh' state: directory - name: SSH | Generate key openssh_keypair: - path: "{{ lookup('env', 'HOME') }}/.ssh/{{ ssh_keypair.filename }}" - comment: "{{ ssh_keypair.comment }}" + path: '{{ lookup(''env'', ''HOME'') }}/.ssh/{{ ssh_keypair.filename }}' + comment: '{{ ssh_keypair.comment }}' state: present - type: "{{ ssh_keypair.type }}" + type: '{{ ssh_keypair.type }}' register: gen_ssh_key - name: SSH | Set default key template: src: files/ssh/config.j2 - dest: "{{ lookup('env', 'HOME') }}/.ssh/config" - backup: yes + dest: '{{ lookup(''env'', ''HOME'') }}/.ssh/config' + backup: 'yes' diff --git a/tasks/terminal.yml b/tasks/terminal.yml index d1332ad..c12fe0e 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -1,50 +1,54 @@ ---- - - name: Terminal | Install Oh My ZSH - shell: sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" + shell: >- + sh -c "$(curl -fsSL + https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" args: - creates: "{{ lookup('env', 'HOME') }}/.zshrc" + creates: '{{ lookup(''env'', ''HOME'') }}/.zshrc' - name: Terminal | Set Spaceship version set_fact: - spaceship_version: "{{ lookup('artis3n.github.latest_release', 'denysdovhan/spaceship-prompt') }}" - + spaceship_version: >- + {{ lookup('artis3n.github.latest_release', 'denysdovhan/spaceship-prompt') + }} + - name: Terminal | ZSH Spaceship theme - become: yes + become: 'yes' git: - repo: https://github.com/denysdovhan/spaceship-prompt.git - version: "{{ spaceship_version }}" - dest: "{{ lookup('env', 'HOME') }}/.oh-my-zsh/custom/themes/spaceship-prompt" + repo: 'https://github.com/denysdovhan/spaceship-prompt.git' + version: '{{ spaceship_version }}' + dest: '{{ lookup(''env'', ''HOME'') }}/.oh-my-zsh/custom/themes/spaceship-prompt' - name: Terminal | Set file permissions - become: yes + become: 'yes' file: - path: "{{ lookup('env', 'HOME') }}/.oh-my-zsh/custom/themes/spaceship-prompt" + path: '{{ lookup(''env'', ''HOME'') }}/.oh-my-zsh/custom/themes/spaceship-prompt' state: directory - owner: "{{ lookup('env', 'USER') }}" - group: "{{ lookup('env', 'USER') }}" - recurse: yes + owner: '{{ lookup(''env'', ''USER'') }}' + group: '{{ lookup(''env'', ''USER'') }}' + recurse: 'yes' - name: Terminal | ZSH Spaceship symbolic link - become: yes + become: 'yes' file: - src: "{{ lookup('env', 'HOME') }}/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme" - dest: "{{ lookup('env', 'HOME') }}/.oh-my-zsh/custom/themes/spaceship.zsh-theme" + src: >- + {{ lookup('env', 'HOME') + }}/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme + dest: '{{ lookup(''env'', ''HOME'') }}/.oh-my-zsh/custom/themes/spaceship.zsh-theme' state: link - owner: "{{ lookup('env', 'USER') }}" - group: "{{ lookup('env', 'USER') }}" + owner: '{{ lookup(''env'', ''USER'') }}' + group: '{{ lookup(''env'', ''USER'') }}' - name: Terminal | Set Spaceship as the terminal theme - become: yes + become: 'yes' lineinfile: - path: "{{ lookup('env', 'HOME') }}/.zshrc" - regexp: "^ZSH_THEME=" + path: '{{ lookup(''env'', ''HOME'') }}/.zshrc' + regexp: ^ZSH_THEME= line: ZSH_THEME="spaceship" state: present - name: Terminal | Add plugins lineinfile: - path: "{{ lookup('env', 'HOME') }}/.zshrc" - regexp: "^plugins=" - line: "plugins=({{ zsh_plugins | join(' ') }})" + path: '{{ lookup(''env'', ''HOME'') }}/.zshrc' + regexp: ^plugins= + line: 'plugins=({{ zsh_plugins | join('' '') }})' state: present diff --git a/tasks/terraform.yml b/tasks/terraform.yml index f1c27c1..1c8fcbd 100644 --- a/tasks/terraform.yml +++ b/tasks/terraform.yml @@ -1,55 +1,60 @@ ---- - - name: Terraform | Get latest release set_fact: - terraform_version: "{{ lookup('artis3n.github.latest_release', 'hashicorp/terraform')[1:] }}" + terraform_version: '{{ lookup(''artis3n.github.latest_release'', ''hashicorp/terraform'')[1:] }}' - name: Terraform | Ensure directory file: - path: "{{ install_dir }}/terraform_{{ terraform_version }}" + path: '{{ install_dir }}/terraform_{{ terraform_version }}' state: directory register: terraform_directory - name: Terraform | Get hashes get_url: - url: https://releases.hashicorp.com/terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_SHA256SUMS - dest: "{{ terraform_directory.path }}/SHA256SUMS" + url: >- + https://releases.hashicorp.com/terraform/{{ terraform_version + }}/terraform_{{ terraform_version }}_SHA256SUMS + dest: '{{ terraform_directory.path }}/SHA256SUMS' register: terraform_shas_file changed_when: false - name: Terraform | Construct regex set_fact: - terraform_sha_hash: "{{ '.*\\s\\sterraform_' + (terraform_version | regex_escape()) + '_linux_amd64\\.zip' }}" + terraform_sha_hash: >- + {{ '.*\s\sterraform_' + (terraform_version | regex_escape()) + + '_linux_amd64\.zip' }} - name: Terraform | Extract sha hash set_fact: - # https://regex101.com/r/RS94Us/1 - terraform_sha_string: "{{ lookup('file', terraform_shas_file.dest) | regex_findall(terraform_sha_hash) | first }}" + terraform_sha_string: >- + {{ lookup('file', terraform_shas_file.dest) | + regex_findall(terraform_sha_hash) | first }} - name: Terraform | Download get_url: - url: https://releases.hashicorp.com/terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_{{ os_short }}.zip - dest: "{{ install_dir }}/terraform_{{ terraform_version }}.zip" - checksum: sha256:{{ terraform_sha_string.split(' ')[0] }} + url: >- + https://releases.hashicorp.com/terraform/{{ terraform_version + }}/terraform_{{ terraform_version }}_{{ os_short }}.zip + dest: '{{ install_dir }}/terraform_{{ terraform_version }}.zip' + checksum: 'sha256:{{ terraform_sha_string.split('' '')[0] }}' register: terraform_download - name: Terraform | Unarchive unarchive: - src: "{{ terraform_download.dest }}" - dest: "{{ terraform_directory.path }}" - remote_src: yes + src: '{{ terraform_download.dest }}' + dest: '{{ terraform_directory.path }}' + remote_src: 'yes' - name: Terraform | Ensure local bin permissions - become: yes + become: 'yes' file: path: /usr/local state: directory - owner: "{{ lookup('env', 'USER') }}" - group: "{{ lookup('env', 'USER') }}" - recurse: yes + owner: '{{ lookup(''env'', ''USER'') }}' + group: '{{ lookup(''env'', ''USER'') }}' + recurse: 'yes' - name: Terraform | Add to local bin - copy: - src: "{{ terraform_directory.path }}/terraform" + file: + src: '{{ terraform_directory.path }}/terraform' dest: /usr/local/bin/terraform - mode: 0755 + state: link diff --git a/tasks/vagrant.yml b/tasks/vagrant.yml deleted file mode 100644 index b23739f..0000000 --- a/tasks/vagrant.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- - -- name: Vagrant | Add to profile - lineinfile: - path: "{{ lookup('env', 'HOME') }}/.zshrc" - regexp: alias vagrant - line: alias vagrant="env -u GEM_HOME -u GEM_PATH vagrant" - state: present diff --git a/tasks/wine.yml b/tasks/wine.yml deleted file mode 100644 index 9f0a0bd..0000000 --- a/tasks/wine.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- - -- name: Wine | Enable i386 architecture - become: yes - lineinfile: - dest: '/var/lib/dpkg/arch' - line: 'i386' - create: True - state: present - register: i386_arch - -- name: Wine | Add public key - become: yes - apt_key: - url: https://dl.winehq.org/wine-builds/winehq.key - state: present - -- name: Wine | Add repo - become: yes - apt_repository: - repo: deb https://dl.winehq.org/wine-builds/ubuntu/ {{ ansible_distribution_release }} main - state: present - register: wine_repo - -- name: Wine | Update cache - become: yes - apt: - update_cache: yes - when: i386_arch.changed or wine_repo.changed # noqa 503 - -- name: Wine | Install packages - become: yes - apt: - name: "{{ wine_packages }}" - state: present - install_recommends: True From 1952f003989c060f5c69034a5e4eb86760ba938a Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 5 Aug 2020 23:56:50 +0000 Subject: [PATCH 21/41] Cleaned up github action workflow --- .github/workflows/main.yml | 23 ++++++------------ main.yml | 24 +++++++++---------- .../default/{playbook.yml => converge.yml} | 24 +++++++++---------- molecule/default/molecule.yml | 2 -- tasks/terminal.yml | 2 +- 5 files changed, 32 insertions(+), 43 deletions(-) rename molecule/default/{playbook.yml => converge.yml} (92%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8a7d815..4099dfb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,30 +15,21 @@ jobs: strategy: matrix: os: [ubuntu-latest] - molecule-os: [ubuntu1804] steps: - - uses: actions/checkout@v1 - - name: Set up Python 3.7 - uses: actions/setup-python@v1 + - uses: actions/checkout@v2 + + - name: Set up Python 3 + uses: actions/setup-python@v2 with: - python-version: 3.7 + python-version: '3.x' + - name: Install dependencies run: | python -m pip install --upgrade pip pip install pipenv pipenv install --dev - - name: Lint with Molecule - run: pipenv run molecule lint - - - name: Test with Molecule + - name: Molecule run: | - echo "ASecret" > .vault_pass - cat files/secrets-example.yml > files/secrets.yml - pipenv run ansible-vault encrypt --vault-id .vault_pass files/secrets.yml - # Molecule can't recognize a collection dependency, so install collection here. - ansible-galaxy collection install artis3n.github pipenv run molecule test - env: - MOLECULE_DISTRO: ${{ matrix.molecule-os }} diff --git a/main.yml b/main.yml index 1aeb63c..25a5612 100644 --- a/main.yml +++ b/main.yml @@ -17,46 +17,46 @@ file: path: '{{ install_dir }}' state: directory - mode: 755 - + mode: 0755 + - import_tasks: tasks/apt.yml become: 'yes' tags: apt - + - import_tasks: tasks/terminal.yml tags: terminal - + - import_tasks: tasks/java.yml tags: - language - java - + - import_tasks: tasks/git.yml tags: git - + - import_tasks: tasks/terraform.yml tags: terraform - + - import_tasks: tasks/docker.yml tags: docker - + - import_tasks: tasks/applications/jetbrains.yml tags: - applications - jetbrains - + - import_tasks: tasks/applications/calibre.yml tags: - applications - calibre - + - import_tasks: tasks/applications/bitwarden.yml tags: - applications - bitwarden - + - import_tasks: tasks/ssh.yml tags: ssh - + handlers: - import_tasks: handlers/handlers.yml diff --git a/molecule/default/playbook.yml b/molecule/default/converge.yml similarity index 92% rename from molecule/default/playbook.yml rename to molecule/default/converge.yml index d0917c6..db928f4 100644 --- a/molecule/default/playbook.yml +++ b/molecule/default/converge.yml @@ -16,44 +16,44 @@ file: path: '{{ install_dir }}' state: directory - mode: 755 - + mode: 0755 + - import_tasks: ../../tasks/apt.yml become: 'yes' tags: apt - + - import_tasks: ../../tasks/terminal.yml tags: terminal - + - import_tasks: ../../tasks/java.yml tags: - language - java - + - import_tasks: ../../tasks/git.yml tags: git - + - import_tasks: ../../tasks/terraform.yml tags: terraform - + - import_tasks: ../../tasks/docker.yml tags: docker - + - import_tasks: ../../tasks/applications/jetbrains.yml tags: - applications - jetbrains - + - import_tasks: ../../tasks/applications/calibre.yml tags: - applications - calibre - - - import_tasks: tasks/applications/bitwarden.yml + + - import_tasks: ../../tasks/applications/bitwarden.yml tags: - applications - bitwarden - + - import_tasks: ../../tasks/ssh.yml tags: ssh diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 002f63e..1a61dd4 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -19,8 +19,6 @@ platforms: privileged: true provisioner: name: ansible - options: - vault-id: ../../.vault_pass inventory: host_vars: instance: diff --git a/tasks/terminal.yml b/tasks/terminal.yml index c12fe0e..8839f1e 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -10,7 +10,7 @@ spaceship_version: >- {{ lookup('artis3n.github.latest_release', 'denysdovhan/spaceship-prompt') }} - + - name: Terminal | ZSH Spaceship theme become: 'yes' git: From 9d6c6a975dc2c852b70d593e5f0946b8c9d06b0a Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 6 Aug 2020 00:04:39 +0000 Subject: [PATCH 22/41] fixing workflow --- .github/workflows/main.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aed8290..547204a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,11 +7,9 @@ on: pull_request: branches: - master - jobs: test: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 @@ -22,9 +20,10 @@ jobs: - name: Install dependencies run: | - python -m pip install --upgrade pip pip install pipenv pipenv install --dev + pipenv run ansible-galaxy install -r requirements.yml + pipenv run ansible-galaxy collection install -r requirements.yml - name: Molecule run: | From ab27e803e721fa212eba0b96513acd078b15a4bb Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 6 Aug 2020 00:07:47 +0000 Subject: [PATCH 23/41] Trying to pin to python 3.6 --- .github/workflows/main.yml | 3 ++- Pipfile | 2 +- Pipfile.lock | 16 ++++++++-------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 547204a..8ac4beb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,10 +16,11 @@ jobs: - name: Set up Python 3 uses: actions/setup-python@v2 with: - python-version: 3.x + python-version: '3.6' - name: Install dependencies run: | + python -m pip install --upgrade pip pip install pipenv pipenv install --dev pipenv run ansible-galaxy install -r requirements.yml diff --git a/Pipfile b/Pipfile index 5eac7dd..bb388f7 100644 --- a/Pipfile +++ b/Pipfile @@ -13,4 +13,4 @@ molecule = {extras = ["docker"],version = "*"} docker = "*" [requires] -python_version = "3.8" +python_version = "3.6" diff --git a/Pipfile.lock b/Pipfile.lock index 94c9edc..e9060c7 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "71e079be782a28b185a2075745bce754a062141ec9d5961c796184acc655b5b9" + "sha256": "c48b6b6339e849f5e3593329646290f743da2691e42c2d9a0a34197d6da6533d" }, "pipfile-spec": 6, "requires": { - "python_version": "3.8" + "python_version": "3.6" }, "sources": [ { @@ -157,7 +157,7 @@ "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.15.0" } }, @@ -405,7 +405,7 @@ "sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83", "sha256:dc15b2969b4ce36305c51eebe62d418ac7791e9a157911d58bfb1f9ccd8e2070" ], - "markers": "python_version < '3.8' and python_version < '3.8'", + "markers": "python_version < '3.8'", "version": "==1.7.0" }, "importlib-resources": { @@ -413,7 +413,7 @@ "sha256:19f745a6eca188b490b1428c8d1d4a0d2368759f32370ea8fb89cad2ab1106c3", "sha256:d028f66b66c0d5732dae86ba4276999855e162a749c92620a38c1d779ed138a7" ], - "markers": "python_version < '3.7' and python_version < '3.7'", + "markers": "python_version < '3.7'", "version": "==3.0.0" }, "jinja2": { @@ -581,7 +581,7 @@ "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.8.1" }, "python-gilt": { @@ -651,7 +651,7 @@ "sha256:ed5b3698a2bb241b7f5cbbe277eaa7fe48b07a58784fba4f75224fd066d253ad", "sha256:f9dcc1ae73f36e8059589b601e8e4776b9976effd76c21ad6a855a74318efd6e" ], - "markers": "platform_python_implementation == 'CPython' and python_version < '3.9'", + "markers": "python_version < '3.9' and platform_python_implementation == 'CPython'", "version": "==0.2.0" }, "selinux": { @@ -682,7 +682,7 @@ "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.15.0" }, "tabulate": { From f2eaa6d709665d21c3700343b4599967e1b5ea84 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Thu, 6 Aug 2020 11:56:20 -0400 Subject: [PATCH 24/41] Revamped playbook for a current installation. Fixed Molecule Using flatpak for many applications. --- Pipfile | 2 +- Pipfile.lock | 30 +++------------------------ files/vars.yml | 23 +++++++++++++-------- inventory | 2 +- main.yml | 15 ++------------ molecule/default/converge.yml | 27 +++++++++--------------- molecule/default/molecule.yml | 3 +-- tasks/applications/bitwarden.yml | 7 ------- tasks/applications/calibre.yml | 12 ----------- tasks/apt.yml | 21 ------------------- tasks/docker.yml | 2 +- tasks/java.yml | 5 +++-- tasks/packages.yml | 35 ++++++++++++++++++++++++++++++++ tasks/terminal.yml | 16 +++++++++++---- 14 files changed, 83 insertions(+), 117 deletions(-) delete mode 100644 tasks/applications/bitwarden.yml delete mode 100644 tasks/applications/calibre.yml delete mode 100644 tasks/apt.yml create mode 100644 tasks/packages.yml diff --git a/Pipfile b/Pipfile index bb388f7..5eac7dd 100644 --- a/Pipfile +++ b/Pipfile @@ -13,4 +13,4 @@ molecule = {extras = ["docker"],version = "*"} docker = "*" [requires] -python_version = "3.6" +python_version = "3.8" diff --git a/Pipfile.lock b/Pipfile.lock index e9060c7..b9b034e 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "c48b6b6339e849f5e3593329646290f743da2691e42c2d9a0a34197d6da6533d" + "sha256": "71e079be782a28b185a2075745bce754a062141ec9d5961c796184acc655b5b9" }, "pipfile-spec": 6, "requires": { - "python_version": "3.6" + "python_version": "3.8" }, "sources": [ { @@ -400,22 +400,6 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.10" }, - "importlib-metadata": { - "hashes": [ - "sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83", - "sha256:dc15b2969b4ce36305c51eebe62d418ac7791e9a157911d58bfb1f9ccd8e2070" - ], - "markers": "python_version < '3.8'", - "version": "==1.7.0" - }, - "importlib-resources": { - "hashes": [ - "sha256:19f745a6eca188b490b1428c8d1d4a0d2368759f32370ea8fb89cad2ab1106c3", - "sha256:d028f66b66c0d5732dae86ba4276999855e162a749c92620a38c1d779ed138a7" - ], - "markers": "python_version < '3.7'", - "version": "==3.0.0" - }, "jinja2": { "hashes": [ "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", @@ -626,7 +610,7 @@ "sha256:0962fd7999e064c4865f96fb1e23079075f4a2a14849bcdc5cdba53a24f9759b", "sha256:099c644a778bf72ffa00524f78dd0b6476bca94a1da344130f4bf3381ce5b954" ], - "markers": "python_version < '3.7'", + "markers": "python_version >= '3.7'", "version": "==0.16.10" }, "ruamel.yaml.clib": { @@ -742,14 +726,6 @@ "sha256:ad3b0d30317dca005d7af99ff27248d459cae2d931a2ff06a134b67bcd405b30" ], "version": "==1.24.2" - }, - "zipp": { - "hashes": [ - "sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b", - "sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96" - ], - "markers": "python_version < '3.8'", - "version": "==3.1.0" } } } diff --git a/files/vars.yml b/files/vars.yml index e171b65..aad66f7 100644 --- a/files/vars.yml +++ b/files/vars.yml @@ -32,7 +32,9 @@ apt_packages: - curl - firefox - flameshot + - flatpak - git + - gnupg2 - golang - jq - libssl-dev @@ -41,6 +43,7 @@ apt_packages: - openvpn - postgresql - postgresql-contrib + - rng-tools5 - ruby-full - software-properties-common - texlive-full @@ -48,7 +51,16 @@ apt_packages: - wget - zsh -calibre_url: 'https://download.calibre-ebook.com/linux-installer.sh' +flatpak_applications: + - com.bitwarden.desktop + - com.dropbox.Client + - com.getpostman.Postman + - com.slack.Slack + - com.spotify.Client + - com.valvesoftware.Steam + - org.gnome.gedit + - org.signal.Signal + - com.calibre_ebook.calibre jetbrains_toolbox: jetbrains-toolbox.tar.gz jetbrains_toolbox_url: 'https://data.services.jetbrains.com/products/download?platform=linux&code=TBA' @@ -61,10 +73,6 @@ ssh_keypair: type: ed25519 comment: dev@artis3nal.com -gpg_packages: - - gnupg2 - - rng-tools5 - keyboard_color: left: a8383b center: aaa939 @@ -80,11 +88,8 @@ docker_gpgkey_url: https://download.docker.com/linux/ubuntu/gpg docker_gpgkey_fingerprint: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 docker_apt_arch: amd64 docker_apt_repo: >- - deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/{{ - ansible_distribution|lower }} {{ ansible_distribution_release }} stable + deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable docker_apt: - docker-ce - docker-ce-cli - containerd.io - -bitwarden_snap_package: bitwarden diff --git a/inventory b/inventory index 6caa952..4f7af77 100644 --- a/inventory +++ b/inventory @@ -1 +1 @@ -local.machine ansible_host=127.0.0.1 +local.machine ansible_host=127.0.0.1 ansible_user=artis3n diff --git a/main.yml b/main.yml index 25a5612..311c941 100644 --- a/main.yml +++ b/main.yml @@ -19,9 +19,8 @@ state: directory mode: 0755 - - import_tasks: tasks/apt.yml - become: 'yes' - tags: apt + - import_tasks: tasks/packages.yml + tags: packages - import_tasks: tasks/terminal.yml tags: terminal @@ -45,16 +44,6 @@ - applications - jetbrains - - import_tasks: tasks/applications/calibre.yml - tags: - - applications - - calibre - - - import_tasks: tasks/applications/bitwarden.yml - tags: - - applications - - bitwarden - - import_tasks: tasks/ssh.yml tags: ssh diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index db928f4..81336d8 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -5,12 +5,6 @@ - ../../files/vars.yml collections: - artis3n.github - roles: - - role: gantsign.visual-studio-code - users: - - username: '{{ ansible_user }}' - visual_studio_code_extensions: - - Shan.code-settings-sync tasks: - name: Setup | Scripts folder file: @@ -18,7 +12,7 @@ state: directory mode: 0755 - - import_tasks: ../../tasks/apt.yml + - import_tasks: ../../tasks/packages.yml become: 'yes' tags: apt @@ -39,21 +33,20 @@ - import_tasks: ../../tasks/docker.yml tags: docker + - name: Role | Install Visual Studio Code + import_role: + name: gantsign.visual-studio-code + vars: + users: + - username: '{{ ansible_user }}' + visual_studio_code_extensions: + - Shan.code-settings-sync + - import_tasks: ../../tasks/applications/jetbrains.yml tags: - applications - jetbrains - - import_tasks: ../../tasks/applications/calibre.yml - tags: - - applications - - calibre - - - import_tasks: ../../tasks/applications/bitwarden.yml - tags: - - applications - - bitwarden - - import_tasks: ../../tasks/ssh.yml tags: ssh diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 1a61dd4..8e94726 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -12,7 +12,6 @@ lint: | platforms: - name: instance image: 'geerlingguy/docker-ubuntu2004-ansible:latest' - command: '${MOLECULE_DOCKER_COMMAND:-""}' pre_build_image: true volumes: - '/sys/fs/cgroup:/sys/fs/cgroup:ro' @@ -22,7 +21,7 @@ provisioner: inventory: host_vars: instance: - ansible_user: ansible + ansible_user: root verifier: name: ansible scenario: diff --git a/tasks/applications/bitwarden.yml b/tasks/applications/bitwarden.yml deleted file mode 100644 index a9aa594..0000000 --- a/tasks/applications/bitwarden.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- - -- name: Applications | Bitwarden | Install - become: yes - snap: - name: '{{ bitwarden_snap_package }}' - state: present diff --git a/tasks/applications/calibre.yml b/tasks/applications/calibre.yml deleted file mode 100644 index b6163a8..0000000 --- a/tasks/applications/calibre.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: Applications | Calibre | Download - get_url: - url: '{{ calibre_url }}' - dest: '{{ install_dir }}/calibre_installer.sh' - mode: 500 - register: calibre_installer - -- name: Applications | Calibre | Install - become: 'yes' - command: 'sh {{ calibre_installer.dest }}' - args: - creates: /usr/bin/calibre diff --git a/tasks/apt.yml b/tasks/apt.yml deleted file mode 100644 index 8819c1b..0000000 --- a/tasks/apt.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: Apt | Install dependencies - apt: - name: '{{ apt_dependencies }}' - update_cache: 'yes' - state: present - notify: Clean up apt -- name: Apt | Add Repositories - apt_repository: - repo: 'ppa:{{ item }}' - state: present - with_items: '{{ apt_repos }}' -- name: Apt | Upgrade packages - This will take a long time - apt: - upgrade: full - update_cache: 'yes' - notify: Clean up apt -- name: Apt | Install packages - This will take a long time - apt: - name: '{{ apt_packages }}' - state: present - notify: Clean up apt diff --git a/tasks/docker.yml b/tasks/docker.yml index 84f8109..3ba56a9 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -43,6 +43,6 @@ - name: Docker | Add user to Docker group become: 'yes' - command: 'usermod -aG docker ${{ ansible_user }}' + command: 'usermod -aG docker {{ ansible_user }}' when: in_docker_group.rc != 0 notify: Docker user added diff --git a/tasks/java.yml b/tasks/java.yml index 089a761..e580383 100644 --- a/tasks/java.yml +++ b/tasks/java.yml @@ -2,7 +2,7 @@ get_url: url: 'https://get.sdkman.io' dest: '{{ install_dir }}/{{ sdkman_install_script }}' - mode: 755 + mode: 0755 register: sdkman_script - name: Java | Install SDKMan @@ -20,6 +20,7 @@ - '[[ -s "{{ lookup(''env'', ''HOME'') }}/.sdkman/bin/sdkman-init.sh" ]] && source "{{ lookup(''env'', ''HOME'') }}/.sdkman/bin/sdkman-init.sh"' - name: Java | Install JDK - command: sdk install java {{ sdkman_java_version }} + shell: "source {{ lookup('env', 'HOME') }}/.zshrc; sdk install java {{ sdkman_java_version | quote }}" args: + executable: /bin/zsh creates: '{{ lookup(''env'', ''HOME'') }}/.sdkman/candidates/java/{{ sdkman_java_version }}/bin/java' diff --git a/tasks/packages.yml b/tasks/packages.yml new file mode 100644 index 0000000..a1763b9 --- /dev/null +++ b/tasks/packages.yml @@ -0,0 +1,35 @@ +- name: Packages | Apt | Install dependencies + become: yes + apt: + name: '{{ apt_dependencies }}' + update_cache: 'yes' + state: present + notify: Clean up apt + +- name: Packages | Apt | Add Repositories + become: yes + apt_repository: + repo: 'ppa:{{ item }}' + state: present + with_items: '{{ apt_repos }}' + +- name: Packages | Apt | Upgrade packages + become: yes + apt: + upgrade: full + update_cache: 'yes' + notify: Clean up apt + +- name: Packages | Apt | Install packages - This will take a long time + become: yes + apt: + name: '{{ apt_packages }}' + state: present + notify: Clean up apt + +- name: Packages | Flatpak | Install applications + flatpak: + name: "{{ item }}" + method: user + state: present + loop: "{{ flatpak_applications }}" diff --git a/tasks/terminal.yml b/tasks/terminal.yml index 8839f1e..bce3fd7 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -17,15 +17,17 @@ repo: 'https://github.com/denysdovhan/spaceship-prompt.git' version: '{{ spaceship_version }}' dest: '{{ lookup(''env'', ''HOME'') }}/.oh-my-zsh/custom/themes/spaceship-prompt' + register: spaceship_repo - name: Terminal | Set file permissions become: 'yes' file: path: '{{ lookup(''env'', ''HOME'') }}/.oh-my-zsh/custom/themes/spaceship-prompt' state: directory - owner: '{{ lookup(''env'', ''USER'') }}' - group: '{{ lookup(''env'', ''USER'') }}' + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' recurse: 'yes' + when: spaceship_repo.changed # noqa 503 - name: Terminal | ZSH Spaceship symbolic link become: 'yes' @@ -35,8 +37,8 @@ }}/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme dest: '{{ lookup(''env'', ''HOME'') }}/.oh-my-zsh/custom/themes/spaceship.zsh-theme' state: link - owner: '{{ lookup(''env'', ''USER'') }}' - group: '{{ lookup(''env'', ''USER'') }}' + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' - name: Terminal | Set Spaceship as the terminal theme become: 'yes' @@ -52,3 +54,9 @@ regexp: ^plugins= line: 'plugins=({{ zsh_plugins | join('' '') }})' state: present + +- name: Terminal | Set default + become: yes + user: + name: "{{ ansible_user }}" + shell: /bin/zsh From 6989d8f3f3ea43720e016908ff5d9b3f4e1c19e5 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Thu, 6 Aug 2020 12:03:48 -0400 Subject: [PATCH 25/41] Moved to python 3.8 in actions workflow --- .github/workflows/main.yml | 2 +- tasks/packages.yml | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8ac4beb..b7a36c7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: - name: Set up Python 3 uses: actions/setup-python@v2 with: - python-version: '3.6' + python-version: '3.8' - name: Install dependencies run: | diff --git a/tasks/packages.yml b/tasks/packages.yml index a1763b9..21fd665 100644 --- a/tasks/packages.yml +++ b/tasks/packages.yml @@ -27,6 +27,20 @@ state: present notify: Clean up apt +- name: Packages | Flatpak | Check for flathub + shell: | + set -o pipefail + flatpak remotes | grep flathub + args: + executable: /bin/bash + changed_when: false + register: flathub_remote + failed_when: flathub_remote.rc > 1 + +- name: Packages | Flatpak | Set up flathub + command: flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + when: flathub_remote.rc != 0 + - name: Packages | Flatpak | Install applications flatpak: name: "{{ item }}" From c38b6a160a7bf33e361fb836468e3aaa677dadbd Mon Sep 17 00:00:00 2001 From: Artis3n Date: Thu, 6 Aug 2020 14:37:34 -0400 Subject: [PATCH 26/41] Updating tasks, adding keyboard color service. Adding tailscale role --- .ansible-lint | 2 -- .gitignore | 3 --- .python-version | 1 - Makefile | 6 +++--- files/systemd/kbd-color.service.j2 | 3 --- files/vars.yml | 4 +++- main.yml | 30 +++++++++++++++++++++++------- molecule/default/converge.yml | 14 ++++++++++++++ molecule/default/molecule.yml | 13 ++----------- requirements.yml | 1 + tasks/applications/jetbrains.yml | 2 +- tasks/git.yml | 6 +++++- tasks/java.yml | 12 ++++++------ tasks/packages.yml | 28 +++++++++++++++++++++++++--- tasks/pentest.yml | 2 +- tasks/popos.yml | 21 +++++++++++++++++++++ tasks/ssh.yml | 6 +++--- tasks/terminal.yml | 30 +++++++++++++++++------------- tasks/terraform.yml | 4 ++-- 19 files changed, 127 insertions(+), 61 deletions(-) delete mode 100644 .ansible-lint delete mode 100644 .python-version create mode 100644 tasks/popos.yml diff --git a/.ansible-lint b/.ansible-lint deleted file mode 100644 index d6aa1c6..0000000 --- a/.ansible-lint +++ /dev/null @@ -1,2 +0,0 @@ -exclude_paths: - - files/secrets.yml diff --git a/.gitignore b/.gitignore index 018cfc4..732e1e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,6 @@ -venv/ .vscode .vault_pass .idea roles/ -.vagrant/ -files/secrets.yml collections/ __pycache__ diff --git a/.python-version b/.python-version deleted file mode 100644 index aaf18d2..0000000 --- a/.python-version +++ /dev/null @@ -1 +0,0 @@ -3.7.5 diff --git a/Makefile b/Makefile index 6c87ead..006f8f9 100644 --- a/Makefile +++ b/Makefile @@ -25,15 +25,15 @@ clean: .PHONY: lint lint: - ~/.local/bin/pipenv run ansible-lint -c .ansible-lint *.yml + ~/.local/bin/pipenv run ansible-lint .PHONY: provision provision: - ~/.local/bin/pipenv run ansible-playbook -i inventory main.yml --ask-become-pass + ANSIBLE_COLOR_DEBUG="magenta" ~/.local/bin/pipenv run ansible-playbook --vault-id .vault_pass -i inventory main.yml --ask-become-pass .PHONY: test test: - pipenv run molecule test + ANSIBLE_COLOR_DEBUG="magenta" pipenv run molecule test .PHONY: reset-run reset-run: clean install run diff --git a/files/systemd/kbd-color.service.j2 b/files/systemd/kbd-color.service.j2 index eb16821..a8959a5 100644 --- a/files/systemd/kbd-color.service.j2 +++ b/files/systemd/kbd-color.service.j2 @@ -9,6 +9,3 @@ ExecStartPost=/bin/sh -c "echo {{ keyboard_color.right }} > /sys/class/leds/syst [Install] WantedBy=multi-user.target - -# FIXME: remove -# /etc/systemd/system/kbd-color.service diff --git a/files/vars.yml b/files/vars.yml index aad66f7..defea95 100644 --- a/files/vars.yml +++ b/files/vars.yml @@ -1,6 +1,6 @@ os_short: linux_amd64 -install_dir: '{{ ansible_env.HOME }}/.install_deps' +install_dir: /home/{{ ansible_user }}/.install_deps email: dev@artis3nal.com handle: Artis3n @@ -24,6 +24,7 @@ zsh_plugins: apt_dependencies: - python3-apt + - python3-pexpect apt_repos: [] apt_packages: - aptitude @@ -61,6 +62,7 @@ flatpak_applications: - org.gnome.gedit - org.signal.Signal - com.calibre_ebook.calibre + - us.zoom.Zoom jetbrains_toolbox: jetbrains-toolbox.tar.gz jetbrains_toolbox_url: 'https://data.services.jetbrains.com/products/download?platform=linux&code=TBA' diff --git a/main.yml b/main.yml index 311c941..3690577 100644 --- a/main.yml +++ b/main.yml @@ -1,17 +1,21 @@ - name: All Tasks hosts: all connection: local - gather_facts: 'yes' + gather_facts: yes vars_files: - files/vars.yml + roles: + - role: artis3n.tailscale + vars: + tailscale_auth_key: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 32313231643962663130656134646639303633316464636262326334323161323232376230653433 + 3465633637663531333136663430646531393064623030630a383338396537383734343539363466 + 62373533616466633535323530376438323562363263363063373834303963393065363334653937 + 3363353464343333350a333965353431396163653437313731313364363439313432666236626430 + 33316636346631636264333734323935646533323736303966333036376362653439 collections: - artis3n.github - roles: - - role: gantsign.visual-studio-code - users: - - username: '{{ ansible_user }}' - visual_studio_code_extensions: - - Shan.code-settings-sync tasks: - name: Setup | Scripts folder file: @@ -39,6 +43,15 @@ - import_tasks: tasks/docker.yml tags: docker + - name: Role | Install Visual Studio Code + import_role: + name: gantsign.visual-studio-code + vars: + users: + - username: '{{ ansible_user }}' + visual_studio_code_extensions: + - Shan.code-settings-sync + - import_tasks: tasks/applications/jetbrains.yml tags: - applications @@ -47,5 +60,8 @@ - import_tasks: tasks/ssh.yml tags: ssh + - import_tasks: tasks/popos.yml + tags: popos + handlers: - import_tasks: handlers/handlers.yml diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 81336d8..8b4c0f8 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -19,6 +19,17 @@ - import_tasks: ../../tasks/terminal.yml tags: terminal + - import_role: + name: artis3n.tailscale + vars: + tailscale_auth_key: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 32313231643962663130656134646639303633316464636262326334323161323232376230653433 + 3465633637663531333136663430646531393064623030630a383338396537383734343539363466 + 62373533616466633535323530376438323562363263363063373834303963393065363334653937 + 3363353464343333350a333965353431396163653437313731313364363439313432666236626430 + 33316636346631636264333734323935646533323736303966333036376362653439 + - import_tasks: ../../tasks/java.yml tags: - language @@ -50,5 +61,8 @@ - import_tasks: ../../tasks/ssh.yml tags: ssh + - import_tasks: ../../tasks/popos.yml + tags: popos + handlers: - import_tasks: ../../handlers/handlers.yml diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 8e94726..5985ae3 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -18,20 +18,11 @@ platforms: privileged: true provisioner: name: ansible + options: + vault-id: ../../.vault_pass inventory: host_vars: instance: ansible_user: root verifier: name: ansible -scenario: - name: default - test_sequence: - - lint - - destroy - - syntax - - create - - converge - - idempotence - - verify - - destroy diff --git a/requirements.yml b/requirements.yml index df681c0..9e09b14 100644 --- a/requirements.yml +++ b/requirements.yml @@ -1,4 +1,5 @@ roles: - src: gantsign.visual-studio-code + - src: artis3n.tailscale collections: - name: artis3n.github diff --git a/tasks/applications/jetbrains.yml b/tasks/applications/jetbrains.yml index c19ea23..56019b7 100644 --- a/tasks/applications/jetbrains.yml +++ b/tasks/applications/jetbrains.yml @@ -28,4 +28,4 @@ command: ./{{ toolbox_installer.stdout }}/jetbrains-toolbox args: chdir: "{{ install_dir }}" - creates: "{{ lookup('env', 'HOME') }}/.local/share/applications/jetbrains-toolbox.desktop" + creates: /home/{{ ansible_user }}/.local/share/applications/jetbrains-toolbox.desktop diff --git a/tasks/git.yml b/tasks/git.yml index bc916a9..3da3d91 100644 --- a/tasks/git.yml +++ b/tasks/git.yml @@ -24,22 +24,26 @@ value: config --get-regexp alias - name: alias.save value: stash save + - name: Git | Hub | Get latest version set_fact: hub_version: '{{ lookup(''artis3n.github.latest_release'', ''github/hub'') }}' + - name: Git | Hub | Download get_url: url: >- https://github.com/github/hub/releases/download/{{ hub_version }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz dest: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz' + - name: Git | Hub | Unarchive unarchive: src: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz' dest: '{{ install_dir }}/' creates: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}/bin/hub' + - name: Git | Hub | Add to local bin file: src: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}/bin/hub' - dest: '{{ lookup(''env'', ''HOME'') }}/.local/bin/hub' + dest: /home/{{ ansible_user }}/.local/bin/hub state: link diff --git a/tasks/java.yml b/tasks/java.yml index e580383..ed69cbf 100644 --- a/tasks/java.yml +++ b/tasks/java.yml @@ -8,19 +8,19 @@ - name: Java | Install SDKMan command: 'bash {{ sdkman_script.dest }}' args: - creates: '{{ lookup(''env'', ''HOME'') }}/.sdkman/bin/sdkman-init.sh' + creates: '/home/{{ ansible_user }}/.sdkman/bin/sdkman-init.sh' - name: Java | Add to profile lineinfile: - path: '{{ lookup(''env'', ''HOME'') }}/.zshrc' + path: '/home/{{ ansible_user }}/.zshrc' line: "{{ item }}" state: present loop: - - 'export SDKMAN_DIR="{{ lookup(''env'', ''HOME'') }}/.sdkman"' - - '[[ -s "{{ lookup(''env'', ''HOME'') }}/.sdkman/bin/sdkman-init.sh" ]] && source "{{ lookup(''env'', ''HOME'') }}/.sdkman/bin/sdkman-init.sh"' + - 'export SDKMAN_DIR="/home/{{ ansible_user }}/.sdkman"' + - '[[ -s "/home/{{ ansible_user }}/.sdkman/bin/sdkman-init.sh" ]] && source "/home/{{ ansible_user }}/.sdkman/bin/sdkman-init.sh"' - name: Java | Install JDK - shell: "source {{ lookup('env', 'HOME') }}/.zshrc; sdk install java {{ sdkman_java_version | quote }}" + shell: "source /home/{{ ansible_user }}/.zshrc; sdk install java {{ sdkman_java_version | quote }}" args: executable: /bin/zsh - creates: '{{ lookup(''env'', ''HOME'') }}/.sdkman/candidates/java/{{ sdkman_java_version }}/bin/java' + creates: /home/{{ ansible_user }}/.sdkman/candidates/java/{{ sdkman_java_version }}/bin/java diff --git a/tasks/packages.yml b/tasks/packages.yml index 21fd665..6694f49 100644 --- a/tasks/packages.yml +++ b/tasks/packages.yml @@ -13,18 +13,41 @@ state: present with_items: '{{ apt_repos }}' -- name: Packages | Apt | Upgrade packages +- name: Packages | Apt | Upgrade packages - async become: yes apt: upgrade: full update_cache: 'yes' + async: 3600 + poll: 0 + register: apt_upgrade + +- name: Packages | Apt | Upgrade packages - poll + async_status: + jid: "{{ apt_upgrade.ansible_job_id }}" + register: apt_upgrade_result + until: apt_upgrade_result.finished + retries: 120 + delay: 30 notify: Clean up apt -- name: Packages | Apt | Install packages - This will take a long time +- name: Packages | Apt | Install packages - async become: yes apt: name: '{{ apt_packages }}' state: present + register: apt_install + async: 3600 + poll: 0 + notify: Clean up apt + +- name: Packages | Apt | Install packages - poll + async_status: + jid: "{{ apt_install.ansible_job_id }}" + register: apt_install_result + until: apt_install_result.finished + retries: 120 + delay: 30 notify: Clean up apt - name: Packages | Flatpak | Check for flathub @@ -44,6 +67,5 @@ - name: Packages | Flatpak | Install applications flatpak: name: "{{ item }}" - method: user state: present loop: "{{ flatpak_applications }}" diff --git a/tasks/pentest.yml b/tasks/pentest.yml index 45a9fef..f4a7e43 100644 --- a/tasks/pentest.yml +++ b/tasks/pentest.yml @@ -24,7 +24,7 @@ - name: Pentest | John | Alias lineinfile: - path: "{{ lookup('env', 'HOME') }}/.zshrc" + path: /home/{{ ansible_user }}/.zshrc regexp: "^alias john=" line: 'alias john="{{ install_dir }}/john/run/john"' state: present diff --git a/tasks/popos.yml b/tasks/popos.yml new file mode 100644 index 0000000..88f7e16 --- /dev/null +++ b/tasks/popos.yml @@ -0,0 +1,21 @@ +--- + +- name: PopOS | Set up keyboard lights service + become: yes + template: + src: ../files/systemd/kbd-color.service.j2 + dest: /etc/systemd/system/kbd-color.service + register: kbd_service + +- name: PopOS | Systemd daemon-reload + become: yes + systemd: + daemon-reload: yes + when: kbd_service.changed # noqa 503 + +- name: PopOS | Run keyboard lights service + become: yes + systemd: + name: kbd-color.service + state: started + enabled: yes diff --git a/tasks/ssh.yml b/tasks/ssh.yml index a0b5247..0250559 100644 --- a/tasks/ssh.yml +++ b/tasks/ssh.yml @@ -1,11 +1,11 @@ - name: SSH | Ensure directory file: - path: '{{ lookup(''env'', ''HOME'') }}/.ssh' + path: /home/{{ ansible_user }}/.ssh state: directory - name: SSH | Generate key openssh_keypair: - path: '{{ lookup(''env'', ''HOME'') }}/.ssh/{{ ssh_keypair.filename }}' + path: /home/{{ ansible_user }}/.ssh/{{ ssh_keypair.filename }} comment: '{{ ssh_keypair.comment }}' state: present type: '{{ ssh_keypair.type }}' @@ -14,5 +14,5 @@ - name: SSH | Set default key template: src: files/ssh/config.j2 - dest: '{{ lookup(''env'', ''HOME'') }}/.ssh/config' + dest: /home/{{ ansible_user }}/.ssh/config backup: 'yes' diff --git a/tasks/terminal.yml b/tasks/terminal.yml index bce3fd7..225f911 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -1,9 +1,10 @@ - name: Terminal | Install Oh My ZSH - shell: >- - sh -c "$(curl -fsSL - https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" + expect: + command: bash -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" + responses: + 'Do you want to change your default shell to zsh\? \[Y\/n]': 'Y' args: - creates: '{{ lookup(''env'', ''HOME'') }}/.zshrc' + creates: /home/{{ ansible_user }}/.zshrc - name: Terminal | Set Spaceship version set_fact: @@ -16,13 +17,13 @@ git: repo: 'https://github.com/denysdovhan/spaceship-prompt.git' version: '{{ spaceship_version }}' - dest: '{{ lookup(''env'', ''HOME'') }}/.oh-my-zsh/custom/themes/spaceship-prompt' + dest: /home/{{ ansible_user }}/.oh-my-zsh/custom/themes/spaceship-prompt register: spaceship_repo - name: Terminal | Set file permissions become: 'yes' file: - path: '{{ lookup(''env'', ''HOME'') }}/.oh-my-zsh/custom/themes/spaceship-prompt' + path: /home/{{ ansible_user }}/.oh-my-zsh/custom/themes/spaceship-prompt state: directory owner: '{{ ansible_user }}' group: '{{ ansible_user }}' @@ -32,10 +33,8 @@ - name: Terminal | ZSH Spaceship symbolic link become: 'yes' file: - src: >- - {{ lookup('env', 'HOME') - }}/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme - dest: '{{ lookup(''env'', ''HOME'') }}/.oh-my-zsh/custom/themes/spaceship.zsh-theme' + src: /home/{{ ansible_user }}/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme + dest: /home/{{ ansible_user }}/.oh-my-zsh/custom/themes/spaceship.zsh-theme state: link owner: '{{ ansible_user }}' group: '{{ ansible_user }}' @@ -43,20 +42,25 @@ - name: Terminal | Set Spaceship as the terminal theme become: 'yes' lineinfile: - path: '{{ lookup(''env'', ''HOME'') }}/.zshrc' + path: /home/{{ ansible_user }}/.zshrc regexp: ^ZSH_THEME= line: ZSH_THEME="spaceship" state: present - name: Terminal | Add plugins lineinfile: - path: '{{ lookup(''env'', ''HOME'') }}/.zshrc' + path: /home/{{ ansible_user }}/.zshrc regexp: ^plugins= line: 'plugins=({{ zsh_plugins | join('' '') }})' state: present -- name: Terminal | Set default +- name: Terminal | Set default shell become: yes user: name: "{{ ansible_user }}" shell: /bin/zsh + +- name: Terminal | Set default editor + alternatives: + name: editor + path: /usr/bin/vim diff --git a/tasks/terraform.yml b/tasks/terraform.yml index 1c8fcbd..6898f81 100644 --- a/tasks/terraform.yml +++ b/tasks/terraform.yml @@ -49,8 +49,8 @@ file: path: /usr/local state: directory - owner: '{{ lookup(''env'', ''USER'') }}' - group: '{{ lookup(''env'', ''USER'') }}' + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' recurse: 'yes' - name: Terraform | Add to local bin From 43b2502c3855d3df78776b9bc47cf0e0386a9001 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Thu, 6 Aug 2020 17:25:52 -0400 Subject: [PATCH 27/41] Fixing home path on real playbook vs. molecule --- files/vars.yml | 5 ++++- molecule/default/molecule.yml | 2 ++ tasks/applications/jetbrains.yml | 2 +- tasks/git.yml | 2 +- tasks/java.yml | 12 ++++++------ tasks/packages.yml | 2 +- tasks/pentest.yml | 2 +- tasks/ssh.yml | 6 +++--- tasks/terminal.yml | 31 ++++++++++++++++++++----------- 9 files changed, 39 insertions(+), 25 deletions(-) diff --git a/files/vars.yml b/files/vars.yml index defea95..3f20538 100644 --- a/files/vars.yml +++ b/files/vars.yml @@ -1,6 +1,8 @@ os_short: linux_amd64 -install_dir: /home/{{ ansible_user }}/.install_deps +install_dir: '{{ home_dir }}/.install_deps' +default_home_dir: '/home/{{ ansible_user }}' +home_dir: "{{ lookup('env', 'ANSIBLE_HOME_DIR') | default(default_home_dir) }}" email: dev@artis3nal.com handle: Artis3n @@ -34,6 +36,7 @@ apt_packages: - firefox - flameshot - flatpak + - fonts-powerline - git - gnupg2 - golang diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 5985ae3..4e90227 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -24,5 +24,7 @@ provisioner: host_vars: instance: ansible_user: root + env: + ANSIBLE_HOME_DIR: /root verifier: name: ansible diff --git a/tasks/applications/jetbrains.yml b/tasks/applications/jetbrains.yml index 56019b7..d7a2479 100644 --- a/tasks/applications/jetbrains.yml +++ b/tasks/applications/jetbrains.yml @@ -28,4 +28,4 @@ command: ./{{ toolbox_installer.stdout }}/jetbrains-toolbox args: chdir: "{{ install_dir }}" - creates: /home/{{ ansible_user }}/.local/share/applications/jetbrains-toolbox.desktop + creates: '{{ home_dir }}/.local/share/applications/jetbrains-toolbox.desktop' diff --git a/tasks/git.yml b/tasks/git.yml index 3da3d91..84f7d28 100644 --- a/tasks/git.yml +++ b/tasks/git.yml @@ -45,5 +45,5 @@ - name: Git | Hub | Add to local bin file: src: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}/bin/hub' - dest: /home/{{ ansible_user }}/.local/bin/hub + dest: '{{ home_dir }}/.local/bin/hub' state: link diff --git a/tasks/java.yml b/tasks/java.yml index ed69cbf..99444da 100644 --- a/tasks/java.yml +++ b/tasks/java.yml @@ -8,19 +8,19 @@ - name: Java | Install SDKMan command: 'bash {{ sdkman_script.dest }}' args: - creates: '/home/{{ ansible_user }}/.sdkman/bin/sdkman-init.sh' + creates: '{{ home_dir }}/.sdkman/bin/sdkman-init.sh' - name: Java | Add to profile lineinfile: - path: '/home/{{ ansible_user }}/.zshrc' + path: '{{ home_dir }}/.zshrc' line: "{{ item }}" state: present loop: - - 'export SDKMAN_DIR="/home/{{ ansible_user }}/.sdkman"' - - '[[ -s "/home/{{ ansible_user }}/.sdkman/bin/sdkman-init.sh" ]] && source "/home/{{ ansible_user }}/.sdkman/bin/sdkman-init.sh"' + - 'export SDKMAN_DIR="{{ home_dir }}/.sdkman"' + - '[[ -s "{{ home_dir }}/.sdkman/bin/sdkman-init.sh" ]] && source "{{ home_dir }}/.sdkman/bin/sdkman-init.sh"' - name: Java | Install JDK - shell: "source /home/{{ ansible_user }}/.zshrc; sdk install java {{ sdkman_java_version | quote }}" + shell: "source {{ home_dir }}/.zshrc; sdk install java {{ sdkman_java_version | quote }}" args: executable: /bin/zsh - creates: /home/{{ ansible_user }}/.sdkman/candidates/java/{{ sdkman_java_version }}/bin/java + creates: '{{ home_dir }}/.sdkman/candidates/java/{{ sdkman_java_version }}/bin/java' diff --git a/tasks/packages.yml b/tasks/packages.yml index 6694f49..b228b1a 100644 --- a/tasks/packages.yml +++ b/tasks/packages.yml @@ -6,7 +6,7 @@ state: present notify: Clean up apt -- name: Packages | Apt | Add Repositories +- name: Packages | Apt | Add repositories become: yes apt_repository: repo: 'ppa:{{ item }}' diff --git a/tasks/pentest.yml b/tasks/pentest.yml index f4a7e43..d86c6bf 100644 --- a/tasks/pentest.yml +++ b/tasks/pentest.yml @@ -24,7 +24,7 @@ - name: Pentest | John | Alias lineinfile: - path: /home/{{ ansible_user }}/.zshrc + path: '{{ home_dir }}/.zshrc' regexp: "^alias john=" line: 'alias john="{{ install_dir }}/john/run/john"' state: present diff --git a/tasks/ssh.yml b/tasks/ssh.yml index 0250559..c6b52ca 100644 --- a/tasks/ssh.yml +++ b/tasks/ssh.yml @@ -1,11 +1,11 @@ - name: SSH | Ensure directory file: - path: /home/{{ ansible_user }}/.ssh + path: '{{ home_dir }}/.ssh' state: directory - name: SSH | Generate key openssh_keypair: - path: /home/{{ ansible_user }}/.ssh/{{ ssh_keypair.filename }} + path: '{{ home_dir }}/.ssh/{{ ssh_keypair.filename }}' comment: '{{ ssh_keypair.comment }}' state: present type: '{{ ssh_keypair.type }}' @@ -14,5 +14,5 @@ - name: SSH | Set default key template: src: files/ssh/config.j2 - dest: /home/{{ ansible_user }}/.ssh/config + dest: '{{ home_dir }}/.ssh/config' backup: 'yes' diff --git a/tasks/terminal.yml b/tasks/terminal.yml index 225f911..7d70cc0 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -1,10 +1,7 @@ - name: Terminal | Install Oh My ZSH - expect: - command: bash -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" - responses: - 'Do you want to change your default shell to zsh\? \[Y\/n]': 'Y' + command: sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" args: - creates: /home/{{ ansible_user }}/.zshrc + creates: '{{ home_dir }}/.zshrc' - name: Terminal | Set Spaceship version set_fact: @@ -17,13 +14,13 @@ git: repo: 'https://github.com/denysdovhan/spaceship-prompt.git' version: '{{ spaceship_version }}' - dest: /home/{{ ansible_user }}/.oh-my-zsh/custom/themes/spaceship-prompt + dest: '{{ home_dir }}/.oh-my-zsh/custom/themes/spaceship-prompt' register: spaceship_repo - name: Terminal | Set file permissions become: 'yes' file: - path: /home/{{ ansible_user }}/.oh-my-zsh/custom/themes/spaceship-prompt + path: '{{ home_dir }}/.oh-my-zsh/custom/themes/spaceship-prompt' state: directory owner: '{{ ansible_user }}' group: '{{ ansible_user }}' @@ -33,8 +30,8 @@ - name: Terminal | ZSH Spaceship symbolic link become: 'yes' file: - src: /home/{{ ansible_user }}/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme - dest: /home/{{ ansible_user }}/.oh-my-zsh/custom/themes/spaceship.zsh-theme + src: '{{ home_dir }}/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme' + dest: '{{ home_dir }}/.oh-my-zsh/custom/themes/spaceship.zsh-theme' state: link owner: '{{ ansible_user }}' group: '{{ ansible_user }}' @@ -42,18 +39,30 @@ - name: Terminal | Set Spaceship as the terminal theme become: 'yes' lineinfile: - path: /home/{{ ansible_user }}/.zshrc + path: '{{ home_dir }}/.zshrc' regexp: ^ZSH_THEME= line: ZSH_THEME="spaceship" state: present - name: Terminal | Add plugins lineinfile: - path: /home/{{ ansible_user }}/.zshrc + path: '{{ home_dir }}/.zshrc' regexp: ^plugins= line: 'plugins=({{ zsh_plugins | join('' '') }})' state: present +- name: Terminal | Add Zsh properties + lineinfile: + path: '{{ home_dir }}/.zshrc' + regexp: ^{{ item.regex }} + line: '{{ item.line }}' + state: present + loop: + - regex: COMPLETION_WAITING_DOTS + line: COMPLETION_WAITING_DOTS='true' + - regex: DISABLE_UNTRACKED_FILES_DIRTY + line: DISABLE_UNTRACKED_FILES_DIRTY='true' + - name: Terminal | Set default shell become: yes user: From 10e52b2bd2aa21d0738aca0a1abc2c6c77f0b314 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Thu, 6 Aug 2020 17:46:19 -0400 Subject: [PATCH 28/41] Fixing workflow dependencies --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b7a36c7..919cdf3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,6 +25,7 @@ jobs: pipenv install --dev pipenv run ansible-galaxy install -r requirements.yml pipenv run ansible-galaxy collection install -r requirements.yml + echo "${{ secrets.VAULT_PASS }}" > .vault_pass - name: Molecule run: | From 55a3f8b69ae1d53c70e762496d8b883d8da8bde2 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Thu, 6 Aug 2020 18:26:22 -0400 Subject: [PATCH 29/41] Everything currently looks on oryx --- Makefile | 2 +- files/vars.yml | 6 +++--- main.yml | 21 +++++++++++---------- molecule/default/converge.yml | 11 ----------- tasks/packages.yml | 29 ++++------------------------- tasks/popos.yml | 1 + tasks/terminal.yml | 1 + 7 files changed, 21 insertions(+), 50 deletions(-) diff --git a/Makefile b/Makefile index 006f8f9..0792db0 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ lint: .PHONY: provision provision: - ANSIBLE_COLOR_DEBUG="magenta" ~/.local/bin/pipenv run ansible-playbook --vault-id .vault_pass -i inventory main.yml --ask-become-pass + ANSIBLE_COLOR_DEBUG="magenta" ~/.local/bin/pipenv run ansible-playbook --vault-id .vault_pass -i inventory main.yml --ask-become-pass --force-handlers .PHONY: test test: diff --git a/files/vars.yml b/files/vars.yml index 3f20538..b80d6a2 100644 --- a/files/vars.yml +++ b/files/vars.yml @@ -1,8 +1,8 @@ os_short: linux_amd64 -install_dir: '{{ home_dir }}/.install_deps' default_home_dir: '/home/{{ ansible_user }}' -home_dir: "{{ lookup('env', 'ANSIBLE_HOME_DIR') | default(default_home_dir) }}" +home_dir: "{{ lookup('env', 'ANSIBLE_HOME_DIR') | default(default_home_dir, true) }}" +install_dir: '{{ home_dir }}/.install_deps' email: dev@artis3nal.com handle: Artis3n @@ -81,7 +81,7 @@ ssh_keypair: keyboard_color: left: a8383b center: aaa939 - right: .inf + right: 2e4372 docker_apt_dependencies: - apt-transport-https diff --git a/main.yml b/main.yml index 3690577..a7c32a7 100644 --- a/main.yml +++ b/main.yml @@ -4,16 +4,6 @@ gather_facts: yes vars_files: - files/vars.yml - roles: - - role: artis3n.tailscale - vars: - tailscale_auth_key: !vault | - $ANSIBLE_VAULT;1.1;AES256 - 32313231643962663130656134646639303633316464636262326334323161323232376230653433 - 3465633637663531333136663430646531393064623030630a383338396537383734343539363466 - 62373533616466633535323530376438323562363263363063373834303963393065363334653937 - 3363353464343333350a333965353431396163653437313731313364363439313432666236626430 - 33316636346631636264333734323935646533323736303966333036376362653439 collections: - artis3n.github tasks: @@ -28,6 +18,17 @@ - import_tasks: tasks/terminal.yml tags: terminal + + # - import_role: + # name: artis3n.tailscale + # vars: + # tailscale_auth_key: !vault | + # $ANSIBLE_VAULT;1.1;AES256 + # 32313231643962663130656134646639303633316464636262326334323161323232376230653433 + # 3465633637663531333136663430646531393064623030630a383338396537383734343539363466 + # 62373533616466633535323530376438323562363263363063373834303963393065363334653937 + # 3363353464343333350a333965353431396163653437313731313364363439313432666236626430 + # 33316636346631636264333734323935646533323736303966333036376362653439 - import_tasks: tasks/java.yml tags: diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 8b4c0f8..5c04634 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -19,17 +19,6 @@ - import_tasks: ../../tasks/terminal.yml tags: terminal - - import_role: - name: artis3n.tailscale - vars: - tailscale_auth_key: !vault | - $ANSIBLE_VAULT;1.1;AES256 - 32313231643962663130656134646639303633316464636262326334323161323232376230653433 - 3465633637663531333136663430646531393064623030630a383338396537383734343539363466 - 62373533616466633535323530376438323562363263363063373834303963393065363334653937 - 3363353464343333350a333965353431396163653437313731313364363439313432666236626430 - 33316636346631636264333734323935646533323736303966333036376362653439 - - import_tasks: ../../tasks/java.yml tags: - language diff --git a/tasks/packages.yml b/tasks/packages.yml index b228b1a..7d5019b 100644 --- a/tasks/packages.yml +++ b/tasks/packages.yml @@ -13,41 +13,19 @@ state: present with_items: '{{ apt_repos }}' -- name: Packages | Apt | Upgrade packages - async +- name: Packages | Apt | Upgrade packages - Will take a long time become: yes apt: upgrade: full update_cache: 'yes' - async: 3600 - poll: 0 - register: apt_upgrade - -- name: Packages | Apt | Upgrade packages - poll - async_status: - jid: "{{ apt_upgrade.ansible_job_id }}" - register: apt_upgrade_result - until: apt_upgrade_result.finished - retries: 120 - delay: 30 notify: Clean up apt -- name: Packages | Apt | Install packages - async +- name: Packages | Apt | Install packages - Will take a long time become: yes apt: name: '{{ apt_packages }}' state: present register: apt_install - async: 3600 - poll: 0 - notify: Clean up apt - -- name: Packages | Apt | Install packages - poll - async_status: - jid: "{{ apt_install.ansible_job_id }}" - register: apt_install_result - until: apt_install_result.finished - retries: 120 - delay: 30 notify: Clean up apt - name: Packages | Flatpak | Check for flathub @@ -61,11 +39,12 @@ failed_when: flathub_remote.rc > 1 - name: Packages | Flatpak | Set up flathub - command: flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + command: flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo when: flathub_remote.rc != 0 - name: Packages | Flatpak | Install applications flatpak: name: "{{ item }}" + method: user state: present loop: "{{ flatpak_applications }}" diff --git a/tasks/popos.yml b/tasks/popos.yml index 88f7e16..5362d09 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -5,6 +5,7 @@ template: src: ../files/systemd/kbd-color.service.j2 dest: /etc/systemd/system/kbd-color.service + mode: '0644' register: kbd_service - name: PopOS | Systemd daemon-reload diff --git a/tasks/terminal.yml b/tasks/terminal.yml index 7d70cc0..e32cd54 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -70,6 +70,7 @@ shell: /bin/zsh - name: Terminal | Set default editor + become: yes alternatives: name: editor path: /usr/bin/vim From 587797b9b2affa925e838f6f55dace85e1cd0bee Mon Sep 17 00:00:00 2001 From: Artis3n Date: Thu, 6 Aug 2020 23:11:47 -0400 Subject: [PATCH 30/41] Fixing molecule issues. Works fine against the real thing --- Makefile | 4 ++-- files/systemd/kbd-color.service.j2 | 4 +++- files/vars.yml | 22 ++++++++++++++++++++-- main.yml | 2 +- molecule/default/molecule.yml | 13 +++++++++++++ tasks/applications/jetbrains.yml | 2 +- tasks/applications/vmware.yml | 21 +++++++++++++++++++++ tasks/git.yml | 9 +++++++++ tasks/pentest.yml | 30 ------------------------------ tasks/popos.yml | 2 +- tasks/terminal.yml | 12 +++++++++++- tasks/terraform.yml | 7 ++++++- 12 files changed, 88 insertions(+), 40 deletions(-) create mode 100644 tasks/applications/vmware.yml delete mode 100644 tasks/pentest.yml diff --git a/Makefile b/Makefile index 0792db0..a1a0db4 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,8 @@ install: if [ ! -f ~/.local/bin/pipenv ]; then pip3 install --user pipenv; fi; if [ ! -d ~/.local/share/virtualenvs ]; then mkdir -p ~/.local/share/virtualenvs/; fi; if [ ! $$(find ~/.local/share/virtualenvs/ -name "dev-setup*") ]; then ~/.local/bin/pipenv install; fi; - if [ ! -d ~/.ansible/roles/gantsign.visual-studio-code ]; then ~/.local/bin/pipenv run ansible-galaxy install gantsign.visual-studio-code; fi; - if [ ! -d ~/.ansible/collections/ansible_collections/artis3n/github ]; then ~/.local/bin/pipenv run ansible-galaxy collection install artis3n.github; fi; + ~/.local/bin/pipenv run ansible-galaxy install -r requirements.yml + ~/.local/bin/pipenv run ansible-galaxy collection install -r requirements.yml .PHONY: dev-install dev-install: install diff --git a/files/systemd/kbd-color.service.j2 b/files/systemd/kbd-color.service.j2 index a8959a5..f65b41d 100644 --- a/files/systemd/kbd-color.service.j2 +++ b/files/systemd/kbd-color.service.j2 @@ -2,10 +2,12 @@ Description=System76 keyboard backlight [Service] -Type=Simple +Type=oneshot ExecStartPre=/bin/sh -c "echo {{ keyboard_color.left }} > /sys/class/leds/system76::kbd_backlight/color_left" ExecStart=/bin/sh -c "echo {{ keyboard_color.center }} > /sys/class/leds/system76::kbd_backlight/color_center" ExecStartPost=/bin/sh -c "echo {{ keyboard_color.right }} > /sys/class/leds/system76::kbd_backlight/color_right" +ExecStop="rm -f /sys/class/leds/system76::kbd_backlight/color*" +RemainAfterExit=true [Install] WantedBy=multi-user.target diff --git a/files/vars.yml b/files/vars.yml index b80d6a2..f9da6e3 100644 --- a/files/vars.yml +++ b/files/vars.yml @@ -24,10 +24,18 @@ zsh_plugins: - zsh-syntax-highlighting - zsh-autosuggestions +zsh_custom_plugins: + - repo: https://github.com/zsh-users/zsh-syntax-highlighting.git + dest: '{{ home_dir }}/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting' + - repo: https://github.com/zsh-users/zsh-autosuggestions + dest: '{{ home_dir }}/.oh-my-zsh/custom/plugins/zsh-autosuggestions' + apt_dependencies: + - gnupg2 - python3-apt - python3-pexpect -apt_repos: [] +apt_repos: + - dysfunctionalprogramming/minisign apt_packages: - aptitude - apt-transport-https @@ -38,19 +46,26 @@ apt_packages: - flatpak - fonts-powerline - git - - gnupg2 + - gnome-tweak-tool - golang - jq - libssl-dev + - magic-wormhole + - minisign - nodejs + - nvme-cli - openssl - openvpn - postgresql - postgresql-contrib + - powertop + - redshift-gtk - rng-tools5 - ruby-full - software-properties-common - texlive-full + - tlp + - tlp-rdw - vim - wget - zsh @@ -66,6 +81,7 @@ flatpak_applications: - org.signal.Signal - com.calibre_ebook.calibre - us.zoom.Zoom + - net.xmind.ZEN jetbrains_toolbox: jetbrains-toolbox.tar.gz jetbrains_toolbox_url: 'https://data.services.jetbrains.com/products/download?platform=linux&code=TBA' @@ -83,6 +99,8 @@ keyboard_color: center: aaa939 right: 2e4372 +vmware_url: https://www.vmware.com/go/getworkstation-linux + docker_apt_dependencies: - apt-transport-https - ca-certificates diff --git a/main.yml b/main.yml index a7c32a7..3a15fe7 100644 --- a/main.yml +++ b/main.yml @@ -18,7 +18,7 @@ - import_tasks: tasks/terminal.yml tags: terminal - + # - import_role: # name: artis3n.tailscale # vars: diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 4e90227..8af1545 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -28,3 +28,16 @@ provisioner: ANSIBLE_HOME_DIR: /root verifier: name: ansible +scenario: + name: default + test_sequence: + - dependency + - lint + - destroy + - syntax + - create + - prepare + - converge + - idempotence + - cleanup + - destroy diff --git a/tasks/applications/jetbrains.yml b/tasks/applications/jetbrains.yml index d7a2479..1891ff1 100644 --- a/tasks/applications/jetbrains.yml +++ b/tasks/applications/jetbrains.yml @@ -10,8 +10,8 @@ - name: Applications | Jetbrains Toolbox | Un-package unarchive: src: "{{ toolbox_app.dest }}" - dest: "{{ install_dir }}/" remote_src: yes + dest: "{{ install_dir }}/" when: toolbox_app.changed # noqa 503 - name: Applications | Jetbrains Toolbox | Locate installer diff --git a/tasks/applications/vmware.yml b/tasks/applications/vmware.yml new file mode 100644 index 0000000..76270d1 --- /dev/null +++ b/tasks/applications/vmware.yml @@ -0,0 +1,21 @@ +--- + +- name: Applications | VMWare | Check for program + stat: + path: /usr/bin/vmware + register: vmware_app + +- name: Applications | VMWare | Download + get_url: + url: "{{ vmware_url }}" + dest: "{{ install_dir }}/vmware.bundle" + mode: 0764 + when: not vmware_app.stat.exists + register: vmware_installer + +- name: Applications | VMWare | Install + become: yes + command: bash {{ vmware_installer.dest }} + args: + creates: /usr/bin/vmware + when: not vmware_app.stat.exists diff --git a/tasks/git.yml b/tasks/git.yml index 84f7d28..b5ec901 100644 --- a/tasks/git.yml +++ b/tasks/git.yml @@ -39,9 +39,18 @@ - name: Git | Hub | Unarchive unarchive: src: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}.tgz' + remote_src: yes dest: '{{ install_dir }}/' creates: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}/bin/hub' +- name: Git | Hub | Ensure local bin + file: + path: '{{ item }}' + state: directory + loop: + - '{{ home_dir }}/.local' + - '{{ home_dir }}/.local/bin' + - name: Git | Hub | Add to local bin file: src: '{{ install_dir }}/hub-linux-amd64-{{ hub_version[1:] }}/bin/hub' diff --git a/tasks/pentest.yml b/tasks/pentest.yml deleted file mode 100644 index d86c6bf..0000000 --- a/tasks/pentest.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- - -- name: Pentest | Install packages - become: yes - apt: - name: "{{ pentest_packages }}" - state: present - async: 900 - poll: 15 - -- name: Pentest | John | Download - git: - repo: https://github.com/magnumripper/JohnTheRipper.git - version: "{{ john_jumbo_branch }}" - dest: "{{ install_dir }}/john" - -- name: Pentest | John | Build - shell: ./configure && make -s clean && make -sj4 - args: - chdir: "{{ install_dir }}/john/src" - creates: "{{ install_dir }}/john/run/john" - async: 300 - poll: 10 - -- name: Pentest | John | Alias - lineinfile: - path: '{{ home_dir }}/.zshrc' - regexp: "^alias john=" - line: 'alias john="{{ install_dir }}/john/run/john"' - state: present diff --git a/tasks/popos.yml b/tasks/popos.yml index 5362d09..d2f3c5c 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -18,5 +18,5 @@ become: yes systemd: name: kbd-color.service - state: started + started: yes enabled: yes diff --git a/tasks/terminal.yml b/tasks/terminal.yml index e32cd54..4e4054a 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -1,6 +1,7 @@ - name: Terminal | Install Oh My ZSH - command: sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" + shell: sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" args: + executable: /bin/bash creates: '{{ home_dir }}/.zshrc' - name: Terminal | Set Spaceship version @@ -44,6 +45,13 @@ line: ZSH_THEME="spaceship" state: present +- name: Terminal | Add custom plugins + git: + repo: '{{ item.repo }}' + dest: '{{ item.dest }}' + version: master + loop: '{{ zsh_custom_plugins }}' + - name: Terminal | Add plugins lineinfile: path: '{{ home_dir }}/.zshrc' @@ -62,6 +70,8 @@ line: COMPLETION_WAITING_DOTS='true' - regex: DISABLE_UNTRACKED_FILES_DIRTY line: DISABLE_UNTRACKED_FILES_DIRTY='true' + - regex: ~\/\.oh-my-zsh\/custom\/plugins\/zsh-autosuggestions\/zsh-autosuggestions\.zsh + line: source ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh - name: Terminal | Set default shell become: yes diff --git a/tasks/terraform.yml b/tasks/terraform.yml index 6898f81..230d61f 100644 --- a/tasks/terraform.yml +++ b/tasks/terraform.yml @@ -23,6 +23,10 @@ {{ '.*\s\sterraform_' + (terraform_version | regex_escape()) + '_linux_amd64\.zip' }} +- name: test + debug: + var: terraform_shas_file + - name: Terraform | Extract sha hash set_fact: terraform_sha_string: >- @@ -41,8 +45,9 @@ - name: Terraform | Unarchive unarchive: src: '{{ terraform_download.dest }}' + remote_src: yes dest: '{{ terraform_directory.path }}' - remote_src: 'yes' + creates: '{{ terraform_directory.path }}/terraform' - name: Terraform | Ensure local bin permissions become: 'yes' From b203ab63e31b0c70ac2c18d17a1d95dc2ac5f841 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Thu, 6 Aug 2020 23:26:46 -0400 Subject: [PATCH 31/41] Made keyboard lights idempotent --- files/systemd/kbd-color.service.j2 | 2 -- handlers/handlers.yml | 6 ++++++ tasks/popos.yml | 11 +++-------- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/files/systemd/kbd-color.service.j2 b/files/systemd/kbd-color.service.j2 index f65b41d..0c4cc47 100644 --- a/files/systemd/kbd-color.service.j2 +++ b/files/systemd/kbd-color.service.j2 @@ -6,8 +6,6 @@ Type=oneshot ExecStartPre=/bin/sh -c "echo {{ keyboard_color.left }} > /sys/class/leds/system76::kbd_backlight/color_left" ExecStart=/bin/sh -c "echo {{ keyboard_color.center }} > /sys/class/leds/system76::kbd_backlight/color_center" ExecStartPost=/bin/sh -c "echo {{ keyboard_color.right }} > /sys/class/leds/system76::kbd_backlight/color_right" -ExecStop="rm -f /sys/class/leds/system76::kbd_backlight/color*" -RemainAfterExit=true [Install] WantedBy=multi-user.target diff --git a/handlers/handlers.yml b/handlers/handlers.yml index ffe2b55..88439d1 100644 --- a/handlers/handlers.yml +++ b/handlers/handlers.yml @@ -6,6 +6,12 @@ autoremove: yes autoclean: yes +- name: Run keyboard lights + become: yes + systemd: + name: kbd-color.service + state: started + - name: Restart Docker become: yes service: diff --git a/tasks/popos.yml b/tasks/popos.yml index d2f3c5c..1f66a1e 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -6,17 +6,12 @@ src: ../files/systemd/kbd-color.service.j2 dest: /etc/systemd/system/kbd-color.service mode: '0644' - register: kbd_service - -- name: PopOS | Systemd daemon-reload - become: yes - systemd: - daemon-reload: yes - when: kbd_service.changed # noqa 503 + notify: Run keyboard lights - name: PopOS | Run keyboard lights service become: yes systemd: name: kbd-color.service - started: yes + daemon-reload: yes enabled: yes + notify: Run keyboard lights From dedf47861ed41e07fcb3c921ef2964c39b9d0405 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 14:30:37 -0400 Subject: [PATCH 32/41] Fixing tasks for Molecule success --- Makefile | 2 +- Pipfile.lock | 8 +++--- files/vars.yml | 2 +- molecule/default/converge.yml | 9 ------- molecule/default/molecule.yml | 1 + tasks/applications/dropbox.yml | 0 tasks/ssh.yml | 2 +- tasks/terraform.yml | 45 ++++++++++------------------------ 8 files changed, 21 insertions(+), 48 deletions(-) create mode 100644 tasks/applications/dropbox.yml diff --git a/Makefile b/Makefile index a1a0db4..43f4df8 100644 --- a/Makefile +++ b/Makefile @@ -36,4 +36,4 @@ test: ANSIBLE_COLOR_DEBUG="magenta" pipenv run molecule test .PHONY: reset-run -reset-run: clean install run +reset-run: clean install provision diff --git a/Pipfile.lock b/Pipfile.lock index b9b034e..056f299 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -157,7 +157,7 @@ "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.15.0" } }, @@ -565,7 +565,7 @@ "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==2.8.1" }, "python-gilt": { @@ -635,7 +635,7 @@ "sha256:ed5b3698a2bb241b7f5cbbe277eaa7fe48b07a58784fba4f75224fd066d253ad", "sha256:f9dcc1ae73f36e8059589b601e8e4776b9976effd76c21ad6a855a74318efd6e" ], - "markers": "python_version < '3.9' and platform_python_implementation == 'CPython'", + "markers": "platform_python_implementation == 'CPython' and python_version < '3.9'", "version": "==0.2.0" }, "selinux": { @@ -666,7 +666,7 @@ "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.15.0" }, "tabulate": { diff --git a/files/vars.yml b/files/vars.yml index f9da6e3..2360a5b 100644 --- a/files/vars.yml +++ b/files/vars.yml @@ -63,6 +63,7 @@ apt_packages: - rng-tools5 - ruby-full - software-properties-common + - systemd - texlive-full - tlp - tlp-rdw @@ -72,7 +73,6 @@ apt_packages: flatpak_applications: - com.bitwarden.desktop - - com.dropbox.Client - com.getpostman.Postman - com.slack.Slack - com.spotify.Client diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 5c04634..8d2bb14 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -33,15 +33,6 @@ - import_tasks: ../../tasks/docker.yml tags: docker - - name: Role | Install Visual Studio Code - import_role: - name: gantsign.visual-studio-code - vars: - users: - - username: '{{ ansible_user }}' - visual_studio_code_extensions: - - Shan.code-settings-sync - - import_tasks: ../../tasks/applications/jetbrains.yml tags: - applications diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 8af1545..266a9bb 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -12,6 +12,7 @@ lint: | platforms: - name: instance image: 'geerlingguy/docker-ubuntu2004-ansible:latest' + command: '/lib/systemd/systemd' pre_build_image: true volumes: - '/sys/fs/cgroup:/sys/fs/cgroup:ro' diff --git a/tasks/applications/dropbox.yml b/tasks/applications/dropbox.yml new file mode 100644 index 0000000..e69de29 diff --git a/tasks/ssh.yml b/tasks/ssh.yml index c6b52ca..0544bc3 100644 --- a/tasks/ssh.yml +++ b/tasks/ssh.yml @@ -13,6 +13,6 @@ - name: SSH | Set default key template: - src: files/ssh/config.j2 + src: ../files/ssh/config.j2 dest: '{{ home_dir }}/.ssh/config' backup: 'yes' diff --git a/tasks/terraform.yml b/tasks/terraform.yml index 230d61f..8055a65 100644 --- a/tasks/terraform.yml +++ b/tasks/terraform.yml @@ -1,6 +1,10 @@ - name: Terraform | Get latest release set_fact: - terraform_version: '{{ lookup(''artis3n.github.latest_release'', ''hashicorp/terraform'')[1:] }}' + terraform_version: "{{ lookup('artis3n.github.latest_release', 'hashicorp/terraform')[1:] }}" + +- name: Terraform | Set archive path + set_fact: + terraform_archive_path: '{{ install_dir }}/terraform_{{ terraform_version }}.zip' - name: Terraform | Ensure directory file: @@ -8,43 +12,20 @@ state: directory register: terraform_directory -- name: Terraform | Get hashes - get_url: - url: >- - https://releases.hashicorp.com/terraform/{{ terraform_version - }}/terraform_{{ terraform_version }}_SHA256SUMS - dest: '{{ terraform_directory.path }}/SHA256SUMS' - register: terraform_shas_file - changed_when: false - -- name: Terraform | Construct regex - set_fact: - terraform_sha_hash: >- - {{ '.*\s\sterraform_' + (terraform_version | regex_escape()) + - '_linux_amd64\.zip' }} - -- name: test - debug: - var: terraform_shas_file - -- name: Terraform | Extract sha hash - set_fact: - terraform_sha_string: >- - {{ lookup('file', terraform_shas_file.dest) | - regex_findall(terraform_sha_hash) | first }} +- name: Terraform | Check for download + stat: + path: '{{ terraform_archive_path }}' + register: terraform_archive - name: Terraform | Download get_url: - url: >- - https://releases.hashicorp.com/terraform/{{ terraform_version - }}/terraform_{{ terraform_version }}_{{ os_short }}.zip - dest: '{{ install_dir }}/terraform_{{ terraform_version }}.zip' - checksum: 'sha256:{{ terraform_sha_string.split('' '')[0] }}' - register: terraform_download + url: https://releases.hashicorp.com/terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_{{ os_short }}.zip + dest: '{{ terraform_archive_path }}' + when: not terraform_archive.stat.exists - name: Terraform | Unarchive unarchive: - src: '{{ terraform_download.dest }}' + src: '{{ terraform_archive_path }}' remote_src: yes dest: '{{ terraform_directory.path }}' creates: '{{ terraform_directory.path }}/terraform' From e503575d5ddf65cd6004f560bfaf578c6aa887c8 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 14:39:46 -0400 Subject: [PATCH 33/41] Cleaning up files --- inventory | 6 +++++- tasks/docker.yml | 10 +++++----- tasks/ssh.yml | 2 +- tasks/terminal.yml | 12 +++++------- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/inventory b/inventory index 4f7af77..28a1209 100644 --- a/inventory +++ b/inventory @@ -1 +1,5 @@ -local.machine ansible_host=127.0.0.1 ansible_user=artis3n +oryx.local ansible_host=127.0.0.1 ansible_user=artis3n +# lemur.local ansible_host=127.0.0.1 ansible_user=artis3n + +[vmware] +oryx.local diff --git a/tasks/docker.yml b/tasks/docker.yml index 3ba56a9..c454f90 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -1,11 +1,11 @@ - name: Docker | Install apt dependencies - become: 'yes' + become: yes apt: name: '{{ docker_apt_dependencies }}' state: present - name: Docker | Add apt-key - become: 'yes' + become: yes apt_key: url: '{{ docker_gpgkey_url }}' id: '{{ docker_gpgkey_fingerprint }}' @@ -18,14 +18,14 @@ state: present - name: Docker | Install - become: 'yes' + become: yes apt: name: '{{ docker_apt }}' state: present notify: Restart Docker - name: Docker | Run at boot - become: 'yes' + become: yes service: name: docker state: started @@ -42,7 +42,7 @@ failed_when: in_docker_group.rc > 1 - name: Docker | Add user to Docker group - become: 'yes' + become: yes command: 'usermod -aG docker {{ ansible_user }}' when: in_docker_group.rc != 0 notify: Docker user added diff --git a/tasks/ssh.yml b/tasks/ssh.yml index 0544bc3..525af0d 100644 --- a/tasks/ssh.yml +++ b/tasks/ssh.yml @@ -15,4 +15,4 @@ template: src: ../files/ssh/config.j2 dest: '{{ home_dir }}/.ssh/config' - backup: 'yes' + backup: yes diff --git a/tasks/terminal.yml b/tasks/terminal.yml index 4e4054a..e64f618 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -6,12 +6,10 @@ - name: Terminal | Set Spaceship version set_fact: - spaceship_version: >- - {{ lookup('artis3n.github.latest_release', 'denysdovhan/spaceship-prompt') - }} + spaceship_version: "{{ lookup('artis3n.github.latest_release', 'denysdovhan/spaceship-prompt') }}" - name: Terminal | ZSH Spaceship theme - become: 'yes' + become: yes git: repo: 'https://github.com/denysdovhan/spaceship-prompt.git' version: '{{ spaceship_version }}' @@ -19,7 +17,7 @@ register: spaceship_repo - name: Terminal | Set file permissions - become: 'yes' + become: yes file: path: '{{ home_dir }}/.oh-my-zsh/custom/themes/spaceship-prompt' state: directory @@ -29,7 +27,7 @@ when: spaceship_repo.changed # noqa 503 - name: Terminal | ZSH Spaceship symbolic link - become: 'yes' + become: yes file: src: '{{ home_dir }}/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme' dest: '{{ home_dir }}/.oh-my-zsh/custom/themes/spaceship.zsh-theme' @@ -38,7 +36,7 @@ group: '{{ ansible_user }}' - name: Terminal | Set Spaceship as the terminal theme - become: 'yes' + become: yes lineinfile: path: '{{ home_dir }}/.zshrc' regexp: ^ZSH_THEME= From baf5870428f46e62d56c39fddcd125fb93c7e95c Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 14:57:23 -0400 Subject: [PATCH 34/41] Don't test the kbd-color service --- tasks/popos.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks/popos.yml b/tasks/popos.yml index 1f66a1e..f723b9d 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -15,3 +15,4 @@ daemon-reload: yes enabled: yes notify: Run keyboard lights + tags: notest From 3f8353c86cbfd2ed40941b2451888a19842294a4 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 15:04:59 -0400 Subject: [PATCH 35/41] Moving the notest tag to the right task --- handlers/handlers.yml | 1 + tasks/popos.yml | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/handlers/handlers.yml b/handlers/handlers.yml index 88439d1..23986f6 100644 --- a/handlers/handlers.yml +++ b/handlers/handlers.yml @@ -11,6 +11,7 @@ systemd: name: kbd-color.service state: started + tags: notest - name: Restart Docker become: yes diff --git a/tasks/popos.yml b/tasks/popos.yml index f723b9d..1f66a1e 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -15,4 +15,3 @@ daemon-reload: yes enabled: yes notify: Run keyboard lights - tags: notest From bcfd3f391d5f98b279b3172dba711e17fee1d6ac Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 15:33:32 -0400 Subject: [PATCH 36/41] Ok notest where it needs to be for the github workflow --- handlers/handlers.yml | 1 - tasks/popos.yml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/handlers/handlers.yml b/handlers/handlers.yml index 23986f6..88439d1 100644 --- a/handlers/handlers.yml +++ b/handlers/handlers.yml @@ -11,7 +11,6 @@ systemd: name: kbd-color.service state: started - tags: notest - name: Restart Docker become: yes diff --git a/tasks/popos.yml b/tasks/popos.yml index 1f66a1e..f723b9d 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -15,3 +15,4 @@ daemon-reload: yes enabled: yes notify: Run keyboard lights + tags: notest From 8f75cee89c4bc76f23de7075a0376534e1abc9f7 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 15:58:02 -0400 Subject: [PATCH 37/41] Try this notest tag? --- tasks/popos.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tasks/popos.yml b/tasks/popos.yml index f723b9d..5775a75 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -15,4 +15,5 @@ daemon-reload: yes enabled: yes notify: Run keyboard lights - tags: notest + tags: + - molecule-notest From 84298a19539cad5800fce606810dd8b3a6f95da4 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 16:46:16 -0400 Subject: [PATCH 38/41] Realized I was missing a task that triggers the handler --- molecule/default/molecule.yml | 1 - tasks/popos.yml | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 266a9bb..f2d5221 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -37,7 +37,6 @@ scenario: - destroy - syntax - create - - prepare - converge - idempotence - cleanup diff --git a/tasks/popos.yml b/tasks/popos.yml index 5775a75..6843a76 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -7,6 +7,8 @@ dest: /etc/systemd/system/kbd-color.service mode: '0644' notify: Run keyboard lights + tags: + - notest - name: PopOS | Run keyboard lights service become: yes @@ -16,4 +18,4 @@ enabled: yes notify: Run keyboard lights tags: - - molecule-notest + - notest From 8fb1f0da8863df8ef04ffb53950ecfedb71fb9a1 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 17:17:05 -0400 Subject: [PATCH 39/41] Trying a github workflow-specific notest --- .github/workflows/main.yml | 2 +- molecule/default/molecule.yml | 1 - tasks/popos.yml | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 919cdf3..8c7476a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,4 +29,4 @@ jobs: - name: Molecule run: | - pipenv run molecule test + pipenv run molecule test --skip-tags github-notest diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index f2d5221..5911c84 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -39,5 +39,4 @@ scenario: - create - converge - idempotence - - cleanup - destroy diff --git a/tasks/popos.yml b/tasks/popos.yml index 6843a76..ffc9742 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -8,7 +8,7 @@ mode: '0644' notify: Run keyboard lights tags: - - notest + - github-notest - name: PopOS | Run keyboard lights service become: yes @@ -18,4 +18,4 @@ enabled: yes notify: Run keyboard lights tags: - - notest + - github-notest From d1e589b03ba349241190648798ef3bc647434854 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 17:20:52 -0400 Subject: [PATCH 40/41] Ok that doesn't work, just disable in molecule --- tasks/popos.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks/popos.yml b/tasks/popos.yml index ffc9742..ec0be86 100644 --- a/tasks/popos.yml +++ b/tasks/popos.yml @@ -8,7 +8,7 @@ mode: '0644' notify: Run keyboard lights tags: - - github-notest + - molecule-notest - name: PopOS | Run keyboard lights service become: yes @@ -18,4 +18,4 @@ enabled: yes notify: Run keyboard lights tags: - - github-notest + - molecule-notest From 25702effb544c7034ed15dc6f1763c56eb079037 Mon Sep 17 00:00:00 2001 From: Artis3n Date: Sat, 8 Aug 2020 17:23:00 -0400 Subject: [PATCH 41/41] Forgot to remove --skip-tags from the workflow since it doesn't work --- .github/workflows/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8c7476a..d3a49b1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,5 +28,4 @@ jobs: echo "${{ secrets.VAULT_PASS }}" > .vault_pass - name: Molecule - run: | - pipenv run molecule test --skip-tags github-notest + run: pipenv run molecule test