Bootstrapping Jenkins in an automated way can be tedious. Ideally, you have a pre-baked image with plugins and baked in pipeline for configuration/seeding from a central git repository. From that point on a Jenkins config change is just a push to a git repository. The following approach leverages JobDSL, Groovy system scripts and JCasC to bootstrap Jenkins in a fully automated way.
Pictures can sometimes describe more than words ..
.. and code can describe even more! The demo was done with the following repository:
The code also contains agent-on-demand bootstrapping with Terraform.