From 71e0a1bd5e446001176282de96bdaba4cc05207e Mon Sep 17 00:00:00 2001 From: emo Date: Tue, 21 Nov 2023 23:54:08 +0100 Subject: [PATCH 01/24] adds ansible and molecule as pipenv dependencies --- Pipfile | 14 + Pipfile.lock | 777 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 791 insertions(+) create mode 100644 Pipfile create mode 100644 Pipfile.lock diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..dc08589 --- /dev/null +++ b/Pipfile @@ -0,0 +1,14 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +ansible = "*" + +[dev-packages] +install = "*" +molecule = {extras = ["ansible"], version = "*"} + +[requires] +python_version = "3.11" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..8ab6d3b --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,777 @@ +{ + "_meta": { + "hash": { + "sha256": "9942308af522f857dcbee007501ce1b084d2f7bc76d886b148358fa635dfd389" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.11" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "ansible": { + "hashes": [ + "sha256:18b397580c1f05ce5de1fe238508dd81218d278667956d2f7709320176c3ed4a", + "sha256:222735c32d2d2749f207e55ef740638bb97c7aaaa8b63bb7c7592d447da47584" + ], + "index": "pypi", + "markers": "python_version >= '3.9'", + "version": "==8.6.1" + }, + "ansible-core": { + "hashes": [ + "sha256:351278fb8685fec1d645e2ddcfdca0c73456ff1db06426b86b6dd53774f7d7ba", + "sha256:fab3a5994482991274cae17500ca852007dbd76f564418f172f07cb00edbb293" + ], + "markers": "python_version >= '3.9'", + "version": "==2.15.6" + }, + "cffi": { + "hashes": [ + "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc", + "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a", + "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417", + "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab", + "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520", + "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36", + "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743", + "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8", + "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed", + "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684", + "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56", + "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324", + "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d", + "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235", + "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e", + "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088", + "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000", + "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7", + "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e", + "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673", + "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c", + "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe", + "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2", + "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", + "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8", + "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a", + "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0", + "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b", + "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896", + "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e", + "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9", + "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2", + "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b", + "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6", + "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404", + "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f", + "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0", + "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4", + "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc", + "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936", + "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba", + "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872", + "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb", + "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614", + "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1", + "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d", + "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969", + "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b", + "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4", + "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627", + "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956", + "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" + ], + "markers": "python_version >= '3.8'", + "version": "==1.16.0" + }, + "cryptography": { + "hashes": [ + "sha256:0c327cac00f082013c7c9fb6c46b7cc9fa3c288ca702c74773968173bda421bf", + "sha256:0d2a6a598847c46e3e321a7aef8af1436f11c27f1254933746304ff014664d84", + "sha256:227ec057cd32a41c6651701abc0328135e472ed450f47c2766f23267b792a88e", + "sha256:22892cc830d8b2c89ea60148227631bb96a7da0c1b722f2aac8824b1b7c0b6b8", + "sha256:392cb88b597247177172e02da6b7a63deeff1937fa6fec3bbf902ebd75d97ec7", + "sha256:3be3ca726e1572517d2bef99a818378bbcf7d7799d5372a46c79c29eb8d166c1", + "sha256:573eb7128cbca75f9157dcde974781209463ce56b5804983e11a1c462f0f4e88", + "sha256:580afc7b7216deeb87a098ef0674d6ee34ab55993140838b14c9b83312b37b86", + "sha256:5a70187954ba7292c7876734183e810b728b4f3965fbe571421cb2434d279179", + "sha256:73801ac9736741f220e20435f84ecec75ed70eda90f781a148f1bad546963d81", + "sha256:7d208c21e47940369accfc9e85f0de7693d9a5d843c2509b3846b2db170dfd20", + "sha256:8254962e6ba1f4d2090c44daf50a547cd5f0bf446dc658a8e5f8156cae0d8548", + "sha256:88417bff20162f635f24f849ab182b092697922088b477a7abd6664ddd82291d", + "sha256:a48e74dad1fb349f3dc1d449ed88e0017d792997a7ad2ec9587ed17405667e6d", + "sha256:b948e09fe5fb18517d99994184854ebd50b57248736fd4c720ad540560174ec5", + "sha256:c707f7afd813478e2019ae32a7c49cd932dd60ab2d2a93e796f68236b7e1fbf1", + "sha256:d38e6031e113b7421db1de0c1b1f7739564a88f1684c6b89234fbf6c11b75147", + "sha256:d3977f0e276f6f5bf245c403156673db103283266601405376f075c849a0b936", + "sha256:da6a0ff8f1016ccc7477e6339e1d50ce5f59b88905585f77193ebd5068f1e797", + "sha256:e270c04f4d9b5671ebcc792b3ba5d4488bf7c42c3c241a3748e2599776f29696", + "sha256:e886098619d3815e0ad5790c973afeee2c0e6e04b4da90b88e6bd06e2a0b1b72", + "sha256:ec3b055ff8f1dce8e6ef28f626e0972981475173d7973d63f271b29c8a2897da", + "sha256:fba1e91467c65fe64a82c689dc6cf58151158993b13eb7a7f3f4b7f395636723" + ], + "markers": "python_version >= '3.7'", + "version": "==41.0.5" + }, + "jinja2": { + "hashes": [ + "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", + "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" + ], + "markers": "python_version >= '3.7'", + "version": "==3.1.2" + }, + "markupsafe": { + "hashes": [ + "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e", + "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e", + "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431", + "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686", + "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c", + "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559", + "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc", + "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb", + "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939", + "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c", + "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0", + "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4", + "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9", + "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575", + "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba", + "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d", + "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd", + "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3", + "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00", + "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155", + "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac", + "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52", + "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f", + "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8", + "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b", + "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007", + "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24", + "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea", + "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198", + "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0", + "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee", + "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be", + "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2", + "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1", + "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707", + "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6", + "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c", + "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58", + "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823", + "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779", + "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636", + "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c", + "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad", + "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee", + "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc", + "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2", + "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48", + "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7", + "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e", + "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b", + "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa", + "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5", + "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e", + "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb", + "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9", + "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57", + "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc", + "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc", + "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2", + "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11" + ], + "markers": "python_version >= '3.7'", + "version": "==2.1.3" + }, + "packaging": { + "hashes": [ + "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", + "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" + ], + "markers": "python_version >= '3.7'", + "version": "==23.2" + }, + "pycparser": { + "hashes": [ + "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", + "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" + ], + "version": "==2.21" + }, + "pyyaml": { + "hashes": [ + "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", + "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", + "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", + "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", + "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", + "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27", + "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", + "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", + "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98", + "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", + "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", + "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", + "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", + "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", + "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867", + "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47", + "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", + "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", + "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3", + "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", + "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", + "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", + "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c", + "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", + "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", + "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", + "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", + "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", + "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", + "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", + "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", + "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", + "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", + "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", + "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c", + "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", + "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", + "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", + "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", + "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", + "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", + "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", + "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", + "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", + "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", + "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa", + "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", + "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585", + "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", + "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0.1" + }, + "resolvelib": { + "hashes": [ + "sha256:04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309", + "sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf" + ], + "version": "==1.0.1" + } + }, + "develop": { + "ansible-compat": { + "hashes": [ + "sha256:2be8c7b510d2e15eed1e9ef443209d67d9aec8f427026b88936d4535ff59863d", + "sha256:f09c3137c9f5f65d38caed44f1a1565c0e7170df720d461e76839beda6018edb" + ], + "markers": "python_version >= '3.9'", + "version": "==4.1.10" + }, + "ansible-core": { + "hashes": [ + "sha256:351278fb8685fec1d645e2ddcfdca0c73456ff1db06426b86b6dd53774f7d7ba", + "sha256:fab3a5994482991274cae17500ca852007dbd76f564418f172f07cb00edbb293" + ], + "markers": "python_version >= '3.9'", + "version": "==2.15.6" + }, + "attrs": { + "hashes": [ + "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04", + "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015" + ], + "markers": "python_version >= '3.7'", + "version": "==23.1.0" + }, + "bracex": { + "hashes": [ + "sha256:a27eaf1df42cf561fed58b7a8f3fdf129d1ea16a81e1fadd1d17989bc6384beb", + "sha256:efdc71eff95eaff5e0f8cfebe7d01adf2c8637c8c92edaf63ef348c241a82418" + ], + "markers": "python_version >= '3.8'", + "version": "==2.4" + }, + "cffi": { + "hashes": [ + "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc", + "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a", + "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417", + "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab", + "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520", + "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36", + "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743", + "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8", + "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed", + "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684", + "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56", + "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324", + "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d", + "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235", + "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e", + "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088", + "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000", + "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7", + "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e", + "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673", + "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c", + "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe", + "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2", + "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", + "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8", + "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a", + "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0", + "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b", + "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896", + "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e", + "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9", + "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2", + "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b", + "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6", + "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404", + "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f", + "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0", + "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4", + "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc", + "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936", + "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba", + "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872", + "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb", + "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614", + "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1", + "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d", + "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969", + "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b", + "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4", + "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627", + "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956", + "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" + ], + "markers": "python_version >= '3.8'", + "version": "==1.16.0" + }, + "click": { + "hashes": [ + "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", + "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" + ], + "markers": "python_version >= '3.7'", + "version": "==8.1.7" + }, + "click-help-colors": { + "hashes": [ + "sha256:b33c5803eeaeb084393b1ab5899dc5476c7196b87a18713045afe76f840b42db", + "sha256:f4cabe52cf550299b8888f4f2ee4c5f359ac27e33bcfe4d61db47785a5cc936c" + ], + "version": "==0.9.4" + }, + "cryptography": { + "hashes": [ + "sha256:0c327cac00f082013c7c9fb6c46b7cc9fa3c288ca702c74773968173bda421bf", + "sha256:0d2a6a598847c46e3e321a7aef8af1436f11c27f1254933746304ff014664d84", + "sha256:227ec057cd32a41c6651701abc0328135e472ed450f47c2766f23267b792a88e", + "sha256:22892cc830d8b2c89ea60148227631bb96a7da0c1b722f2aac8824b1b7c0b6b8", + "sha256:392cb88b597247177172e02da6b7a63deeff1937fa6fec3bbf902ebd75d97ec7", + "sha256:3be3ca726e1572517d2bef99a818378bbcf7d7799d5372a46c79c29eb8d166c1", + "sha256:573eb7128cbca75f9157dcde974781209463ce56b5804983e11a1c462f0f4e88", + "sha256:580afc7b7216deeb87a098ef0674d6ee34ab55993140838b14c9b83312b37b86", + "sha256:5a70187954ba7292c7876734183e810b728b4f3965fbe571421cb2434d279179", + "sha256:73801ac9736741f220e20435f84ecec75ed70eda90f781a148f1bad546963d81", + "sha256:7d208c21e47940369accfc9e85f0de7693d9a5d843c2509b3846b2db170dfd20", + "sha256:8254962e6ba1f4d2090c44daf50a547cd5f0bf446dc658a8e5f8156cae0d8548", + "sha256:88417bff20162f635f24f849ab182b092697922088b477a7abd6664ddd82291d", + "sha256:a48e74dad1fb349f3dc1d449ed88e0017d792997a7ad2ec9587ed17405667e6d", + "sha256:b948e09fe5fb18517d99994184854ebd50b57248736fd4c720ad540560174ec5", + "sha256:c707f7afd813478e2019ae32a7c49cd932dd60ab2d2a93e796f68236b7e1fbf1", + "sha256:d38e6031e113b7421db1de0c1b1f7739564a88f1684c6b89234fbf6c11b75147", + "sha256:d3977f0e276f6f5bf245c403156673db103283266601405376f075c849a0b936", + "sha256:da6a0ff8f1016ccc7477e6339e1d50ce5f59b88905585f77193ebd5068f1e797", + "sha256:e270c04f4d9b5671ebcc792b3ba5d4488bf7c42c3c241a3748e2599776f29696", + "sha256:e886098619d3815e0ad5790c973afeee2c0e6e04b4da90b88e6bd06e2a0b1b72", + "sha256:ec3b055ff8f1dce8e6ef28f626e0972981475173d7973d63f271b29c8a2897da", + "sha256:fba1e91467c65fe64a82c689dc6cf58151158993b13eb7a7f3f4b7f395636723" + ], + "markers": "python_version >= '3.7'", + "version": "==41.0.5" + }, + "enrich": { + "hashes": [ + "sha256:0a2ab0d2931dff8947012602d1234d2a3ee002d9a355b5d70be6bf5466008893", + "sha256:f29b2c8c124b4dbd7c975ab5c3568f6c7a47938ea3b7d2106c8a3bd346545e4f" + ], + "markers": "python_version >= '3.6'", + "version": "==1.2.7" + }, + "install": { + "hashes": [ + "sha256:0d3fadf4aa62c95efe8d34757c8507eb46177f86c016c21c6551eafc6a53d5a9", + "sha256:e67c8a0be5ccf8cb4ffa17d090f3a61b6e820e6a7e21cd1d2c0f7bc59b18e647" + ], + "index": "pypi", + "markers": "python_version >= '2.7'", + "version": "==1.3.5" + }, + "jinja2": { + "hashes": [ + "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", + "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" + ], + "markers": "python_version >= '3.7'", + "version": "==3.1.2" + }, + "jsonschema": { + "hashes": [ + "sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa", + "sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3" + ], + "markers": "python_version >= '3.8'", + "version": "==4.20.0" + }, + "jsonschema-specifications": { + "hashes": [ + "sha256:c9b234904ffe02f079bf91b14d79987faa685fd4b39c377a0996954c0090b9ca", + "sha256:f596778ab612b3fd29f72ea0d990393d0540a5aab18bf0407a46632eab540779" + ], + "markers": "python_version >= '3.8'", + "version": "==2023.11.1" + }, + "markdown-it-py": { + "hashes": [ + "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", + "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb" + ], + "markers": "python_version >= '3.8'", + "version": "==3.0.0" + }, + "markupsafe": { + "hashes": [ + "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e", + "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e", + "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431", + "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686", + "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c", + "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559", + "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc", + "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb", + "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939", + "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c", + "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0", + "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4", + "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9", + "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575", + "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba", + "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d", + "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd", + "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3", + "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00", + "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155", + "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac", + "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52", + "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f", + "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8", + "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b", + "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007", + "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24", + "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea", + "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198", + "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0", + "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee", + "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be", + "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2", + "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1", + "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707", + "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6", + "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c", + "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58", + "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823", + "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779", + "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636", + "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c", + "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad", + "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee", + "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc", + "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2", + "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48", + "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7", + "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e", + "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b", + "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa", + "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5", + "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e", + "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb", + "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9", + "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57", + "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc", + "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc", + "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2", + "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11" + ], + "markers": "python_version >= '3.7'", + "version": "==2.1.3" + }, + "mdurl": { + "hashes": [ + "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", + "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" + ], + "markers": "python_version >= '3.7'", + "version": "==0.1.2" + }, + "molecule": { + "extras": [ + "ansible" + ], + "hashes": [ + "sha256:b919353f799746de60b16a27575627783e39c268fdf2f2aa0372f0162c7b5478", + "sha256:f4e941017587d6aadf4c75ec55338d16c17ad6119a2f8306cfe7b9e05d49db11" + ], + "markers": "python_version >= '3.9'", + "version": "==6.0.2" + }, + "packaging": { + "hashes": [ + "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", + "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" + ], + "markers": "python_version >= '3.7'", + "version": "==23.2" + }, + "pluggy": { + "hashes": [ + "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12", + "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7" + ], + "markers": "python_version >= '3.8'", + "version": "==1.3.0" + }, + "pycparser": { + "hashes": [ + "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", + "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" + ], + "version": "==2.21" + }, + "pygments": { + "hashes": [ + "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", + "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367" + ], + "markers": "python_version >= '3.7'", + "version": "==2.17.2" + }, + "pyyaml": { + "hashes": [ + "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", + "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", + "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", + "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", + "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", + "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27", + "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", + "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", + "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98", + "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", + "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", + "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", + "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", + "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", + "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867", + "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47", + "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", + "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", + "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3", + "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", + "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", + "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", + "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c", + "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", + "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", + "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", + "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", + "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", + "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", + "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", + "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", + "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", + "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", + "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", + "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c", + "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", + "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", + "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", + "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", + "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", + "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", + "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", + "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", + "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", + "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", + "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa", + "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", + "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585", + "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", + "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0.1" + }, + "referencing": { + "hashes": [ + "sha256:381b11e53dd93babb55696c71cf42aef2d36b8a150c49bf0bc301e36d536c882", + "sha256:cc28f2c88fbe7b961a7817a0abc034c09a1e36358f82fedb4ffdf29a25398863" + ], + "markers": "python_version >= '3.8'", + "version": "==0.31.0" + }, + "resolvelib": { + "hashes": [ + "sha256:04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309", + "sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf" + ], + "version": "==1.0.1" + }, + "rich": { + "hashes": [ + "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa", + "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==13.7.0" + }, + "rpds-py": { + "hashes": [ + "sha256:0290712eb5603a725769b5d857f7cf15cf6ca93dda3128065bbafe6fdb709beb", + "sha256:032c242a595629aacace44128f9795110513ad27217b091e834edec2fb09e800", + "sha256:08832078767545c5ee12561ce980714e1e4c6619b5b1e9a10248de60cddfa1fd", + "sha256:08b335fb0c45f0a9e2478a9ece6a1bfb00b6f4c4780f9be3cf36479c5d8dd374", + "sha256:0b70c1f800059c92479dc94dda41288fd6607f741f9b1b8f89a21a86428f6383", + "sha256:0d9f8930092558fd15c9e07198625efb698f7cc00b3dc311c83eeec2540226a8", + "sha256:181ee352691c4434eb1c01802e9daa5edcc1007ff15023a320e2693fed6a661b", + "sha256:19f5aa7f5078d35ed8e344bcba40f35bc95f9176dddb33fc4f2084e04289fa63", + "sha256:1a3b2583c86bbfbf417304eeb13400ce7f8725376dc7d3efbf35dc5d7052ad48", + "sha256:1c9a1dc5e898ce30e2f9c0aa57181cddd4532b22b7780549441d6429d22d3b58", + "sha256:1f36a1e80ef4ed1996445698fd91e0d3e54738bf597c9995118b92da537d7a28", + "sha256:20147996376be452cd82cd6c17701daba69a849dc143270fa10fe067bb34562a", + "sha256:249c8e0055ca597707d71c5ad85fd2a1c8fdb99386a8c6c257e1b47b67a9bec1", + "sha256:2647192facf63be9ed2d7a49ceb07efe01dc6cfb083bd2cc53c418437400cb99", + "sha256:264f3a5906c62b9df3a00ad35f6da1987d321a053895bd85f9d5c708de5c0fbf", + "sha256:2abd669a39be69cdfe145927c7eb53a875b157740bf1e2d49e9619fc6f43362e", + "sha256:2b2415d5a7b7ee96aa3a54d4775c1fec140476a17ee12353806297e900eaeddc", + "sha256:2c173f529666bab8e3f948b74c6d91afa22ea147e6ebae49a48229d9020a47c4", + "sha256:2da81c1492291c1a90987d76a47c7b2d310661bf7c93a9de0511e27b796a8b46", + "sha256:2eca04a365be380ca1f8fa48b334462e19e3382c0bb7386444d8ca43aa01c481", + "sha256:37b08df45f02ff1866043b95096cbe91ac99de05936dd09d6611987a82a3306a", + "sha256:37f79f4f1f06cc96151f4a187528c3fd4a7e1065538a4af9eb68c642365957f7", + "sha256:3dd5fb7737224e1497c886fb3ca681c15d9c00c76171f53b3c3cc8d16ccfa7fb", + "sha256:3e3ac5b602fea378243f993d8b707189f9061e55ebb4e56cb9fdef8166060f28", + "sha256:3f55ae773abd96b1de25fc5c3fb356f491bd19116f8f854ba705beffc1ddc3c5", + "sha256:4011d5c854aa804c833331d38a2b6f6f2fe58a90c9f615afdb7aa7cf9d31f721", + "sha256:4145172ab59b6c27695db6d78d040795f635cba732cead19c78cede74800949a", + "sha256:42b9535aa22ab023704cfc6533e968f7e420affe802d85e956d8a7b4c0b0b5ea", + "sha256:46a07a258bda12270de02b34c4884f200f864bba3dcd6e3a37fef36a168b859d", + "sha256:4f13d3f6585bd07657a603780e99beda96a36c86acaba841f131e81393958336", + "sha256:528e2afaa56d815d2601b857644aeb395afe7e59212ab0659906dc29ae68d9a6", + "sha256:545e94c84575057d3d5c62634611858dac859702b1519b6ffc58eca7fb1adfcf", + "sha256:577d40a72550eac1386b77b43836151cb61ff6700adacda2ad4d883ca5a0b6f2", + "sha256:5967fa631d0ed9f8511dede08bc943a9727c949d05d1efac4ac82b2938024fb7", + "sha256:5b769396eb358d6b55dbf78f3f7ca631ca1b2fe02136faad5af74f0111b4b6b7", + "sha256:63c9e2794329ef070844ff9bfc012004aeddc0468dc26970953709723f76c8a5", + "sha256:6574f619e8734140d96c59bfa8a6a6e7a3336820ccd1bfd95ffa610673b650a2", + "sha256:6bfe72b249264cc1ff2f3629be240d7d2fdc778d9d298087cdec8524c91cd11f", + "sha256:736817dbbbd030a69a1faf5413a319976c9c8ba8cdcfa98c022d3b6b2e01eca6", + "sha256:74a2044b870df7c9360bb3ce7e12f9ddf8e72e49cd3a353a1528cbf166ad2383", + "sha256:74be3b215a5695690a0f1a9f68b1d1c93f8caad52e23242fcb8ba56aaf060281", + "sha256:76a8374b294e4ccb39ccaf11d39a0537ed107534139c00b4393ca3b542cc66e5", + "sha256:7ba239bb37663b2b4cd08e703e79e13321512dccd8e5f0e9451d9e53a6b8509a", + "sha256:7c40851b659d958c5245c1236e34f0d065cc53dca8d978b49a032c8e0adfda6e", + "sha256:7cf241dbb50ea71c2e628ab2a32b5bfcd36e199152fc44e5c1edb0b773f1583e", + "sha256:7cfae77da92a20f56cf89739a557b76e5c6edc094f6ad5c090b9e15fbbfcd1a4", + "sha256:7d152ec7bb431040af2500e01436c9aa0d993f243346f0594a15755016bf0be1", + "sha256:80080972e1d000ad0341c7cc58b6855c80bd887675f92871221451d13a975072", + "sha256:82dbcd6463e580bcfb7561cece35046aaabeac5a9ddb775020160b14e6c58a5d", + "sha256:8308a8d49d1354278d5c068c888a58d7158a419b2e4d87c7839ed3641498790c", + "sha256:839676475ac2ccd1532d36af3d10d290a2ca149b702ed464131e450a767550df", + "sha256:83feb0f682d75a09ddc11aa37ba5c07dd9b824b22915207f6176ea458474ff75", + "sha256:88956c993a20201744282362e3fd30962a9d86dc4f1dcf2bdb31fab27821b61f", + "sha256:8a6ad8429340e0a4de89353447c6441329def3632e7b2293a7d6e873217d3c2b", + "sha256:8ba9fbc5d6e36bfeb5292530321cc56c4ef3f98048647fabd8f57543c34174ec", + "sha256:8c1f6c8df23be165eb0cb78f305483d00c6827a191e3a38394c658d5b9c80bbd", + "sha256:91276caef95556faeb4b8f09fe4439670d3d6206fee78d47ddb6e6de837f0b4d", + "sha256:960e7e460fda2d0af18c75585bbe0c99f90b8f09963844618a621b804f8c3abe", + "sha256:9656a09653b18b80764647d585750df2dff8928e03a706763ab40ec8c4872acc", + "sha256:9cd935c0220d012a27c20135c140f9cdcbc6249d5954345c81bfb714071b985c", + "sha256:a2b3c79586636f1fa69a7bd59c87c15fca80c0d34b5c003d57f2f326e5276575", + "sha256:a4b9d3f5c48bbe8d9e3758e498b3c34863f2c9b1ac57a4e6310183740e59c980", + "sha256:a8c2bf286e5d755a075e5e97ba56b3de08cccdad6b323ab0b21cc98875176b03", + "sha256:a90031658805c63fe488f8e9e7a88b260ea121ba3ee9cdabcece9c9ddb50da39", + "sha256:ad666a904212aa9a6c77da7dce9d5170008cda76b7776e6731928b3f8a0d40fa", + "sha256:af2d1648eb625a460eee07d3e1ea3a4a6e84a1fb3a107f6a8e95ac19f7dcce67", + "sha256:b3d4b390ee70ca9263b331ccfaf9819ee20e90dfd0201a295e23eb64a005dbef", + "sha256:ba4432301ad7eeb1b00848cf46fae0e5fecfd18a8cb5fdcf856c67985f79ecc7", + "sha256:bc3179e0815827cf963e634095ae5715ee73a5af61defbc8d6ca79f1bdae1d1d", + "sha256:c5fd099acaee2325f01281a130a39da08d885e4dedf01b84bf156ec2737d78fe", + "sha256:c797ea56f36c6f248656f0223b11307fdf4a1886f3555eba371f34152b07677f", + "sha256:cd4ea56c9542ad0091dfdef3e8572ae7a746e1e91eb56c9e08b8d0808b40f1d1", + "sha256:cdd6f8738e1f1d9df5b1603bb03cb30e442710e5672262b95d0f9fcb4edb0dab", + "sha256:d0580faeb9def6d0beb7aa666294d5604e569c4e24111ada423cf9936768d95c", + "sha256:d11afdc5992bbd7af60ed5eb519873690d921425299f51d80aa3099ed49f2bcc", + "sha256:d1d388d2f5f5a6065cf83c54dd12112b7389095669ff395e632003ae8999c6b8", + "sha256:d20da6b4c7aa9ee75ad0730beaba15d65157f5beeaca54a038bb968f92bf3ce3", + "sha256:d22e0660de24bd8e9ac82f4230a22a5fe4e397265709289d61d5fb333839ba50", + "sha256:d22f2cb82e0b40e427a74a93c9a4231335bbc548aed79955dde0b64ea7f88146", + "sha256:d4fa1eeb9bea6d9b64ac91ec51ee94cc4fc744955df5be393e1c923c920db2b0", + "sha256:d9793d46d3e6522ae58e9321032827c9c0df1e56cbe5d3de965facb311aed6aa", + "sha256:dab979662da1c9fbb464e310c0b06cb5f1d174d09a462553af78f0bfb3e01920", + "sha256:db8d0f0ad92f74feb61c4e4a71f1d573ef37c22ef4dc19cab93e501bfdad8cbd", + "sha256:df2af1180b8eeececf4f819d22cc0668bfadadfd038b19a90bd2fb2ee419ec6f", + "sha256:dfb5d2ab183c0efe5e7b8917e4eaa2e837aacafad8a69b89aa6bc81550eed857", + "sha256:e04f8c76b8d5c70695b4e8f1d0b391d8ef91df00ef488c6c1ffb910176459bc6", + "sha256:e4a45ba34f904062c63049a760790c6a2fa7a4cc4bd160d8af243b12371aaa05", + "sha256:e9be1f7c5f9673616f875299339984da9447a40e3aea927750c843d6e5e2e029", + "sha256:edc91c50e17f5cd945d821f0f1af830522dba0c10267c3aab186dc3dbaab8def", + "sha256:ee70ee5f4144a45a9e6169000b5b525d82673d5dab9f7587eccc92794814e7ac", + "sha256:f1059ca9a51c936c9a8d46fbc2c9a6b4c15ab3f13a97f1ad32f024b39666ba85", + "sha256:f47eef55297799956464efc00c74ae55c48a7b68236856d56183fe1ddf866205", + "sha256:f4ae6f423cb7d1c6256b7482025ace2825728f53b7ac58bcd574de6ee9d242c2", + "sha256:f4b15a163448ec79241fb2f1bc5a8ae1a4a304f7a48d948d208a2935b26bf8a5", + "sha256:f55601fb58f92e4f4f1d05d80c24cb77505dc42103ddfd63ddfdc51d3da46fa2", + "sha256:fa84bbe22ffa108f91631935c28a623001e335d66e393438258501e618fb0dde", + "sha256:faa12a9f34671a30ea6bb027f04ec4e1fb8fa3fb3ed030893e729d4d0f3a9791", + "sha256:fcfd5f91b882eedf8d9601bd21261d6ce0e61a8c66a7152d1f5df08d3f643ab1", + "sha256:fe30ef31172bdcf946502a945faad110e8fff88c32c4bec9a593df0280e64d8a" + ], + "markers": "python_version >= '3.8'", + "version": "==0.13.1" + }, + "subprocess-tee": { + "hashes": [ + "sha256:b3c124993f8b88d1eb1c2fde0bc2069787eac720ba88771cba17e8c93324825d", + "sha256:eca56973a1c1237093c2055b2731bcaab784683b83f22c76f26e4c5763402e28" + ], + "markers": "python_version >= '3.8'", + "version": "==0.4.1" + }, + "wcmatch": { + "hashes": [ + "sha256:14554e409b142edeefab901dc68ad570b30a72a8ab9a79106c5d5e9a6d241bd5", + "sha256:86c17572d0f75cbf3bcb1a18f3bf2f9e72b39a9c08c9b4a74e991e1882a8efb3" + ], + "markers": "python_version >= '3.8'", + "version": "==8.5" + } + } +} -- 2.39.5 From 4be7bedcadb91781ce9fe34adbc498fe05c8a55d Mon Sep 17 00:00:00 2001 From: emo Date: Wed, 22 Nov 2023 00:01:45 +0100 Subject: [PATCH 02/24] add a stub for ansible collection --- .../test_linux_containers/README.md | 3 + .../test_linux_containers/galaxy.yml | 69 +++++++++++++++++++ .../test_linux_containers/meta/runtime.yml | 52 ++++++++++++++ .../test_linux_containers/plugins/README.md | 31 +++++++++ .../test_linux_containers/roles/README.md | 0 5 files changed, 155 insertions(+) create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/README.md create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/plugins/README.md create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/README.md diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/README.md b/collections/ansible_collections/theliberatededge/test_linux_containers/README.md new file mode 100644 index 0000000..9bf44d2 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/README.md @@ -0,0 +1,3 @@ +# Ansible Collection - theliberatededge.test_linux_containers + +Documentation for the collection. diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml new file mode 100644 index 0000000..b014c32 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml @@ -0,0 +1,69 @@ +### REQUIRED +# The namespace of the collection. This can be a company/brand/organization or product namespace under which all +# content lives. May only contain alphanumeric lowercase characters and underscores. Namespaces cannot start with +# underscores or numbers and cannot contain consecutive underscores +namespace: theliberatededge + +# The name of the collection. Has the same character restrictions as 'namespace' +name: test_linux_containers + +# The version of the collection. Must be compatible with semantic versioning +version: 1.0.0 + +# The path to the Markdown (.md) readme file. This path is relative to the root of the collection +readme: README.md + +# A list of the collection's content authors. Can be just the name or in the format 'Full Name (url) +# @nicks:irc/im.site#channel' +authors: +- your name + + +### OPTIONAL but strongly recommended +# A short summary description of the collection +description: your collection description + +# Either a single license or a list of licenses for content inside of a collection. Ansible Galaxy currently only +# accepts L(SPDX,https://spdx.org/licenses/) licenses. This key is mutually exclusive with 'license_file' +license: +- GPL-2.0-or-later + +# The path to the license file for the collection. This path is relative to the root of the collection. This key is +# mutually exclusive with 'license' +license_file: '' + +# A list of tags you want to associate with the collection for indexing/searching. A tag name has the same character +# requirements as 'namespace' and 'name' +tags: [] + +# Collections that this collection requires to be installed for it to be usable. The key of the dict is the +# collection label 'namespace.name'. The value is a version range +# L(specifiers,https://python-semanticversion.readthedocs.io/en/latest/#requirement-specification). Multiple version +# range specifiers can be set and are separated by ',' +dependencies: {} + +# The URL of the originating SCM repository +repository: http://example.com/repository + +# The URL to any online docs +documentation: http://docs.example.com + +# The URL to the homepage of the collection/project +homepage: http://example.com + +# The URL to the collection issue tracker +issues: http://example.com/issue/tracker + +# A list of file glob-like patterns used to filter any files or directories that should not be included in the build +# artifact. A pattern is matched from the relative path of the file or directory of the collection directory. This +# uses 'fnmatch' to match the files or directories. Some directories and files like 'galaxy.yml', '*.pyc', '*.retry', +# and '.git' are always filtered. Mutually exclusive with 'manifest' +build_ignore: [] + +# A dict controlling use of manifest directives used in building the collection artifact. The key 'directives' is a +# list of MANIFEST.in style +# L(directives,https://packaging.python.org/en/latest/guides/using-manifest-in/#manifest-in-commands). The key +# 'omit_default_directives' is a boolean that controls whether the default directives are used. Mutually exclusive +# with 'build_ignore' +# manifest: null + diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml new file mode 100644 index 0000000..20f709e --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml @@ -0,0 +1,52 @@ +--- +# Collections must specify a minimum required ansible version to upload +# to galaxy +# requires_ansible: '>=2.9.10' + +# Content that Ansible needs to load from another location or that has +# been deprecated/removed +# plugin_routing: +# action: +# redirected_plugin_name: +# redirect: ns.col.new_location +# deprecated_plugin_name: +# deprecation: +# removal_version: "4.0.0" +# warning_text: | +# See the porting guide on how to update your playbook to +# use ns.col.another_plugin instead. +# removed_plugin_name: +# tombstone: +# removal_version: "2.0.0" +# warning_text: | +# See the porting guide on how to update your playbook to +# use ns.col.another_plugin instead. +# become: +# cache: +# callback: +# cliconf: +# connection: +# doc_fragments: +# filter: +# httpapi: +# inventory: +# lookup: +# module_utils: +# modules: +# netconf: +# shell: +# strategy: +# terminal: +# test: +# vars: + +# Python import statements that Ansible needs to load from another location +# import_redirection: +# ansible_collections.ns.col.plugins.module_utils.old_location: +# redirect: ansible_collections.ns.col.plugins.module_utils.new_location + +# Groups of actions/modules that take a common set of options +# action_groups: +# group_name: +# - module1 +# - module2 diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/plugins/README.md b/collections/ansible_collections/theliberatededge/test_linux_containers/plugins/README.md new file mode 100644 index 0000000..6260634 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/plugins/README.md @@ -0,0 +1,31 @@ +# Collections Plugins Directory + +This directory can be used to ship various plugins inside an Ansible collection. Each plugin is placed in a folder that +is named after the type of plugin it is in. It can also include the `module_utils` and `modules` directory that +would contain module utils and modules respectively. + +Here is an example directory of the majority of plugins currently supported by Ansible: + +``` +└── plugins + ├── action + ├── become + ├── cache + ├── callback + ├── cliconf + ├── connection + ├── filter + ├── httpapi + ├── inventory + ├── lookup + ├── module_utils + ├── modules + ├── netconf + ├── shell + ├── strategy + ├── terminal + ├── test + └── vars +``` + +A full list of plugin types can be found at [Working With Plugins](https://docs.ansible.com/ansible-core/2.15/plugins/plugins.html). diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/README.md b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/README.md new file mode 100644 index 0000000..e69de29 -- 2.39.5 From 5efb71d49e946d01f5b1829d3ab5ab1bb108808b Mon Sep 17 00:00:00 2001 From: emo Date: Wed, 22 Nov 2023 00:10:09 +0100 Subject: [PATCH 03/24] added role linux_container --- .../test_linux_containers/roles/README.md | 0 .../roles/linux_container/README.md | 38 ++++++++++++++ .../roles/linux_container/defaults/main.yml | 2 + .../roles/linux_container/handlers/main.yml | 2 + .../roles/linux_container/meta/main.yml | 52 +++++++++++++++++++ .../roles/linux_container/tasks/main.yml | 2 + .../roles/linux_container/tests/inventory | 2 + .../roles/linux_container/tests/test.yml | 5 ++ .../roles/linux_container/vars/main.yml | 2 + 9 files changed, 105 insertions(+) delete mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/README.md create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/README.md create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/inventory create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/README.md b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/README.md b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + + - hosts: servers + roles: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml new file mode 100644 index 0000000..4b89a16 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for linux_container diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml new file mode 100644 index 0000000..a18d797 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for linux_container diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml @@ -0,0 +1,52 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml new file mode 100644 index 0000000..5902466 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml @@ -0,0 +1,2 @@ +--- +# tasks file for linux_container diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/inventory b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml new file mode 100644 index 0000000..f5aea12 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - linux_container diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml new file mode 100644 index 0000000..05d0760 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for linux_container -- 2.39.5 From fb7a03da310dbda096290506fc313158d74d2904 Mon Sep 17 00:00:00 2001 From: emo Date: Wed, 22 Nov 2023 00:12:07 +0100 Subject: [PATCH 04/24] adds test task in linux_container --- .../roles/linux_container/tasks/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml index 5902466..213dad7 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml @@ -1,2 +1,4 @@ --- -# tasks file for linux_container +- name: Task is running from within the role + ansible.builtin.debug: + msg: "This is a task from the linux_container role." -- 2.39.5 From f5bc08683ddcfb6b748a5626f59ab495c2c67a4c Mon Sep 17 00:00:00 2001 From: emo Date: Wed, 22 Nov 2023 00:30:35 +0100 Subject: [PATCH 05/24] adds playbook for lanching containers --- .../test_linux_containers/launch_linux_container.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml new file mode 100644 index 0000000..f56d8ba --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml @@ -0,0 +1,9 @@ +--- + +- name: launch linux container + hosts: localhost + gather_facts: false + tasks: + - name: Create a test container image template + ansible.builtin.import_role: + name: linux_container -- 2.39.5 From 7d0b995efaebfa67d10b80cfa26e90057faa8135 Mon Sep 17 00:00:00 2001 From: emo Date: Wed, 22 Nov 2023 01:43:57 +0100 Subject: [PATCH 06/24] adds a first molecule scenario --- .../extensions/molecule/default/converge.yml | 7 ++++ .../extensions/molecule/default/create.yml | 36 +++++++++++++++++++ .../extensions/molecule/default/destroy.yml | 24 +++++++++++++ .../extensions/molecule/default/molecule.yml | 7 ++++ .../extensions/molecule/default/verify.yml | 12 +++++++ .../roles/linux_container/tasks/main.yml | 6 ++-- 6 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/create.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml new file mode 100644 index 0000000..c7f4c47 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml @@ -0,0 +1,7 @@ +--- +- name: Converge + hosts: all + gather_facts: false + +- name: imports and executes the playbook under test + ansible.builtin.import_playbook: ../../../launch_linux_container.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/create.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/create.yml new file mode 100644 index 0000000..371214e --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/create.yml @@ -0,0 +1,36 @@ +--- +- name: Create + hosts: localhost + connection: local + gather_facts: false + # no_log: "{{ molecule_no_log }}" + tasks: + + # TODO: Developer must implement and populate 'server' variable + + - name: Create instance config + when: server.changed | default(false) | bool # noqa no-handler + block: + - name: Populate instance config dict # noqa jinja + ansible.builtin.set_fact: + instance_conf_dict: {} + # instance': "{{ }}", + # address': "{{ }}", + # user': "{{ }}", + # port': "{{ }}", + # 'identity_file': "{{ }}", } + with_items: "{{ server.results }}" + register: instance_config_dict + + - name: Convert instance config dict to a list + ansible.builtin.set_fact: + instance_conf: "{{ instance_config_dict.results | map(attribute='ansible_facts.instance_conf_dict') | list }}" + + - name: Dump instance config + ansible.builtin.copy: + content: | + # Molecule managed + + {{ instance_conf | to_json | from_json | to_yaml }} + dest: "{{ molecule_instance_config }}" + mode: 0600 diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml new file mode 100644 index 0000000..5ba2d23 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml @@ -0,0 +1,24 @@ +--- +- name: Destroy + hosts: localhost + connection: local + gather_facts: false + # no_log: "{{ molecule_no_log }}" + tasks: + # Developer must implement. + + # Mandatory configuration for Molecule to function. + + - name: Populate instance config + ansible.builtin.set_fact: + instance_conf: {} + + - name: Dump instance config + ansible.builtin.copy: + content: | + # Molecule managed + + {{ instance_conf | to_json | from_json | to_yaml }} + dest: "{{ molecule_instance_config }}" + mode: 0600 + when: server.changed | default(false) | bool # noqa no-handler diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml new file mode 100644 index 0000000..f291e2b --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml @@ -0,0 +1,7 @@ +--- +dependency: + name: galaxy +platforms: + - name: instance +verifier: + name: ansible diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml new file mode 100644 index 0000000..f91205f --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml @@ -0,0 +1,12 @@ +--- +- name: Verify + hosts: localhost + gather_facts: false + tasks: + - name: stat file + ansible.builtin.stat: + path: ~/tst.log + register: stat_result + - name: verify file exists + assert: + that: stat_result.stat.exists diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml index 213dad7..8490985 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml @@ -1,4 +1,6 @@ --- - name: Task is running from within the role - ansible.builtin.debug: - msg: "This is a task from the linux_container role." + ansible.builtin.file: + path: ~/tst.log + state: touch + changed_when: false -- 2.39.5 From 4d7cab4425bca6d1729fead678777c36d5d59acd Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 26 Nov 2023 01:00:19 +0100 Subject: [PATCH 07/24] adds launching debian container --- .../extensions/molecule/default/converge.yml | 2 ++ .../extensions/molecule/default/create.yml | 36 ------------------- .../extensions/molecule/default/destroy.yml | 33 ++++++++--------- .../extensions/molecule/default/molecule.yml | 7 +++- .../extensions/molecule/default/verify.yml | 17 +++++---- .../roles/linux_container/tasks/main.yml | 17 ++++++--- 6 files changed, 46 insertions(+), 66 deletions(-) delete mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/create.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml index c7f4c47..959acf9 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml @@ -5,3 +5,5 @@ - name: imports and executes the playbook under test ansible.builtin.import_playbook: ../../../launch_linux_container.yml + vars: + lte_container_name: "{{ molecule_yml.platforms[0].name }}" diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/create.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/create.yml deleted file mode 100644 index 371214e..0000000 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/create.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- -- name: Create - hosts: localhost - connection: local - gather_facts: false - # no_log: "{{ molecule_no_log }}" - tasks: - - # TODO: Developer must implement and populate 'server' variable - - - name: Create instance config - when: server.changed | default(false) | bool # noqa no-handler - block: - - name: Populate instance config dict # noqa jinja - ansible.builtin.set_fact: - instance_conf_dict: {} - # instance': "{{ }}", - # address': "{{ }}", - # user': "{{ }}", - # port': "{{ }}", - # 'identity_file': "{{ }}", } - with_items: "{{ server.results }}" - register: instance_config_dict - - - name: Convert instance config dict to a list - ansible.builtin.set_fact: - instance_conf: "{{ instance_config_dict.results | map(attribute='ansible_facts.instance_conf_dict') | list }}" - - - name: Dump instance config - ansible.builtin.copy: - content: | - # Molecule managed - - {{ instance_conf | to_json | from_json | to_yaml }} - dest: "{{ molecule_instance_config }}" - mode: 0600 diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml index 5ba2d23..1f2ddfc 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml @@ -1,24 +1,21 @@ --- -- name: Destroy +- name: Create hosts: localhost connection: local gather_facts: false - # no_log: "{{ molecule_no_log }}" tasks: - # Developer must implement. + - name: find current container state + ansible.builtin.command: "lxc ls {{ item.name }}" + register: container_state + changed_when: false + with_items: "{{ molecule_yml.platforms }}" - # Mandatory configuration for Molecule to function. - - - name: Populate instance config - ansible.builtin.set_fact: - instance_conf: {} - - - name: Dump instance config - ansible.builtin.copy: - content: | - # Molecule managed - - {{ instance_conf | to_json | from_json | to_yaml }} - dest: "{{ molecule_instance_config }}" - mode: 0600 - when: server.changed | default(false) | bool # noqa no-handler + - name: stop running containers + ansible.builtin.shell: + cmd: | + lxc stop {{ item.name }} && \ + lxc rm {{ item.name }} + when: + (container_state.results[0].rc == 0) and + ("RUNNING" in container_state.results[0].stdout) + with_items: "{{ molecule_yml.platforms }}" diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml index f291e2b..9a40fa3 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml @@ -2,6 +2,11 @@ dependency: name: galaxy platforms: - - name: instance + - name: ${LTE_CONTAINER_NAME} +provisioner: + name: ansible + playbooks: + create: destroy.yml + destroy: destroy.yml verifier: name: ansible diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml index f91205f..d50d0c2 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml @@ -3,10 +3,13 @@ hosts: localhost gather_facts: false tasks: - - name: stat file - ansible.builtin.stat: - path: ~/tst.log - register: stat_result - - name: verify file exists - assert: - that: stat_result.stat.exists + - name: find current container state + ansible.builtin.command: "lxc ls {{ item.name }}" + register: container_state + with_items: "{{ molecule_yml.platforms }}" + + - name: verify launched container is running + assert: + that: + (container_state.results[0].rc == 0) and + ("RUNNING" in container_state.results[0].stdout) diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml index 8490985..4476738 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml @@ -1,6 +1,15 @@ --- -- name: Task is running from within the role - ansible.builtin.file: - path: ~/tst.log - state: touch +- name: find current container state + ansible.builtin.command: "lxc ls {{ lte_container_name }}" + register: container_state changed_when: false + +- name: launch debian bookworm linux container + ansible.builtin.shell: + cmd: | + lxc launch \ + images:debian/bookworm/cloud \ + {{ lte_container_name }} + when: + (container_state.rc == 1) or + ("RUNNING" not in container_state.stdout) -- 2.39.5 From 17de1c43b6be8caa387932cecb358ea5f02048cc Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 26 Nov 2023 01:20:34 +0100 Subject: [PATCH 08/24] adds yamlfix as dev dependency --- Pipfile | 1 + Pipfile.lock | 125 +++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 113 insertions(+), 13 deletions(-) diff --git a/Pipfile b/Pipfile index dc08589..fd5c225 100644 --- a/Pipfile +++ b/Pipfile @@ -9,6 +9,7 @@ ansible = "*" [dev-packages] install = "*" molecule = {extras = ["ansible"], version = "*"} +yamlfix = "*" [requires] python_version = "3.11" diff --git a/Pipfile.lock b/Pipfile.lock index 8ab6d3b..4ad0589 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "9942308af522f857dcbee007501ce1b084d2f7bc76d886b148358fa635dfd389" + "sha256": "8ae8ac5c9a5fa726cd226da339a31443fc2e85836f0fc9455cb0fc2b577b8732" }, "pipfile-spec": 6, "requires": { @@ -18,20 +18,20 @@ "default": { "ansible": { "hashes": [ - "sha256:18b397580c1f05ce5de1fe238508dd81218d278667956d2f7709320176c3ed4a", - "sha256:222735c32d2d2749f207e55ef740638bb97c7aaaa8b63bb7c7592d447da47584" + "sha256:4e758da22ff7a95ed2ab30cef12860407be68f65527af66a5b828739f634415a", + "sha256:cc06c251f142837cf540b7977724596a94f3d0fe9da9619175e9de6539cd0705" ], "index": "pypi", - "markers": "python_version >= '3.9'", - "version": "==8.6.1" + "markers": "python_version >= '3.10'", + "version": "==9.0.1" }, "ansible-core": { "hashes": [ - "sha256:351278fb8685fec1d645e2ddcfdca0c73456ff1db06426b86b6dd53774f7d7ba", - "sha256:fab3a5994482991274cae17500ca852007dbd76f564418f172f07cb00edbb293" + "sha256:6b4870ac65b708953e1509b8ccca669731a17d2beadabd8208c9f90d189058ca", + "sha256:b4a6c60fbc2f51e3ae68ec733c931ef957a04d7c8c92aa39242990b0f8adf149" ], - "markers": "python_version >= '3.9'", - "version": "==2.15.6" + "markers": "python_version >= '3.10'", + "version": "==2.16.0" }, "cffi": { "hashes": [ @@ -284,11 +284,11 @@ }, "ansible-core": { "hashes": [ - "sha256:351278fb8685fec1d645e2ddcfdca0c73456ff1db06426b86b6dd53774f7d7ba", - "sha256:fab3a5994482991274cae17500ca852007dbd76f564418f172f07cb00edbb293" + "sha256:6b4870ac65b708953e1509b8ccca669731a17d2beadabd8208c9f90d189058ca", + "sha256:b4a6c60fbc2f51e3ae68ec733c931ef957a04d7c8c92aa39242990b0f8adf149" ], - "markers": "python_version >= '3.9'", - "version": "==2.15.6" + "markers": "python_version >= '3.10'", + "version": "==2.16.0" }, "attrs": { "hashes": [ @@ -408,6 +408,14 @@ "markers": "python_version >= '3.7'", "version": "==41.0.5" }, + "distro": { + "hashes": [ + "sha256:02e111d1dc6a50abb8eed6bf31c3e48ed8b0830d1ea2a1b78c61765c2513fdd8", + "sha256:99522ca3e365cac527b44bde033f64c6945d90eb9f769703caaec52b09bbd3ff" + ], + "markers": "python_version >= '3.6'", + "version": "==1.8.0" + }, "enrich": { "hashes": [ "sha256:0a2ab0d2931dff8947012602d1234d2a3ee002d9a355b5d70be6bf5466008893", @@ -449,6 +457,14 @@ "markers": "python_version >= '3.8'", "version": "==2023.11.1" }, + "maison": { + "hashes": [ + "sha256:b63fe6751494935fc453dfb76319af223e4cb8bab32ac5464c2a9ca0edda8765", + "sha256:d2abac30a5c6a0749526d70ae95a63c6acf43461a1c10e51410b36734e053ec7" + ], + "markers": "python_full_version >= '3.7.1' and python_full_version < '4.0.0'", + "version": "==1.4.2" + }, "markdown-it-py": { "hashes": [ "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", @@ -565,6 +581,48 @@ ], "version": "==2.21" }, + "pydantic": { + "hashes": [ + "sha256:1740068fd8e2ef6eb27a20e5651df000978edce6da6803c2bef0bc74540f9548", + "sha256:210ce042e8f6f7c01168b2d84d4c9eb2b009fe7bf572c2266e235edf14bacd80", + "sha256:32c8b48dcd3b2ac4e78b0ba4af3a2c2eb6048cb75202f0ea7b34feb740efc340", + "sha256:3ecea2b9d80e5333303eeb77e180b90e95eea8f765d08c3d278cd56b00345d01", + "sha256:4b03e42ec20286f052490423682016fd80fda830d8e4119f8ab13ec7464c0132", + "sha256:4c5370a7edaac06daee3af1c8b1192e305bc102abcbf2a92374b5bc793818599", + "sha256:56e3ff861c3b9c6857579de282ce8baabf443f42ffba355bf070770ed63e11e1", + "sha256:5a1f9f747851338933942db7af7b6ee8268568ef2ed86c4185c6ef4402e80ba8", + "sha256:5e08865bc6464df8c7d61439ef4439829e3ab62ab1669cddea8dd00cd74b9ffe", + "sha256:61d9dce220447fb74f45e73d7ff3b530e25db30192ad8d425166d43c5deb6df0", + "sha256:654db58ae399fe6434e55325a2c3e959836bd17a6f6a0b6ca8107ea0571d2e17", + "sha256:678bcf5591b63cc917100dc50ab6caebe597ac67e8c9ccb75e698f66038ea953", + "sha256:6cf25c1a65c27923a17b3da28a0bdb99f62ee04230c931d83e888012851f4e7f", + "sha256:75ac15385a3534d887a99c713aa3da88a30fbd6204a5cd0dc4dab3d770b9bd2f", + "sha256:75b297827b59bc229cac1a23a2f7a4ac0031068e5be0ce385be1462e7e17a35d", + "sha256:7d6f6e7305244bddb4414ba7094ce910560c907bdfa3501e9db1a7fd7eaea127", + "sha256:84bafe2e60b5e78bc64a2941b4c071a4b7404c5c907f5f5a99b0139781e69ed8", + "sha256:854223752ba81e3abf663d685f105c64150873cc6f5d0c01d3e3220bcff7d36f", + "sha256:8ae5dd6b721459bfa30805f4c25880e0dd78fc5b5879f9f7a692196ddcb5a580", + "sha256:8ef467901d7a41fa0ca6db9ae3ec0021e3f657ce2c208e98cd511f3161c762c6", + "sha256:968ac42970f57b8344ee08837b62f6ee6f53c33f603547a55571c954a4225691", + "sha256:97cce3ae7341f7620a0ba5ef6cf043975cd9d2b81f3aa5f4ea37928269bc1b87", + "sha256:9849f031cf8a2f0a928fe885e5a04b08006d6d41876b8bbd2fc68a18f9f2e3fd", + "sha256:9f00790179497767aae6bcdc36355792c79e7bbb20b145ff449700eb076c5f96", + "sha256:b87326822e71bd5f313e7d3bfdc77ac3247035ac10b0c0618bd99dcf95b1e687", + "sha256:b97c1fac8c49be29486df85968682b0afa77e1b809aff74b83081cc115e52f33", + "sha256:bc0898c12f8e9c97f6cd44c0ed70d55749eaf783716896960b4ecce2edfd2d69", + "sha256:c553f6a156deb868ba38a23cf0df886c63492e9257f60a79c0fd8e7173537653", + "sha256:c636925f38b8db208e09d344c7aa4f29a86bb9947495dd6b6d376ad10334fb78", + "sha256:c958d053453a1c4b1c2062b05cd42d9d5c8eb67537b8d5a7e3c3032943ecd261", + "sha256:d3a3c792a58e1622667a2837512099eac62490cdfd63bd407993aaf200a4cf1f", + "sha256:e31647d85a2013d926ce60b84f9dd5300d44535a9941fe825dc349ae1f760df9", + "sha256:e70ca129d2053fb8b728ee7d1af8e553a928d7e301a311094b8a0501adc8763d", + "sha256:efff03cc7a4f29d9009d1c96ceb1e7a70a65cfe86e89d34e4a5f2ab1e5693737", + "sha256:f59ef915cac80275245824e9d771ee939133be38215555e9dc90c6cb148aaeb5", + "sha256:f8e81fc5fb17dae698f52bdd1c4f18b6ca674d7068242b2aff075f588301bbb0" + ], + "markers": "python_version >= '3.7'", + "version": "==1.10.13" + }, "pygments": { "hashes": [ "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", @@ -757,6 +815,22 @@ "markers": "python_version >= '3.8'", "version": "==0.13.1" }, + "ruyaml": { + "hashes": [ + "sha256:50e0ee3389c77ad340e209472e0effd41ae0275246df00cdad0a067532171755", + "sha256:6ce9de9f4d082d696d3bde264664d1bcdca8f5a9dff9d1a1f1a127969ab871ab" + ], + "markers": "python_version >= '3.6'", + "version": "==0.91.0" + }, + "setuptools": { + "hashes": [ + "sha256:1e8fdff6797d3865f37397be788a4e3cba233608e9b509382a2777d25ebde7f2", + "sha256:735896e78a4742605974de002ac60562d286fa8051a7e2299445e8e8fbb01aa6" + ], + "markers": "python_version >= '3.8'", + "version": "==69.0.2" + }, "subprocess-tee": { "hashes": [ "sha256:b3c124993f8b88d1eb1c2fde0bc2069787eac720ba88771cba17e8c93324825d", @@ -765,6 +839,22 @@ "markers": "python_version >= '3.8'", "version": "==0.4.1" }, + "toml": { + "hashes": [ + "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", + "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.10.2" + }, + "typing-extensions": { + "hashes": [ + "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0", + "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef" + ], + "markers": "python_version >= '3.8'", + "version": "==4.8.0" + }, "wcmatch": { "hashes": [ "sha256:14554e409b142edeefab901dc68ad570b30a72a8ab9a79106c5d5e9a6d241bd5", @@ -772,6 +862,15 @@ ], "markers": "python_version >= '3.8'", "version": "==8.5" + }, + "yamlfix": { + "hashes": [ + "sha256:72f7990e5b2b4459ef3249df4724dacbd85ce7b87f4ea3503d8a72c48574cc32", + "sha256:d92bf8a6d5b6f186bd9d643d633549a1c2424555cb8d176a5d38bce3e678b2b0" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==1.16.0" } } } -- 2.39.5 From 19f8a9b1dfd20961c9031ed436cbbbbfce9c7602 Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 26 Nov 2023 02:01:13 +0100 Subject: [PATCH 09/24] yamlfix code base --- .../extensions/molecule/default/converge.yml | 3 +- .../extensions/molecule/default/destroy.yml | 11 ++-- .../extensions/molecule/default/verify.yml | 9 ++-- .../test_linux_containers/galaxy.yml | 11 ++-- .../launch_linux_container.yml | 7 ++- .../test_linux_containers/meta/runtime.yml | 52 +------------------ .../roles/linux_container/defaults/main.yml | 2 +- .../roles/linux_container/handlers/main.yml | 2 +- .../roles/linux_container/meta/main.yml | 4 +- .../roles/linux_container/tasks/main.yml | 7 +-- .../roles/linux_container/tests/test.yml | 3 +- .../roles/linux_container/vars/main.yml | 2 +- 12 files changed, 22 insertions(+), 91 deletions(-) diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml index 959acf9..c561a5a 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml @@ -2,8 +2,7 @@ - name: Converge hosts: all gather_facts: false - - name: imports and executes the playbook under test ansible.builtin.import_playbook: ../../../launch_linux_container.yml vars: - lte_container_name: "{{ molecule_yml.platforms[0].name }}" + lte_container_name: '{{ molecule_yml.platforms[0].name }}' diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml index 1f2ddfc..da92c0b 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml @@ -5,17 +5,14 @@ gather_facts: false tasks: - name: find current container state - ansible.builtin.command: "lxc ls {{ item.name }}" + ansible.builtin.command: lxc ls {{ item.name }} register: container_state changed_when: false - with_items: "{{ molecule_yml.platforms }}" - + with_items: '{{ molecule_yml.platforms }}' - name: stop running containers ansible.builtin.shell: cmd: | lxc stop {{ item.name }} && \ lxc rm {{ item.name }} - when: - (container_state.results[0].rc == 0) and - ("RUNNING" in container_state.results[0].stdout) - with_items: "{{ molecule_yml.platforms }}" + when: (container_state.results[0].rc == 0) and ("RUNNING" in container_state.results[0].stdout) + with_items: '{{ molecule_yml.platforms }}' diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml index d50d0c2..a5855c8 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml @@ -4,12 +4,9 @@ gather_facts: false tasks: - name: find current container state - ansible.builtin.command: "lxc ls {{ item.name }}" + ansible.builtin.command: lxc ls {{ item.name }} register: container_state - with_items: "{{ molecule_yml.platforms }}" - + with_items: '{{ molecule_yml.platforms }}' - name: verify launched container is running assert: - that: - (container_state.results[0].rc == 0) and - ("RUNNING" in container_state.results[0].stdout) + that: (container_state.results[0].rc == 0) and ("RUNNING" in container_state.results[0].stdout) diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml index b014c32..6bbea70 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml @@ -1,3 +1,4 @@ +--- ### REQUIRED # The namespace of the collection. This can be a company/brand/organization or product namespace under which all # content lives. May only contain alphanumeric lowercase characters and underscores. Namespaces cannot start with @@ -12,22 +13,17 @@ version: 1.0.0 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md - # A list of the collection's content authors. Can be just the name or in the format 'Full Name (url) # @nicks:irc/im.site#channel' authors: -- your name - - + - your name ### OPTIONAL but strongly recommended # A short summary description of the collection description: your collection description - # Either a single license or a list of licenses for content inside of a collection. Ansible Galaxy currently only # accepts L(SPDX,https://spdx.org/licenses/) licenses. This key is mutually exclusive with 'license_file' license: -- GPL-2.0-or-later - + - GPL-2.0-or-later # The path to the license file for the collection. This path is relative to the root of the collection. This key is # mutually exclusive with 'license' license_file: '' @@ -66,4 +62,3 @@ build_ignore: [] # 'omit_default_directives' is a boolean that controls whether the default directives are used. Mutually exclusive # with 'build_ignore' # manifest: null - diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml index f56d8ba..7f590e2 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml @@ -1,9 +1,8 @@ --- - - name: launch linux container hosts: localhost gather_facts: false tasks: - - name: Create a test container image template - ansible.builtin.import_role: - name: linux_container + - name: Create a test container image template + ansible.builtin.import_role: + name: linux_container diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml index 20f709e..91da2a7 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml @@ -1,52 +1,2 @@ --- -# Collections must specify a minimum required ansible version to upload -# to galaxy -# requires_ansible: '>=2.9.10' - -# Content that Ansible needs to load from another location or that has -# been deprecated/removed -# plugin_routing: -# action: -# redirected_plugin_name: -# redirect: ns.col.new_location -# deprecated_plugin_name: -# deprecation: -# removal_version: "4.0.0" -# warning_text: | -# See the porting guide on how to update your playbook to -# use ns.col.another_plugin instead. -# removed_plugin_name: -# tombstone: -# removal_version: "2.0.0" -# warning_text: | -# See the porting guide on how to update your playbook to -# use ns.col.another_plugin instead. -# become: -# cache: -# callback: -# cliconf: -# connection: -# doc_fragments: -# filter: -# httpapi: -# inventory: -# lookup: -# module_utils: -# modules: -# netconf: -# shell: -# strategy: -# terminal: -# test: -# vars: - -# Python import statements that Ansible needs to load from another location -# import_redirection: -# ansible_collections.ns.col.plugins.module_utils.old_location: -# redirect: ansible_collections.ns.col.plugins.module_utils.new_location - -# Groups of actions/modules that take a common set of options -# action_groups: -# group_name: -# - module1 -# - module2 +... diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml index 4b89a16..91da2a7 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml @@ -1,2 +1,2 @@ --- -# defaults file for linux_container +... diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml index a18d797..91da2a7 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml @@ -1,2 +1,2 @@ --- -# handlers file for linux_container +... diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml index c572acc..5d7099b 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml @@ -1,3 +1,4 @@ +--- galaxy_info: author: your name description: your role description @@ -15,7 +16,6 @@ galaxy_info: # - Apache-2.0 # - CC-BY-4.0 license: license (GPL-2.0-or-later, MIT, etc) - min_ansible_version: 2.1 # If this a Container Enabled role, provide the minimum Ansible Container version. @@ -38,7 +38,6 @@ galaxy_info: # - 1.0 # - 7 # - 99.99 - galaxy_tags: [] # List tags for your role here, one per line. A tag is a keyword that describes # and categorizes the role. Users find roles by searching for tags. Be sure to @@ -46,7 +45,6 @@ galaxy_info: # # NOTE: A tag is limited to a single word comprised of alphanumeric characters. # Maximum 20 tags per role. - dependencies: [] # List your role dependencies here, one per line. Be sure to remove the '[]' above, # if you add dependencies to this list. diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml index 4476738..9bd1910 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml @@ -1,15 +1,12 @@ --- - name: find current container state - ansible.builtin.command: "lxc ls {{ lte_container_name }}" + ansible.builtin.command: lxc ls {{ lte_container_name }} register: container_state changed_when: false - - name: launch debian bookworm linux container ansible.builtin.shell: cmd: | lxc launch \ images:debian/bookworm/cloud \ {{ lte_container_name }} - when: - (container_state.rc == 1) or - ("RUNNING" not in container_state.stdout) + when: (container_state.rc == 1) or ("RUNNING" not in container_state.stdout) diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml index f5aea12..66323ad 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml @@ -1,5 +1,4 @@ --- - hosts: localhost remote_user: root - roles: - - linux_container + roles: [linux_container] diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml index 05d0760..91da2a7 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml @@ -1,2 +1,2 @@ --- -# vars file for linux_container +... -- 2.39.5 From 18f21cfa30c74e42a7db9fa4fd87b248b09d038c Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 26 Nov 2023 02:07:53 +0100 Subject: [PATCH 10/24] formatting, fixes long length yamllint errors --- .../extensions/molecule/default/destroy.yml | 4 ++-- .../extensions/molecule/default/verify.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml index da92c0b..ecaab8d 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml @@ -6,7 +6,7 @@ tasks: - name: find current container state ansible.builtin.command: lxc ls {{ item.name }} - register: container_state + register: state changed_when: false with_items: '{{ molecule_yml.platforms }}' - name: stop running containers @@ -14,5 +14,5 @@ cmd: | lxc stop {{ item.name }} && \ lxc rm {{ item.name }} - when: (container_state.results[0].rc == 0) and ("RUNNING" in container_state.results[0].stdout) + when: state.results[0].rc == 0 and "RUNNING" in state.results[0].stdout with_items: '{{ molecule_yml.platforms }}' diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml index a5855c8..9b08844 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml @@ -5,8 +5,8 @@ tasks: - name: find current container state ansible.builtin.command: lxc ls {{ item.name }} - register: container_state + register: state with_items: '{{ molecule_yml.platforms }}' - name: verify launched container is running assert: - that: (container_state.results[0].rc == 0) and ("RUNNING" in container_state.results[0].stdout) + that: state.results[0].rc == 0 and "RUNNING" in state.results[0].stdout -- 2.39.5 From 961daed51de3f5efc38a3d33d1bf1f5114d29b08 Mon Sep 17 00:00:00 2001 From: emo Date: Mon, 27 Nov 2023 22:31:32 +0100 Subject: [PATCH 11/24] parameterizes debian version in container --- .../extensions/molecule/default/converge.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml index c561a5a..580694f 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml @@ -5,4 +5,5 @@ - name: imports and executes the playbook under test ansible.builtin.import_playbook: ../../../launch_linux_container.yml vars: + lte_debian_version: bookworm lte_container_name: '{{ molecule_yml.platforms[0].name }}' -- 2.39.5 From 8e4bea6f26566802d558f1cfdcb122103c1ba481 Mon Sep 17 00:00:00 2001 From: emo Date: Mon, 27 Nov 2023 22:33:59 +0100 Subject: [PATCH 12/24] sets default version for debian in container --- .../roles/linux_container/defaults/main.yml | 2 +- .../test_linux_containers/roles/linux_container/tasks/main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml index 91da2a7..2df44ba 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml @@ -1,2 +1,2 @@ --- -... +lte_debian_version: bookworm diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml index 9bd1910..97ba8f4 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml @@ -7,6 +7,6 @@ ansible.builtin.shell: cmd: | lxc launch \ - images:debian/bookworm/cloud \ + images:debian/{{ lte_debian_version }}/cloud \ {{ lte_container_name }} when: (container_state.rc == 1) or ("RUNNING" not in container_state.stdout) -- 2.39.5 From 1e21b446be5b95a9e8e2bc91e8140f0b9f0cc35e Mon Sep 17 00:00:00 2001 From: emo Date: Mon, 27 Nov 2023 22:56:53 +0100 Subject: [PATCH 13/24] refactor tasks in role linux_container --- .../roles/linux_container/tasks/container.yml | 12 ++++++++++++ .../roles/linux_container/tasks/main.yml | 12 +----------- 2 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml new file mode 100644 index 0000000..97ba8f4 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml @@ -0,0 +1,12 @@ +--- +- name: find current container state + ansible.builtin.command: lxc ls {{ lte_container_name }} + register: container_state + changed_when: false +- name: launch debian bookworm linux container + ansible.builtin.shell: + cmd: | + lxc launch \ + images:debian/{{ lte_debian_version }}/cloud \ + {{ lte_container_name }} + when: (container_state.rc == 1) or ("RUNNING" not in container_state.stdout) diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml index 97ba8f4..467c0a2 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml @@ -1,12 +1,2 @@ --- -- name: find current container state - ansible.builtin.command: lxc ls {{ lte_container_name }} - register: container_state - changed_when: false -- name: launch debian bookworm linux container - ansible.builtin.shell: - cmd: | - lxc launch \ - images:debian/{{ lte_debian_version }}/cloud \ - {{ lte_container_name }} - when: (container_state.rc == 1) or ("RUNNING" not in container_state.stdout) +- include_tasks: container.yml -- 2.39.5 From 01a5837980d31ee4cda254bc84f43397de2bf0b6 Mon Sep 17 00:00:00 2001 From: emo Date: Fri, 1 Dec 2023 01:08:45 +0100 Subject: [PATCH 14/24] start and configure ssh server --- .../extensions/molecule/default/converge.yml | 1 + .../extensions/molecule/default/destroy.yml | 2 +- .../extensions/molecule/default/verify.yml | 23 +++++- .../roles/linux_container/tasks/container.yml | 7 ++ .../roles/linux_container/tasks/main.yml | 4 +- .../linux_container/tasks/openssh-server.yml | 74 +++++++++++++++++++ .../roles/linux_container/tasks/ume.yml | 8 ++ 7 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/openssh-server.yml create mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/ume.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml index 580694f..ceaf483 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml @@ -7,3 +7,4 @@ vars: lte_debian_version: bookworm lte_container_name: '{{ molecule_yml.platforms[0].name }}' + lte_container_root_pwd: '{{ lookup("ansible.builtin.env", "LTE_CONTAINER_ROOT_PWD") }}' diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml index ecaab8d..28f2d59 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml @@ -9,7 +9,7 @@ register: state changed_when: false with_items: '{{ molecule_yml.platforms }}' - - name: stop running containers + - name: stop and remove running containers ansible.builtin.shell: cmd: | lxc stop {{ item.name }} && \ diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml index 9b08844..b7c7387 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml @@ -8,5 +8,26 @@ register: state with_items: '{{ molecule_yml.platforms }}' - name: verify launched container is running - assert: + ansible.builtin.assert: that: state.results[0].rc == 0 and "RUNNING" in state.results[0].stdout + - name: find container ip address + ansible.builtin.command: lxc ls -c=4 -f=compact {{ item.name }} + register: ipv4_raw + with_items: '{{ molecule_yml.platforms }}' + - name: set ipv4 address string as a fact + ansible.builtin.set_fact: + ipv4: '{{ ipv4_raw.results[0].stdout_lines[1] }}' + - name: extract ipv4 address of the linux container + ansible.builtin.set_fact: + ipv4: "{{ ipv4 | regex_search('([0-9]+.[0-9]+.[0-9]+.[0-9]+)') }}" + - name: load root password from environment variable + ansible.builtin.set_fact: + root_pwd: "{{ lookup('ansible.builtin.env', 'LTE_CONTAINER_ROOT_PWD') }}" + - name: connect via ssh to linux container + ansible.builtin.shell: + cmd: | + sshpass -p{{ root_pwd }} ssh -o ConnectTimeout=1 root@{{ ipv4 }} exit; + register: ssh + - name: verify ssh connection to linux container + ansible.builtin.assert: + that: ssh.rc == 0 diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml index 97ba8f4..bd6e434 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml @@ -10,3 +10,10 @@ images:debian/{{ lte_debian_version }}/cloud \ {{ lte_container_name }} when: (container_state.rc == 1) or ("RUNNING" not in container_state.stdout) +- name: update apt cache and upgrade system packages + ansible.builtin.shell: + cmd: |- + lxc exec {{ lte_container_name }} -- \ + bash -c \ + '/usr/bin/apt update && /usr/bin/apt upgrade -y' + changed_when: false diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml index 467c0a2..845cbc5 100644 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml @@ -1,2 +1,4 @@ --- -- include_tasks: container.yml +- ansible.builtin.include_tasks: container.yml +- ansible.builtin.include_tasks: ume.yml +- ansible.builtin.include_tasks: openssh-server.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/openssh-server.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/openssh-server.yml new file mode 100644 index 0000000..b773d17 --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/openssh-server.yml @@ -0,0 +1,74 @@ +--- +- name: find systemctl service for openssh-server + ansible.builtin.shell: + cmd: |- + lxc exec {{ lte_container_name }} -- \ + systemctl status ssh.service + register: ssh_service + changed_when: false + failed_when: false +- name: set fact ssh_service_exists + ansible.builtin.set_fact: + ssh_service_exists: '{{ ssh_service.rc == 0 }}' +- name: install system package openssh-server + ansible.builtin.shell: + cmd: |- + lxc exec {{ lte_container_name }} -- \ + apt install -y openssh-server + register: ssh_pkg + when: not ssh_service_exists +- name: check openssh server configuration for root access + ansible.builtin.shell: + cmd: |- + lxc exec {{ lte_container_name }} -- \ + grep -e "^PermitRootLogin yes$" /etc/ssh/sshd_config + register: root_access + changed_when: false + failed_when: false +- name: set fact ssh_root_login_allowed + ansible.builtin.set_fact: + ssh_root_login_allowed: '{{ root_access.rc == 0 }}' +- name: configure openssh server to allow root access via ssh + ansible.builtin.shell: + cmd: |- + lxc exec {{ lte_container_name }} -- \ + sed -i "$ a PermitRootLogin yes" /etc/ssh/sshd_config + register: sshd_config + when: not ssh_root_login_allowed +- name: set fact ssh_server_installed + ansible.builtin.set_fact: + ssh_pkg_installed: '{{ ssh_pkg.changed and ssh_pkg.rc == 0 }}' +- name: enable openssh server systemd service + ansible.builtin.shell: + cmd: |- + lxc exec {{ lte_container_name }} -- \ + systemctl enable --now ssh.service + when: ssh_pkg_installed +- name: set fact sshd_config_touched + ansible.builtin.set_fact: + sshd_config_touched: '{{ sshd_config.changed and sshd_config.rc == 0 }}' +- name: restart openssh server systemd service + ansible.builtin.shell: + cmd: |- + lxc exec {{ lte_container_name }} -- \ + systemctl restart ssh.service + when: sshd_config_touched +- name: find container ip address + ansible.builtin.command: lxc ls -c=4 -f=compact {{ lte_container_name }} + register: ipv4 + changed_when: false + when: sshd_config_touched +- name: set fact ipv4 + ansible.builtin.set_fact: + ipv4: '{{ ipv4.stdout_lines[1] }}' + when: sshd_config_touched +- name: extract ipv4 address of the linux container + ansible.builtin.set_fact: + ipv4: "{{ ipv4 | regex_search('([0-9]+.[0-9]+.[0-9]+.[0-9]+)') }}" + when: sshd_config_touched +- name: ssh-copy-id from server on the Edge to linux container + ansible.builtin.shell: + cmd: |- + sshpass -p {{ lte_container_root_pwd }} \ + ssh-copy-id -o StrictHostKeyChecking=no root@{{ ipv4 }} + when: sshd_config_touched diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/ume.yml b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/ume.yml new file mode 100644 index 0000000..1a2adbe --- /dev/null +++ b/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/ume.yml @@ -0,0 +1,8 @@ +--- +- name: change root user password in container + ansible.builtin.shell: + cmd: |- + lxc exec {{ lte_container_name }} -- \ + bash -c \ + 'echo "root:{{ lte_container_root_pwd }}" | chpasswd' + changed_when: false -- 2.39.5 From 46a0ea86ce56e98e32767ee1f961b751cd7ae8bb Mon Sep 17 00:00:00 2001 From: emo Date: Sat, 2 Dec 2023 01:23:47 +0100 Subject: [PATCH 15/24] simplify project folder structure --- README.md | 4 ++-- .../theliberatededge/test_linux_containers/README.md | 3 --- .../extensions => extensions}/molecule/default/converge.yml | 0 .../extensions => extensions}/molecule/default/destroy.yml | 0 .../extensions => extensions}/molecule/default/molecule.yml | 0 .../extensions => extensions}/molecule/default/verify.yml | 0 .../test_linux_containers/galaxy.yml => galaxy.yml | 0 .../launch_linux_container.yml => launch_linux_container.yml | 0 .../test_linux_containers/meta => meta}/runtime.yml | 0 .../test_linux_containers/plugins => plugins}/README.md | 0 .../roles => roles}/linux_container/README.md | 0 .../roles => roles}/linux_container/defaults/main.yml | 0 .../roles => roles}/linux_container/handlers/main.yml | 0 .../roles => roles}/linux_container/meta/main.yml | 0 .../roles => roles}/linux_container/tasks/container.yml | 0 .../roles => roles}/linux_container/tasks/main.yml | 0 .../roles => roles}/linux_container/tasks/openssh-server.yml | 0 .../roles => roles}/linux_container/tasks/ume.yml | 0 .../roles => roles}/linux_container/tests/inventory | 0 .../roles => roles}/linux_container/tests/test.yml | 0 .../roles => roles}/linux_container/vars/main.yml | 0 21 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 collections/ansible_collections/theliberatededge/test_linux_containers/README.md rename {collections/ansible_collections/theliberatededge/test_linux_containers/extensions => extensions}/molecule/default/converge.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/extensions => extensions}/molecule/default/destroy.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/extensions => extensions}/molecule/default/molecule.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/extensions => extensions}/molecule/default/verify.yml (100%) rename collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml => galaxy.yml (100%) rename collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml => launch_linux_container.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/meta => meta}/runtime.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/plugins => plugins}/README.md (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/README.md (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/defaults/main.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/handlers/main.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/meta/main.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/tasks/container.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/tasks/main.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/tasks/openssh-server.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/tasks/ume.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/tests/inventory (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/tests/test.yml (100%) rename {collections/ansible_collections/theliberatededge/test_linux_containers/roles => roles}/linux_container/vars/main.yml (100%) diff --git a/README.md b/README.md index 9aa7c0e..9bf44d2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# test-linux-containers +# Ansible Collection - theliberatededge.test_linux_containers -This repository contains an Ansible collection that helps [Ansible Molecule](https://ansible.readthedocs.io/projects/molecule/) scenarios with the usage of [Linux containers](https://linuxcontainers.org/). \ No newline at end of file +Documentation for the collection. diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/README.md b/collections/ansible_collections/theliberatededge/test_linux_containers/README.md deleted file mode 100644 index 9bf44d2..0000000 --- a/collections/ansible_collections/theliberatededge/test_linux_containers/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Ansible Collection - theliberatededge.test_linux_containers - -Documentation for the collection. diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml b/extensions/molecule/default/converge.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/converge.yml rename to extensions/molecule/default/converge.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml b/extensions/molecule/default/destroy.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/destroy.yml rename to extensions/molecule/default/destroy.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml b/extensions/molecule/default/molecule.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/molecule.yml rename to extensions/molecule/default/molecule.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml b/extensions/molecule/default/verify.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/extensions/molecule/default/verify.yml rename to extensions/molecule/default/verify.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml b/galaxy.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/galaxy.yml rename to galaxy.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml b/launch_linux_container.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/launch_linux_container.yml rename to launch_linux_container.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml b/meta/runtime.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/meta/runtime.yml rename to meta/runtime.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/plugins/README.md b/plugins/README.md similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/plugins/README.md rename to plugins/README.md diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/README.md b/roles/linux_container/README.md similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/README.md rename to roles/linux_container/README.md diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml b/roles/linux_container/defaults/main.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/defaults/main.yml rename to roles/linux_container/defaults/main.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml b/roles/linux_container/handlers/main.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/handlers/main.yml rename to roles/linux_container/handlers/main.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml b/roles/linux_container/meta/main.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/meta/main.yml rename to roles/linux_container/meta/main.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml b/roles/linux_container/tasks/container.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/container.yml rename to roles/linux_container/tasks/container.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml b/roles/linux_container/tasks/main.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/main.yml rename to roles/linux_container/tasks/main.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/openssh-server.yml b/roles/linux_container/tasks/openssh-server.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/openssh-server.yml rename to roles/linux_container/tasks/openssh-server.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/ume.yml b/roles/linux_container/tasks/ume.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tasks/ume.yml rename to roles/linux_container/tasks/ume.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/inventory b/roles/linux_container/tests/inventory similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/inventory rename to roles/linux_container/tests/inventory diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml b/roles/linux_container/tests/test.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/tests/test.yml rename to roles/linux_container/tests/test.yml diff --git a/collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml b/roles/linux_container/vars/main.yml similarity index 100% rename from collections/ansible_collections/theliberatededge/test_linux_containers/roles/linux_container/vars/main.yml rename to roles/linux_container/vars/main.yml -- 2.39.5 From b0ec8dc91bd487ef77a6d1ff617cfc2927bf4dc9 Mon Sep 17 00:00:00 2001 From: emo Date: Sat, 2 Dec 2023 03:26:11 +0100 Subject: [PATCH 16/24] enables reusability of this collection for molecule scenarios --- extensions/molecule/default/converge.yml | 9 ++++++--- .../launch_linux_container.yml | 0 requirements-test.yml | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) rename launch_linux_container.yml => playbooks/launch_linux_container.yml (100%) create mode 100644 requirements-test.yml diff --git a/extensions/molecule/default/converge.yml b/extensions/molecule/default/converge.yml index ceaf483..9a3f979 100644 --- a/extensions/molecule/default/converge.yml +++ b/extensions/molecule/default/converge.yml @@ -3,8 +3,11 @@ hosts: all gather_facts: false - name: imports and executes the playbook under test - ansible.builtin.import_playbook: ../../../launch_linux_container.yml + ansible.builtin.import_playbook: + theliberatededge.test_linux_containers.launch_linux_container.yml vars: lte_debian_version: bookworm - lte_container_name: '{{ molecule_yml.platforms[0].name }}' - lte_container_root_pwd: '{{ lookup("ansible.builtin.env", "LTE_CONTAINER_ROOT_PWD") }}' + lte_container_name: + '{{ molecule_yml.platforms[0].name }}' + lte_container_root_pwd: + '{{ lookup("ansible.builtin.env", "LTE_CONTAINER_ROOT_PWD") }}' diff --git a/launch_linux_container.yml b/playbooks/launch_linux_container.yml similarity index 100% rename from launch_linux_container.yml rename to playbooks/launch_linux_container.yml diff --git a/requirements-test.yml b/requirements-test.yml new file mode 100644 index 0000000..54a5edc --- /dev/null +++ b/requirements-test.yml @@ -0,0 +1,4 @@ +--- +collections: + - source: . + type: dir -- 2.39.5 From 280eced7258f498665f32fb80b0b50efdcf41cb0 Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 3 Dec 2023 01:52:20 +0100 Subject: [PATCH 17/24] formats code --- extensions/molecule/default/converge.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/extensions/molecule/default/converge.yml b/extensions/molecule/default/converge.yml index 9a3f979..09dd653 100644 --- a/extensions/molecule/default/converge.yml +++ b/extensions/molecule/default/converge.yml @@ -3,11 +3,8 @@ hosts: all gather_facts: false - name: imports and executes the playbook under test - ansible.builtin.import_playbook: - theliberatededge.test_linux_containers.launch_linux_container.yml + ansible.builtin.import_playbook: theliberatededge.test_linux_containers.launch_linux_container.yml vars: lte_debian_version: bookworm - lte_container_name: - '{{ molecule_yml.platforms[0].name }}' - lte_container_root_pwd: - '{{ lookup("ansible.builtin.env", "LTE_CONTAINER_ROOT_PWD") }}' + lte_container_name: '{{ molecule_yml.platforms[0].name }}' + lte_container_root_pwd: '{{ lookup("ansible.builtin.env", "LTE_CONTAINER_ROOT_PWD") }}' -- 2.39.5 From 3787c67f3928ebf61f4feb4b6304c29e6d1b4c10 Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 3 Dec 2023 01:53:01 +0100 Subject: [PATCH 18/24] adds docu on getting started and contributing --- README.md | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 221 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9bf44d2..9bc260b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,222 @@ -# Ansible Collection - theliberatededge.test_linux_containers +# Overview -Documentation for the collection. +The Ansible collection `theliberatededge.test_linux_containers` +helps with automating various scenarios based on +[Linux containers](https://linuxcontainers.org/). + +# Getting started + +This section describes the ways in which engineers could benefit from utilising +the Ansible collection `theliberatededge.test_linux_containers`. + +## Prerequisites + +1. You have access to a machine running a Linux distribution of your +choice. +2. [LXD](https://ubuntu.com/lxd) has been installed and initialised on this +machine, so that containers can be launched. It will effectively be used as +a container hypervisor. +3. Your user has been granted permissions to manage Linux containers. +4. Python 3 has been set up correctly on the machine. +5. [Ansible](https://pypi.org/project/ansible/) has been installed. + +# Install the Ansible collection theliberatededge.test_linux_containers + +Install or update `theliberatededge.test_linux_containers` on your +Linux machine using `ansible-galaxy`. + +``` +ansible-galaxy collection install -U --force \ + git+https://git.theliberatededge.org/the-liberated-edge/test_linux_containers.git,i-1-test-linux-container +``` + +## Run the launch_linux_container playbook + +Substitute the missing variable valuess and run the playbook +for launching Debian Bookworm linux containers. + +Variables +- `lte_container_name` stands for the desired container name that +will be visible when running `lxc ls`. +- `lte_container_root_pwd` is the password that will be set for +the `root` user in the container named `lte_container_name`. + +``` +LC_ALL=C.UTF-8 ansible-playbook \ + theliberatededge.test_linux_containers.launch_linux_container \ + -e "lte_container_name= lte_container_root_pwd=" +``` + +Once the playbook finishes execution, you should be able to +connect to the newly launched container as user `root` via +ssh. + +## Include playbook or role from the collection + +Reusing Ansible roles and playbooks is quite straight +forward and follows the practices established by Ansible. Below +you will find a sample playbook. + +Similarly to executing the playbook via CLI, one needs to +assign values to the missing variables. + +``` +--- +- name: Launch Linux Container + hosts: all + gather_facts: false +- name: imports and executes the playbook under test + ansible.builtin.import_playbook: + theliberatededge.test_linux_containers.launch_linux_container.yml + vars: + lte_debian_version: bookworm + lte_container_name: + lte_container_root_pwd: +``` + +# How to contribute + +This section describes what you need to do in order to contribute to this +project if you want to work on our code base. It is all about setting up your +local development environment and the ways of working that we have +established. + +## Development workflow + +Our team uses [Github flow](https://docs.github.com/en/get-started/quickstart/github-flow) +to release changes. + +## Definition of Done + +We are a small team and for us squeezing and saving any second is key. This +is the way we could manage better our scarce resources. Therefore, we have +been experimenting with and adopting industry practices which help us +do more with less. + +Every change that we merge in the `main` branch complies to the following +list of requirements or checklist. + +1. Every change request is represented as a git pull request. Merging changes +directly in the `main` branch is prohibited and guarded by a branch protection +rule in our source control system. +2. Every git pull request has been linked to exactly one project issue. The +issue number prefixes the pull request title, e.g. `i-1 `. +3. The change has been thoroughly reviewed and all discovered issues have +been resolved. Merging without a code review approval is only acceptable +when reviewers are not available. +4. The change has been tested by Ansible Molecule scenarios. Our team adopted +an approach resembling Test Driven Development for the sake of automated +regression testing and avoidance. +5. All automated tests have been passing successfully consistently. We have +zero tolerance on test flakiness. +6. Source code has been linted with `yamllint` and `ansible-lint`. Any issues +have been resolved. +7. YAML documents have been formated with `yamlfix`. +8. User facing changes have been documented appropriately. + +## Development environment setup + +### Prerequisites + +Before you could set up your local development environment you will need to +make sure that the list of prerequisites below has been satisfied. + +1. You have access to a machine running a Linux distribution of your +choice. +2. [LXD](https://ubuntu.com/lxd) has been installed and initialised on this +machine, so that containers can be launched. It will effectively be used as +a container hypervisor. +3. Your user has been granted permissions to manage Linux containers. +4. Python 3 has been set up correctly on the machine. +5. [Pipenv](https://github.com/pypa/pipenv) has been installed on the machine. +6. [git](https://git-scm.com/) has been installed on the machine. + +### Initialize collection project locally + +All dependencies and dev dependencies will be installed in a Python 3 virtual +environment, which will be activated for you. +``` +git clone \ + https://git.theliberatededge.org/the-liberated-edge/test_linux_containers.git +``` + +``` +cd test_linux_containers +``` + +``` +pipenv install +``` + +``` +pipenv install --dev +``` + +``` +pipenv shell +``` + +### Lint Ansible artifacts + +Navigate to the root folder of the local copy of this git repository. + +``` +cd test_linux_containers +``` + +Lint all YAML documents. + +``` +yamllint . +``` + +Use `ansible-lint` to verify good practices relevant to Ansible. + +``` +LC_ALL=C.UTF-8 ansible-lint . +``` + +### YAML code formatting + +Navigate to the root folder of the local copy of this git repository. + +``` +cd test_linux_containers +``` + +Format all YAML documents. + +``` +yamlfix . +``` + +### Execute Ansible Molecule scenarios + +In order to run all existing Ansible Molecule scenarios, one needs to +follow the steps below. + +Navigate to the root folder of the local copy of this git repository. + +``` +cd test_linux_containers +``` + +Install locally a snapshot version of `theliberatededge.test_linux_containers` +that will be used as the foundation for automated testing. + +``` +LC_ALL=C.UTF-8 ansible-galaxy install -r requirements-test.yml --force +``` + +Execute all existing Ansible Molecule scenarios. + +``` +cd extensions +``` + +``` +LC_ALL=C.UTF-8 \ +LTE_CONTAINER_NAME= \ +LTE_CONTAINER_ROOT_PWD= \ + molecule test --all +``` -- 2.39.5 From 5fb0a14e33eb90e33147c973b73701b710c1db2b Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 3 Dec 2023 02:02:46 +0100 Subject: [PATCH 19/24] yamllint ignores meta/ and galaxy.yml --- .yamllint | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .yamllint diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..7cacc16 --- /dev/null +++ b/.yamllint @@ -0,0 +1,6 @@ +--- +extends: default + +ignore: | + galaxy.yml + meta/ -- 2.39.5 From 2e0979817421e718a802a868de7a7f68f70b8293 Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 3 Dec 2023 02:13:16 +0100 Subject: [PATCH 20/24] fix yamllint error - line too long --- extensions/molecule/default/verify.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/molecule/default/verify.yml b/extensions/molecule/default/verify.yml index b7c7387..676e469 100644 --- a/extensions/molecule/default/verify.yml +++ b/extensions/molecule/default/verify.yml @@ -22,11 +22,11 @@ ipv4: "{{ ipv4 | regex_search('([0-9]+.[0-9]+.[0-9]+.[0-9]+)') }}" - name: load root password from environment variable ansible.builtin.set_fact: - root_pwd: "{{ lookup('ansible.builtin.env', 'LTE_CONTAINER_ROOT_PWD') }}" + pwd: "{{ lookup('ansible.builtin.env', 'LTE_CONTAINER_ROOT_PWD') }}" - name: connect via ssh to linux container ansible.builtin.shell: cmd: | - sshpass -p{{ root_pwd }} ssh -o ConnectTimeout=1 root@{{ ipv4 }} exit; + sshpass -p{{ pwd }} ssh -o ConnectTimeout=1 root@{{ ipv4 }} exit; register: ssh - name: verify ssh connection to linux container ansible.builtin.assert: -- 2.39.5 From 374bbfc464f3fcc8eb3eef290176fdf74cebfcc8 Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 3 Dec 2023 02:22:16 +0100 Subject: [PATCH 21/24] adds to definition of done --- README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9bc260b..dcd0844 100644 --- a/README.md +++ b/README.md @@ -99,20 +99,22 @@ list of requirements or checklist. 1. Every change request is represented as a git pull request. Merging changes directly in the `main` branch is prohibited and guarded by a branch protection rule in our source control system. -2. Every git pull request has been linked to exactly one project issue. The +2. All commits as part of a feature branch have been squashed into a single +commit that has been merged in the `main` branch. +3. Every git pull request has been linked to exactly one project issue. The issue number prefixes the pull request title, e.g. `i-1 `. -3. The change has been thoroughly reviewed and all discovered issues have +4. The change has been thoroughly reviewed and all discovered issues have been resolved. Merging without a code review approval is only acceptable when reviewers are not available. -4. The change has been tested by Ansible Molecule scenarios. Our team adopted +5. The change has been tested by Ansible Molecule scenarios. Our team adopted an approach resembling Test Driven Development for the sake of automated regression testing and avoidance. -5. All automated tests have been passing successfully consistently. We have +6. All automated tests have been passing successfully consistently. We have zero tolerance on test flakiness. -6. Source code has been linted with `yamllint` and `ansible-lint`. Any issues +7. Source code has been linted with `yamllint` and `ansible-lint`. Any issues have been resolved. -7. YAML documents have been formated with `yamlfix`. -8. User facing changes have been documented appropriately. +8. YAML documents have been formated with `yamlfix`. +9. User facing changes have been documented appropriately. ## Development environment setup -- 2.39.5 From 613d457a4784234b72de5ae622510c2631754718 Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 3 Dec 2023 02:55:33 +0100 Subject: [PATCH 22/24] improve readability and accurracy of definion of done --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index dcd0844..a5ed610 100644 --- a/README.md +++ b/README.md @@ -102,18 +102,18 @@ rule in our source control system. 2. All commits as part of a feature branch have been squashed into a single commit that has been merged in the `main` branch. 3. Every git pull request has been linked to exactly one project issue. The -issue number prefixes the pull request title, e.g. `i-1 `. +issue number prefixes the pull request title, e.g. `i-1 `. 4. The change has been thoroughly reviewed and all discovered issues have been resolved. Merging without a code review approval is only acceptable when reviewers are not available. 5. The change has been tested by Ansible Molecule scenarios. Our team adopted an approach resembling Test Driven Development for the sake of automated -regression testing and avoidance. +regression testing. 6. All automated tests have been passing successfully consistently. We have zero tolerance on test flakiness. -7. Source code has been linted with `yamllint` and `ansible-lint`. Any issues -have been resolved. -8. YAML documents have been formated with `yamlfix`. +7. Source code has been linted with `yamllint` and `ansible-lint`. Any errors +have been fixed. +8. All YAML documents have been formated with `yamlfix`. 9. User facing changes have been documented appropriately. ## Development environment setup @@ -158,7 +158,7 @@ pipenv install --dev pipenv shell ``` -### Lint Ansible artifacts +## Lint Ansible artifacts Navigate to the root folder of the local copy of this git repository. @@ -178,7 +178,7 @@ Use `ansible-lint` to verify good practices relevant to Ansible. LC_ALL=C.UTF-8 ansible-lint . ``` -### YAML code formatting +## YAML code formatting Navigate to the root folder of the local copy of this git repository. @@ -192,7 +192,7 @@ Format all YAML documents. yamlfix . ``` -### Execute Ansible Molecule scenarios +## Execute Ansible Molecule scenarios In order to run all existing Ansible Molecule scenarios, one needs to follow the steps below. -- 2.39.5 From 1fbd0a93f4bddcfc65729ab3efa448b6ae159de2 Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 3 Dec 2023 02:58:56 +0100 Subject: [PATCH 23/24] make texr more clear in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a5ed610..825b924 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ forward and follows the practices established by Ansible. Below you will find a sample playbook. Similarly to executing the playbook via CLI, one needs to -assign values to the missing variables. +assign the missing values to the variables first. ``` --- -- 2.39.5 From 8239bcdf586c40552293baa26d7b11b669bdd828 Mon Sep 17 00:00:00 2001 From: emo Date: Sun, 7 Jan 2024 01:46:42 +0100 Subject: [PATCH 24/24] edit README.md and remove unrealistic requirement --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 825b924..c0d5b36 100644 --- a/README.md +++ b/README.md @@ -103,18 +103,17 @@ rule in our source control system. commit that has been merged in the `main` branch. 3. Every git pull request has been linked to exactly one project issue. The issue number prefixes the pull request title, e.g. `i-1 `. -4. The change has been thoroughly reviewed and all discovered issues have been resolved. Merging without a code review approval is only acceptable when reviewers are not available. -5. The change has been tested by Ansible Molecule scenarios. Our team adopted +4. The change has been tested by Ansible Molecule scenarios. Our team adopted an approach resembling Test Driven Development for the sake of automated regression testing. -6. All automated tests have been passing successfully consistently. We have +5. All automated tests have been passing successfully consistently. We have zero tolerance on test flakiness. -7. Source code has been linted with `yamllint` and `ansible-lint`. Any errors +6. Source code has been linted with `yamllint` and `ansible-lint`. Any errors have been fixed. -8. All YAML documents have been formated with `yamlfix`. -9. User facing changes have been documented appropriately. +7. All YAML documents have been formated with `yamlfix`. +8. User facing changes have been documented appropriately. ## Development environment setup -- 2.39.5