{"guid":"38463ff8-5299-5f3f-b66c-2b73aeee1fba","title":"pyinfra basics - you don't need ansible in your life","subtitle":null,"slug":"quellcode-2026-49-pyinfra-basics-you-don-t-need-ansible-in-your-life","link":"https://pretalx.0x90.space/quellcode-2026/talk/DYMNFL/","description":"Annoyed by ansible's yaml syntax? With pyinfra, you can write your declarative infrastructure config in python instead. With all the control flow logic, reusable libraries, and whole power of a turing-complete language you already know.\n\nI can show you how we define our infrastructure in pyinfra, and some pyinfra libraries I wrote (for borgbackup, nginx, and wireguard). Then we can think together about the strengths and limitations of pyinfra, whether it would be useful for your projects, and how to migrate there.\n\nhttps://creativecommons.org/licenses/by-sa/4.0/","original_language":"eng","persons":["missytake"],"view_count":10,"promoted":false,"date":"2026-09-27T14:30:00.000+02:00","release_date":"2026-09-27T00:00:00.000+02:00","updated_at":"2026-09-28T00:15:05.363+02:00","tags":["DYMNFL","2026","quellc0d3","Workshop","Vortragsraum","quellc0d3-eng","Nürnberg","0x90.space","K4CG","Heizhaus","Nerdberg","Day 3"],"length":3605,"duration":3605,"thumb_url":"https://static.media.ccc.de/media/conferences/quellcode/2026/49-38463ff8-5299-5f3f-b66c-2b73aeee1fba.jpg","poster_url":"https://static.media.ccc.de/media/conferences/quellcode/2026/49-38463ff8-5299-5f3f-b66c-2b73aeee1fba_preview.jpg","timeline_url":"https://static.media.ccc.de/media/conferences/quellcode/2026/49-38463ff8-5299-5f3f-b66c-2b73aeee1fba.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/conferences/quellcode/2026/49-38463ff8-5299-5f3f-b66c-2b73aeee1fba.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/quellcode-2026-49-pyinfra-basics-you-don-t-need-ansible-in-your-life","url":"https://api.media.ccc.de/public/events/38463ff8-5299-5f3f-b66c-2b73aeee1fba","conference_title":"QueIIc0d3","conference_url":"https://api.media.ccc.de/public/conferences/quellc0d3","related":[],"recordings":[{"length":3605,"mime_type":"video/mp4","language":"eng","filename":"quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2026-09-27T19:43:05.697+02:00","label":"eng 1080p","size":557,"recording_url":"https://cdn.media.ccc.de/events/quellcode/2026/h264-hd/quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_hd.mp4","url":"https://api.media.ccc.de/public/recordings/105526","event_url":"https://api.media.ccc.de/public/events/38463ff8-5299-5f3f-b66c-2b73aeee1fba","conference_url":"https://api.media.ccc.de/public/conferences/quellc0d3"},{"length":3605,"mime_type":"audio/mpeg","language":"eng","filename":"quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2026-09-27T19:45:32.203+02:00","label":"eng","size":55,"recording_url":"https://cdn.media.ccc.de/events/quellcode/2026/mp3/quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/105529","event_url":"https://api.media.ccc.de/public/events/38463ff8-5299-5f3f-b66c-2b73aeee1fba","conference_url":"https://api.media.ccc.de/public/conferences/quellc0d3"},{"length":3604,"mime_type":"audio/opus","language":"eng","filename":"quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2026-09-27T19:45:36.234+02:00","label":"eng","size":34,"recording_url":"https://cdn.media.ccc.de/events/quellcode/2026/opus/quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_opus.opus","url":"https://api.media.ccc.de/public/recordings/105530","event_url":"https://api.media.ccc.de/public/events/38463ff8-5299-5f3f-b66c-2b73aeee1fba","conference_url":"https://api.media.ccc.de/public/conferences/quellc0d3"},{"length":3605,"mime_type":"video/mp4","language":"eng","filename":"quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2026-09-27T19:49:03.305+02:00","label":"eng 576p","size":158,"recording_url":"https://cdn.media.ccc.de/events/quellcode/2026/h264-sd/quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_sd.mp4","url":"https://api.media.ccc.de/public/recordings/105531","event_url":"https://api.media.ccc.de/public/events/38463ff8-5299-5f3f-b66c-2b73aeee1fba","conference_url":"https://api.media.ccc.de/public/conferences/quellc0d3"},{"length":3605,"mime_type":"video/webm;codecs=av01","language":"eng","filename":"quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_av1-hd.webm","state":"new","folder":"av1-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2026-09-27T20:22:38.714+02:00","label":"eng 1080p","size":386,"recording_url":"https://cdn.media.ccc.de/events/quellcode/2026/av1-hd/quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_av1-hd.webm","url":"https://api.media.ccc.de/public/recordings/105539","event_url":"https://api.media.ccc.de/public/events/38463ff8-5299-5f3f-b66c-2b73aeee1fba","conference_url":"https://api.media.ccc.de/public/conferences/quellc0d3"},{"length":3605,"mime_type":"video/webm","language":"eng","filename":"quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2026-09-27T20:23:53.280+02:00","label":"eng 576p","size":132,"recording_url":"https://cdn.media.ccc.de/events/quellcode/2026/webm-sd/quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/105540","event_url":"https://api.media.ccc.de/public/events/38463ff8-5299-5f3f-b66c-2b73aeee1fba","conference_url":"https://api.media.ccc.de/public/conferences/quellc0d3"},{"length":3605,"mime_type":"video/webm","language":"eng","filename":"quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2026-09-27T20:35:40.621+02:00","label":"eng 1080p","size":465,"recording_url":"https://cdn.media.ccc.de/events/quellcode/2026/webm-hd/quellc0d3-49-eng-pyinfra_basics_-_you_dont_need_ansible_in_your_life_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/105541","event_url":"https://api.media.ccc.de/public/events/38463ff8-5299-5f3f-b66c-2b73aeee1fba","conference_url":"https://api.media.ccc.de/public/conferences/quellc0d3"}]}