You've already forked ansible-docker
							
							Compare commits
	
		
			1 Commits
		
	
	
		
			0.2.0
			...
			778e90fab8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 778e90fab8 | 
							
								
								
									
										298
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										298
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,298 @@ | |||||||
|  | --- | ||||||
|  | kind: pipeline | ||||||
|  | type: kubernetes | ||||||
|  | name: linter | ||||||
|  |  | ||||||
|  | clone: | ||||||
|  |   disable: true | ||||||
|  |  | ||||||
|  | steps: | ||||||
|  | - name: clone | ||||||
|  |   image: git.cryptic.systems/volker.raschek/git:1.4.0 | ||||||
|  |  | ||||||
|  | - name: markdown lint | ||||||
|  |   commands: | ||||||
|  |   - markdownlint *.md | ||||||
|  |   image: git.cryptic.systems/volker.raschek/markdownlint:0.43.0 | ||||||
|  |   resources: | ||||||
|  |     limits: | ||||||
|  |       cpu: 150 | ||||||
|  |       memory: 150M | ||||||
|  |  | ||||||
|  | - name: email-notification | ||||||
|  |   environment: | ||||||
|  |     SMTP_FROM_ADDRESS: | ||||||
|  |       from_secret: smtp_from_address | ||||||
|  |     SMTP_FROM_NAME: | ||||||
|  |       from_secret: smtp_from_name | ||||||
|  |     SMTP_HOST: | ||||||
|  |       from_secret: smtp_host | ||||||
|  |     SMTP_USERNAME: | ||||||
|  |       from_secret: smtp_username | ||||||
|  |     SMTP_PASSWORD: | ||||||
|  |       from_secret: smtp_password | ||||||
|  |   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 | ||||||
|  |   resources: | ||||||
|  |     limits: | ||||||
|  |       cpu: 150 | ||||||
|  |       memory: 150M | ||||||
|  |   when: | ||||||
|  |     status: | ||||||
|  |     - changed | ||||||
|  |     - failure | ||||||
|  |  | ||||||
|  | trigger: | ||||||
|  |   event: | ||||||
|  |     exclude: | ||||||
|  |     - tag | ||||||
|  |  | ||||||
|  | --- | ||||||
|  | kind: pipeline | ||||||
|  | type: docker | ||||||
|  | name: dry-run-amd64 | ||||||
|  |  | ||||||
|  | clone: | ||||||
|  |   disable: true | ||||||
|  |  | ||||||
|  | depends_on: | ||||||
|  | - linter | ||||||
|  |  | ||||||
|  | platform: | ||||||
|  |   os: linux | ||||||
|  |   arch: amd64 | ||||||
|  |  | ||||||
|  | steps: | ||||||
|  | - name: clone | ||||||
|  |   image: git.cryptic.systems/volker.raschek/git:1.4.0 | ||||||
|  |  | ||||||
|  | - name: build | ||||||
|  |   image: docker.io/plugins/docker:20.18.6 | ||||||
|  |   settings: | ||||||
|  |     auto_tag: false | ||||||
|  |     dockerfile: Dockerfile | ||||||
|  |     dry_run: true | ||||||
|  |     force_tag: true | ||||||
|  |     no_cache: true | ||||||
|  |     purge: true | ||||||
|  |     mirror: | ||||||
|  |       from_secret: docker_io_mirror | ||||||
|  |     registry: git.cryptic.systems | ||||||
|  |     repo: git.cryptic.systems/volker.raschek/ansible-archlinux | ||||||
|  |     username: | ||||||
|  |       from_secret: git_cryptic_systems_container_registry_user | ||||||
|  |     password: | ||||||
|  |       from_secret: git_cryptic_systems_container_registry_password | ||||||
|  |  | ||||||
|  | - name: email-notification | ||||||
|  |   environment: | ||||||
|  |     SMTP_FROM_ADDRESS: | ||||||
|  |       from_secret: smtp_from_address | ||||||
|  |     SMTP_FROM_NAME: | ||||||
|  |       from_secret: smtp_from_name | ||||||
|  |     SMTP_HOST: | ||||||
|  |       from_secret: smtp_host | ||||||
|  |     SMTP_USERNAME: | ||||||
|  |       from_secret: smtp_username | ||||||
|  |     SMTP_PASSWORD: | ||||||
|  |       from_secret: smtp_password | ||||||
|  |   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 | ||||||
|  |   when: | ||||||
|  |     status: | ||||||
|  |     - changed | ||||||
|  |     - failure | ||||||
|  |  | ||||||
|  | trigger: | ||||||
|  |   branch: | ||||||
|  |     exclude: | ||||||
|  |     - master | ||||||
|  |   event: | ||||||
|  |   - pull_request | ||||||
|  |   - push | ||||||
|  |   repo: | ||||||
|  |   - volker.raschek/ansible-archlinux-docker | ||||||
|  |  | ||||||
|  | --- | ||||||
|  | kind: pipeline | ||||||
|  | type: docker | ||||||
|  | name: latest-amd64 | ||||||
|  |  | ||||||
|  | clone: | ||||||
|  |   disable: true | ||||||
|  |  | ||||||
|  | depends_on: | ||||||
|  | - linter | ||||||
|  |  | ||||||
|  | platform: | ||||||
|  |   os: linux | ||||||
|  |   arch: amd64 | ||||||
|  |  | ||||||
|  | steps: | ||||||
|  | - name: clone | ||||||
|  |   image: git.cryptic.systems/volker.raschek/git:1.4.0 | ||||||
|  |  | ||||||
|  | - name: build | ||||||
|  |   image: docker.io/plugins/docker:20.18.6 | ||||||
|  |   settings: | ||||||
|  |     auto_tag: false | ||||||
|  |     dockerfile: Dockerfile | ||||||
|  |     force_tag: true | ||||||
|  |     no_cache: true | ||||||
|  |     purge: true | ||||||
|  |     mirror: | ||||||
|  |       from_secret: docker_io_mirror | ||||||
|  |     registry: git.cryptic.systems | ||||||
|  |     repo: git.cryptic.systems/volker.raschek/ansible-archlinux | ||||||
|  |     tags: latest-amd64 | ||||||
|  |     username: | ||||||
|  |       from_secret: git_cryptic_systems_container_registry_user | ||||||
|  |     password: | ||||||
|  |       from_secret: git_cryptic_systems_container_registry_password | ||||||
|  |  | ||||||
|  | - name: email-notification | ||||||
|  |   environment: | ||||||
|  |     SMTP_FROM_ADDRESS: | ||||||
|  |       from_secret: smtp_from_address | ||||||
|  |     SMTP_FROM_NAME: | ||||||
|  |       from_secret: smtp_from_name | ||||||
|  |     SMTP_HOST: | ||||||
|  |       from_secret: smtp_host | ||||||
|  |     SMTP_USERNAME: | ||||||
|  |       from_secret: smtp_username | ||||||
|  |     SMTP_PASSWORD: | ||||||
|  |       from_secret: smtp_password | ||||||
|  |   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 | ||||||
|  |   when: | ||||||
|  |     status: | ||||||
|  |     - changed | ||||||
|  |     - failure | ||||||
|  |  | ||||||
|  | trigger: | ||||||
|  |   branch: | ||||||
|  |   - master | ||||||
|  |   event: | ||||||
|  |   - cron | ||||||
|  |   - push | ||||||
|  |   repo: | ||||||
|  |   - volker.raschek/ansible-archlinux-docker | ||||||
|  |  | ||||||
|  | --- | ||||||
|  | kind: pipeline | ||||||
|  | type: kubernetes | ||||||
|  | name: latest-manifest | ||||||
|  |  | ||||||
|  | clone: | ||||||
|  |   disable: true | ||||||
|  |  | ||||||
|  | depends_on: | ||||||
|  | - latest-amd64 | ||||||
|  |  | ||||||
|  | # docker.io/plugins/manifest only for amd64 architectures available | ||||||
|  | node_selector: | ||||||
|  |   kubernetes.io/os: linux | ||||||
|  |   kubernetes.io/arch: amd64 | ||||||
|  |  | ||||||
|  | steps: | ||||||
|  | - name: clone | ||||||
|  |   image: git.cryptic.systems/volker.raschek/git:1.4.0 | ||||||
|  |  | ||||||
|  | - name: build-manifest | ||||||
|  |   image: docker.io/plugins/manifest:1.4.0 | ||||||
|  |   settings: | ||||||
|  |     auto_tag: false | ||||||
|  |     ignore_missing: true | ||||||
|  |     spec: manifest.tmpl | ||||||
|  |     username: | ||||||
|  |       from_secret: git_cryptic_systems_container_registry_user | ||||||
|  |     password: | ||||||
|  |       from_secret: git_cryptic_systems_container_registry_password | ||||||
|  |  | ||||||
|  | - name: email-notification | ||||||
|  |   environment: | ||||||
|  |     SMTP_FROM_ADDRESS: | ||||||
|  |       from_secret: smtp_from_address | ||||||
|  |     SMTP_FROM_NAME: | ||||||
|  |       from_secret: smtp_from_name | ||||||
|  |     SMTP_HOST: | ||||||
|  |       from_secret: smtp_host | ||||||
|  |     SMTP_USERNAME: | ||||||
|  |       from_secret: smtp_username | ||||||
|  |     SMTP_PASSWORD: | ||||||
|  |       from_secret: smtp_password | ||||||
|  |   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 | ||||||
|  |   resources: | ||||||
|  |     limits: | ||||||
|  |       cpu: 150 | ||||||
|  |       memory: 150M | ||||||
|  |   when: | ||||||
|  |     status: | ||||||
|  |     - changed | ||||||
|  |     - failure | ||||||
|  |  | ||||||
|  | trigger: | ||||||
|  |   branch: | ||||||
|  |   - master | ||||||
|  |   event: | ||||||
|  |   - cron | ||||||
|  |   - push | ||||||
|  |   repo: | ||||||
|  |   - volker.raschek/ansible-archlinux-docker | ||||||
|  |  | ||||||
|  | --- | ||||||
|  | kind: pipeline | ||||||
|  | type: kubernetes | ||||||
|  | name: latest-sync | ||||||
|  |  | ||||||
|  | clone: | ||||||
|  |   disable: true | ||||||
|  |  | ||||||
|  | depends_on: | ||||||
|  | - latest-manifest | ||||||
|  |  | ||||||
|  | steps: | ||||||
|  | - name: clone | ||||||
|  |   image: git.cryptic.systems/volker.raschek/git:1.4.0 | ||||||
|  |  | ||||||
|  | - name: latest-sync | ||||||
|  |   commands: | ||||||
|  |   - skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/ansible-archlinux docker.io/volkerraschek | ||||||
|  |   environment: | ||||||
|  |     SRC_CRED_USERNAME: | ||||||
|  |       from_secret: git_cryptic_systems_container_registry_user | ||||||
|  |     SRC_CRED_PASSWORD: | ||||||
|  |       from_secret: git_cryptic_systems_container_registry_password | ||||||
|  |     DEST_CRED_USERNAME: | ||||||
|  |       from_secret: container_image_registry_user | ||||||
|  |     DEST_CRED_PASSWORD: | ||||||
|  |       from_secret: container_image_registry_password | ||||||
|  |   image: quay.io/skopeo/stable:v1.17.0 | ||||||
|  |  | ||||||
|  | - name: email-notification | ||||||
|  |   environment: | ||||||
|  |     SMTP_FROM_ADDRESS: | ||||||
|  |       from_secret: smtp_from_address | ||||||
|  |     SMTP_FROM_NAME: | ||||||
|  |       from_secret: smtp_from_name | ||||||
|  |     SMTP_HOST: | ||||||
|  |       from_secret: smtp_host | ||||||
|  |     SMTP_USERNAME: | ||||||
|  |       from_secret: smtp_username | ||||||
|  |     SMTP_PASSWORD: | ||||||
|  |       from_secret: smtp_password | ||||||
|  |   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 | ||||||
|  |   resources: | ||||||
|  |     limits: | ||||||
|  |       cpu: 150 | ||||||
|  |       memory: 150M | ||||||
|  |   when: | ||||||
|  |     status: | ||||||
|  |     - changed | ||||||
|  |     - failure | ||||||
|  |  | ||||||
|  | trigger: | ||||||
|  |   branch: | ||||||
|  |   - master | ||||||
|  |   event: | ||||||
|  |   - cron | ||||||
|  |   - push | ||||||
|  |   repo: | ||||||
|  |   - volker.raschek/ansible-archlinux-docker | ||||||
| @@ -1,61 +0,0 @@ | |||||||
| name: Build |  | ||||||
|  |  | ||||||
| on: |  | ||||||
|   pull_request: |  | ||||||
|     types: |  | ||||||
|     - opened |  | ||||||
|     - reopened |  | ||||||
|     - synchronize |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|     - master |  | ||||||
|   workflow_dispatch: {} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   build-arch-linux: |  | ||||||
|     runs-on: ubuntu-latest-amd64 |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v4.3.0 |  | ||||||
|     - uses: docker/setup-qemu-action@v3.6.0 |  | ||||||
|     - uses: docker/setup-buildx-action@v3.11.1 |  | ||||||
|  |  | ||||||
|     - name: Build image |  | ||||||
|       run: | |  | ||||||
|         TAG=latest |  | ||||||
|  |  | ||||||
|         docker buildx build \ |  | ||||||
|           --file Dockerfile.archlinux \ |  | ||||||
|           --tag git.cryptic.systems/volker.raschek/ansible:${TAG}-archlinux \ |  | ||||||
|           . |  | ||||||
|  |  | ||||||
|   build-rocky-linux-8: |  | ||||||
|     runs-on: ubuntu-latest-amd64 |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v4.3.0 |  | ||||||
|     - uses: docker/setup-qemu-action@v3.6.0 |  | ||||||
|     - uses: docker/setup-buildx-action@v3.11.1 |  | ||||||
|  |  | ||||||
|     - name: Build image |  | ||||||
|       run: | |  | ||||||
|         TAG=latest |  | ||||||
|  |  | ||||||
|         docker buildx build \ |  | ||||||
|           --file Dockerfile.rockylinux8 \ |  | ||||||
|           --tag git.cryptic.systems/volker.raschek/ansible:${TAG}-rockylinux-8 \ |  | ||||||
|           . |  | ||||||
|  |  | ||||||
|   build-rocky-linux-9: |  | ||||||
|     runs-on: ubuntu-latest-amd64 |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v4.3.0 |  | ||||||
|     - uses: docker/setup-qemu-action@v3.6.0 |  | ||||||
|     - uses: docker/setup-buildx-action@v3.11.1 |  | ||||||
|  |  | ||||||
|     - name: Build image |  | ||||||
|       run: | |  | ||||||
|         TAG=latest |  | ||||||
|  |  | ||||||
|         docker buildx build \ |  | ||||||
|           --file Dockerfile.rockylinux9 \ |  | ||||||
|           --tag git.cryptic.systems/volker.raschek/ansible:${TAG}-rockylinux-9 \ |  | ||||||
|           . |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| name: 'Lint Markdown files' |  | ||||||
|  |  | ||||||
| on: |  | ||||||
|   pull_request: |  | ||||||
|     types: |  | ||||||
|     - opened |  | ||||||
|     - reopened |  | ||||||
|     - synchronize |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|     - master |  | ||||||
|   workflow_dispatch: {} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   markdown-lint: |  | ||||||
|     runs-on: |  | ||||||
|     - ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v4.3.0 |  | ||||||
|     - uses: DavidAnson/markdownlint-cli2-action@v20.0.0 |  | ||||||
|       with: |  | ||||||
|         globs: '**/*.md' |  | ||||||
| @@ -1,101 +0,0 @@ | |||||||
| name: Release |  | ||||||
|  |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     tags: |  | ||||||
|     - "**" |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   push-arch-linux: |  | ||||||
|     runs-on: ubuntu-latest-amd64 |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v4.3.0 |  | ||||||
|     - uses: docker/setup-qemu-action@v3.6.0 |  | ||||||
|     - uses: docker/setup-buildx-action@v3.11.1 |  | ||||||
|  |  | ||||||
|     - uses: docker/login-action@v3.5.0 |  | ||||||
|       with: |  | ||||||
|         registry: git.cryptic.systems |  | ||||||
|         username: ${{ github.repository_owner }} |  | ||||||
|         password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} |  | ||||||
|  |  | ||||||
|     - name: Build and push image |  | ||||||
|       run: | |  | ||||||
|         TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm') |  | ||||||
|  |  | ||||||
|         docker buildx build \ |  | ||||||
|           --file Dockerfile.archlinux \ |  | ||||||
|           --push \ |  | ||||||
|           --tag git.cryptic.systems/volker.raschek/ansible:${TAG}-archlinux \ |  | ||||||
|           . |  | ||||||
|  |  | ||||||
|   push-rocky-linux-8: |  | ||||||
|     runs-on: ubuntu-latest-amd64 |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v4.3.0 |  | ||||||
|     - uses: docker/setup-qemu-action@v3.6.0 |  | ||||||
|     - uses: docker/setup-buildx-action@v3.11.1 |  | ||||||
|  |  | ||||||
|     - uses: docker/login-action@v3.5.0 |  | ||||||
|       with: |  | ||||||
|         registry: git.cryptic.systems |  | ||||||
|         username: ${{ github.repository_owner }} |  | ||||||
|         password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} |  | ||||||
|  |  | ||||||
|     - name: Build and push image |  | ||||||
|       run: | |  | ||||||
|         TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm') |  | ||||||
|  |  | ||||||
|         docker buildx build \ |  | ||||||
|           --file Dockerfile.rockylinux8 \ |  | ||||||
|           --push \ |  | ||||||
|           --tag git.cryptic.systems/volker.raschek/ansible:${TAG}-rockylinux-8 \ |  | ||||||
|           . |  | ||||||
|  |  | ||||||
|   push-rocky-linux-9: |  | ||||||
|     runs-on: ubuntu-latest-amd64 |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v4.3.0 |  | ||||||
|     - uses: docker/setup-qemu-action@v3.6.0 |  | ||||||
|     - uses: docker/setup-buildx-action@v3.11.1 |  | ||||||
|  |  | ||||||
|     - uses: docker/login-action@v3.5.0 |  | ||||||
|       with: |  | ||||||
|         registry: git.cryptic.systems |  | ||||||
|         username: ${{ github.repository_owner }} |  | ||||||
|         password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} |  | ||||||
|  |  | ||||||
|     - name: Build and push image |  | ||||||
|       run: | |  | ||||||
|         TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm') |  | ||||||
|  |  | ||||||
|         docker buildx build \ |  | ||||||
|           --file Dockerfile.rockylinux9 \ |  | ||||||
|           --push \ |  | ||||||
|           --tag git.cryptic.systems/volker.raschek/ansible:${TAG}-rockylinux-9 \ |  | ||||||
|           . |  | ||||||
|  |  | ||||||
|   sync-to-hub-docker-io: |  | ||||||
|     needs: |  | ||||||
|     - push-arch-linux |  | ||||||
|     - push-rocky-linux-8 |  | ||||||
|     - push-rocky-linux-9 |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|     - name: Copy images to docker.io |  | ||||||
|       run: | |  | ||||||
|         TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm') |  | ||||||
|  |  | ||||||
|         apt-get update --yes |  | ||||||
|         apt-get install --yes skopeo |  | ||||||
|  |  | ||||||
|         for suffix in archlinux rockylinux-8 rockylinux-9; do |  | ||||||
|           skopeo copy \ |  | ||||||
|             --all \ |  | ||||||
|             --dest-password ${{ secrets.DOCKER_IO_PASSWORD }} \ |  | ||||||
|             --dest-username ${{ secrets.DOCKER_IO_USERNAME }} \ |  | ||||||
|             --src-password ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} \ |  | ||||||
|             --src-username volker.raschek \ |  | ||||||
|               docker://git.cryptic.systems/volker.raschek/ansible:${TAG}-${suffix} \ |  | ||||||
|               docker://docker.io/volkerraschek/ansible:${TAG}-${suffix} |  | ||||||
|         done |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| name: Update Docker Hub Description |  | ||||||
|  |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|     - master |  | ||||||
|     paths: |  | ||||||
|     - README.md |  | ||||||
|   workflow_dispatch: {} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   update-description-on-hub-docker-io: |  | ||||||
|     runs-on: |  | ||||||
|     - ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v4.3.0 |  | ||||||
|     - uses: peter-evans/dockerhub-description@v4.0.2 |  | ||||||
|       with: |  | ||||||
|         username: ${{ secrets.DOCKER_IO_USERNAME }} |  | ||||||
|         password: ${{ secrets.DOCKER_IO_PASSWORD }} |  | ||||||
|         repository: volkerraschek/ansible |  | ||||||
|         readme-filepath: README.md |  | ||||||
| @@ -45,17 +45,19 @@ MD012: | |||||||
| # MD013/line-length - Line length | # MD013/line-length - Line length | ||||||
| MD013: | MD013: | ||||||
|   # Number of characters |   # Number of characters | ||||||
|   line_length: 120 |   line_length: 80 | ||||||
|   # Number of characters for headings |   # Number of characters for headings | ||||||
|   heading_line_length: 120 |   heading_line_length: 80 | ||||||
|   # Number of characters for code blocks |   # Number of characters for code blocks | ||||||
|   code_block_line_length: 120 |   code_block_line_length: 80 | ||||||
|   # Include code blocks |   # Include code blocks | ||||||
|   code_blocks: false |   code_blocks: false | ||||||
|   # Include tables |   # Include tables | ||||||
|   tables: false |   tables: false | ||||||
|   # Include headings |   # Include headings | ||||||
|   headings: true |   headings: true | ||||||
|  |   # Include headings | ||||||
|  |   headers: true | ||||||
|   # Strict length checking |   # Strict length checking | ||||||
|   strict: false |   strict: false | ||||||
|   # Stern length checking |   # Stern length checking | ||||||
| @@ -68,6 +70,11 @@ MD022: | |||||||
|   # Blank lines below heading |   # Blank lines below heading | ||||||
|   lines_below: 1 |   lines_below: 1 | ||||||
|  |  | ||||||
|  | # MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content | ||||||
|  | MD024: | ||||||
|  |   # Only check sibling headings | ||||||
|  |   allow_different_nesting: true | ||||||
|  |  | ||||||
| # MD025/single-title/single-h1 - Multiple top-level headings in the same document | # MD025/single-title/single-h1 - Multiple top-level headings in the same document | ||||||
| MD025: | MD025: | ||||||
|   # Heading level |   # Heading level | ||||||
| @@ -122,6 +129,7 @@ MD041: | |||||||
| MD044: | MD044: | ||||||
|   # List of proper names |   # List of proper names | ||||||
|   names: [] |   names: [] | ||||||
|  |   # - some-thing | ||||||
|   # Include code blocks |   # Include code blocks | ||||||
|   code_blocks: false |   code_blocks: false | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,8 +9,6 @@ RUN pacman --sync --sysupgrade --refresh --noconfirm && \ | |||||||
|       openssl \ |       openssl \ | ||||||
|       libyaml \ |       libyaml \ | ||||||
|       python \ |       python \ | ||||||
|       python-boto3 \ |  | ||||||
|       python-botocore \ |  | ||||||
|       python-setuptools \ |       python-setuptools \ | ||||||
|       python-pip \ |       python-pip \ | ||||||
|       python-pytest \ |       python-pytest \ | ||||||
| @@ -33,7 +31,7 @@ RUN locale-gen en_US.UTF-8 | |||||||
| 
 | 
 | ||||||
| # Install Ansible inventory file | # Install Ansible inventory file | ||||||
| RUN mkdir --parents /etc/ansible | RUN mkdir --parents /etc/ansible | ||||||
| RUN echo -e "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts | RUN echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts | ||||||
| 
 | 
 | ||||||
| # Remove unnecessary getty and udev targets that result in high CPU usage when | # Remove unnecessary getty and udev targets that result in high CPU usage when | ||||||
| # using multiple containers with molecule | # using multiple containers with molecule | ||||||
| @@ -42,3 +40,4 @@ RUN rm --recursive --force /lib/systemd/system/systemd*udev* && \ | |||||||
|     rm --recursive --force /lib/systemd/system/getty.target |     rm --recursive --force /lib/systemd/system/getty.target | ||||||
| 
 | 
 | ||||||
| VOLUME [ "/sys/fs/cgroup", "/tmp", "/run"] | VOLUME [ "/sys/fs/cgroup", "/tmp", "/run"] | ||||||
|  | CMD [ "/lib/systemd/systemd" ] | ||||||
| @@ -1,32 +0,0 @@ | |||||||
| FROM docker.io/library/rockylinux:8 |  | ||||||
|  |  | ||||||
| RUN dnf update --assumeyes && \ |  | ||||||
|     dnf install --assumeyes bash-completion sudo && \ |  | ||||||
|     dnf install --assumeyes epel-release && \ |  | ||||||
|     dnf install --assumeyes ansible && \ |  | ||||||
|     dnf remove --assumeyes epel-release && \ |  | ||||||
|     dnf install --assumeyes 'dnf-command(config-manager)' && \ |  | ||||||
|     dnf config-manager --set-enabled ha && \ |  | ||||||
|     dnf install --assumeyes python3-boto3 python3-botocore && \ |  | ||||||
|     dnf clean all |  | ||||||
|  |  | ||||||
| # We must change python to 3.12 (default 3.6), to be compliant with ansible-core. Furthermore, we must upgrade pip to |  | ||||||
| # latest version. Otherwise is still used pip for python 3.6. At least, we install boto3, which is required for the aws |  | ||||||
| # dynamic inventory manually, because the official python-boto3 package is for python 3.6. At least, we install |  | ||||||
| # ansible-lint via pip to be able to lint ansible roles. |  | ||||||
| RUN alternatives --set python3 /usr/bin/python3.12 && \ |  | ||||||
|     curl --fail --silent --location https://bootstrap.pypa.io/get-pip.py --output get-pip.py && \ |  | ||||||
|     python3 get-pip.py && \ |  | ||||||
|     pip install ansible-lint boto3 |  | ||||||
|  |  | ||||||
| # Create default ansible inventory file |  | ||||||
| RUN mkdir --parents /etc/ansible |  | ||||||
| RUN echo -e "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts |  | ||||||
|  |  | ||||||
| # Remove unnecessary getty and udev targets that result in high CPU usage when |  | ||||||
| # using multiple containers with molecule |  | ||||||
| # (https://github.com/ansible/molecule/issues/1104) |  | ||||||
| RUN rm --recursive --force /lib/systemd/system/systemd*udev* && \ |  | ||||||
|     rm --recursive --force /lib/systemd/system/getty.target |  | ||||||
|  |  | ||||||
| VOLUME [ "/sys/fs/cgroup", "/tmp", "/run"] |  | ||||||
| @@ -1,30 +0,0 @@ | |||||||
| FROM docker.io/library/rockylinux:9 |  | ||||||
|  |  | ||||||
| RUN dnf update --assumeyes && \ |  | ||||||
|     dnf install --assumeyes bash-completion sudo && \ |  | ||||||
|     dnf install --assumeyes epel-release && \ |  | ||||||
|     dnf install --assumeyes ansible-core && \ |  | ||||||
|     dnf install --assumeyes python3.12 python3-boto3 python3-botocore && \ |  | ||||||
|     dnf remove --assumeyes epel-release && \ |  | ||||||
|     dnf clean all |  | ||||||
|  |  | ||||||
| # We must change python to 3.12 (default 3.9), to be compliant with ansible-core. Furthermore, we must upgrade pip to |  | ||||||
| # latest version. Otherwise is still used pip for python 3.9. At least, we install boto3, which is required for the aws |  | ||||||
| # dynamic inventory manually, because the official python-boto3 package is for python 3.9. At least, we install |  | ||||||
| # ansible-lint via pip to be able to lint ansible roles. |  | ||||||
| RUN ln --symbolic --force /usr/bin/python3.12 /usr/bin/python3 && \ |  | ||||||
|     curl --fail --silent --location https://bootstrap.pypa.io/get-pip.py --output get-pip.py && \ |  | ||||||
|     python3 get-pip.py && \ |  | ||||||
|     pip install ansible-lint boto3 |  | ||||||
|  |  | ||||||
| # Create default ansible inventory file |  | ||||||
| RUN mkdir --parents /etc/ansible |  | ||||||
| RUN echo -e "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts |  | ||||||
|  |  | ||||||
| # Remove unnecessary getty and udev targets that result in high CPU usage when |  | ||||||
| # using multiple containers with molecule |  | ||||||
| # (https://github.com/ansible/molecule/issues/1104) |  | ||||||
| RUN rm --recursive --force /lib/systemd/system/systemd*udev* && \ |  | ||||||
|     rm --recursive --force /lib/systemd/system/getty.target |  | ||||||
|  |  | ||||||
| VOLUME [ "/sys/fs/cgroup", "/tmp", "/run"] |  | ||||||
							
								
								
									
										113
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								Makefile
									
									
									
									
									
								
							| @@ -3,104 +3,41 @@ | |||||||
| # container runtime. This is needed to start and run a container image. | # container runtime. This is needed to start and run a container image. | ||||||
| CONTAINER_RUNTIME?=$(shell which podman) | CONTAINER_RUNTIME?=$(shell which podman) | ||||||
|  |  | ||||||
| # ArchLinux | # CONTAINER_IMAGE | ||||||
| ANSIBLE_ARCH_IMAGE_REGISTRY_HOST?=git.cryptic.systems | # Defines the name of the new container to be built using several variables. | ||||||
| ANSIBLE_ARCH_IMAGE_REGISTRY_USER?=volker.raschek | BUILD_IMAGE_REGISTRY_HOST:=git.cryptic.systems | ||||||
| ANSIBLE_ARCH_IMAGE_NAMESPACE?=${ANSIBLE_ARCH_IMAGE_REGISTRY_USER} | BUILD_IMAGE_REGISTRY_USER:=volker.raschek | ||||||
| ANSIBLE_ARCH_IMAGE_REPOSITORY:=ansible | BUILD_IMAGE_NAMESPACE?=${BUILD_IMAGE_REGISTRY_USER} | ||||||
| ANSIBLE_ARCH_IMAGE_VERSION?=latest | BUILD_IMAGE_REPOSITORY:=ansible-archlinux | ||||||
| ANSIBLE_ARCH_IMAGE_VERSION_SUFFIX=arch-linux | BUILD_IMAGE_VERSION?=latest | ||||||
| ANSIBLE_ARCH_IMAGE_FULLY_QUALIFIED=${ANSIBLE_ARCH_IMAGE_REGISTRY_HOST}/${ANSIBLE_ARCH_IMAGE_NAMESPACE}/${ANSIBLE_ARCH_IMAGE_REPOSITORY}:${ANSIBLE_ARCH_IMAGE_VERSION}-${ANSIBLE_ARCH_IMAGE_VERSION_SUFFIX} | BUILD_IMAGE_FULLY_QUALIFIED=${BUILD_IMAGE_REGISTRY_HOST}/${BUILD_IMAGE_NAMESPACE}/${BUILD_IMAGE_REPOSITORY}:${BUILD_IMAGE_VERSION} | ||||||
|  | BUILD_IMAGE_UNQUALIFIED=${BUILD_IMAGE_NAMESPACE}/${BUILD_IMAGE_REPOSITORY}:${BUILD_IMAGE_VERSION} | ||||||
|  |  | ||||||
| # RockyLinux8 | # BUILD CONTAINER IMAGE | ||||||
| ANSIBLE_RL8_IMAGE_REGISTRY_HOST?=git.cryptic.systems |  | ||||||
| ANSIBLE_RL8_IMAGE_REGISTRY_USER?=volker.raschek |  | ||||||
| ANSIBLE_RL8_IMAGE_NAMESPACE?=${ANSIBLE_RL8_IMAGE_REGISTRY_USER} |  | ||||||
| ANSIBLE_RL8_IMAGE_REPOSITORY:=ansible |  | ||||||
| ANSIBLE_RL8_IMAGE_VERSION?=latest |  | ||||||
| ANSIBLE_RL8_IMAGE_VERSION_SUFFIX=rockylinux-8 |  | ||||||
| ANSIBLE_RL8_IMAGE_FULLY_QUALIFIED=${ANSIBLE_RL8_IMAGE_REGISTRY_HOST}/${ANSIBLE_RL8_IMAGE_NAMESPACE}/${ANSIBLE_RL8_IMAGE_REPOSITORY}:${ANSIBLE_RL8_IMAGE_VERSION}-${ANSIBLE_RL8_IMAGE_VERSION_SUFFIX} |  | ||||||
|  |  | ||||||
| # RockyLinux9 |  | ||||||
| ANSIBLE_RL9_IMAGE_REGISTRY_HOST?=git.cryptic.systems |  | ||||||
| ANSIBLE_RL9_IMAGE_REGISTRY_USER?=volker.raschek |  | ||||||
| ANSIBLE_RL9_IMAGE_NAMESPACE?=${ANSIBLE_RL8_IMAGE_REGISTRY_USER} |  | ||||||
| ANSIBLE_RL9_IMAGE_REPOSITORY:=ansible |  | ||||||
| ANSIBLE_RL9_IMAGE_VERSION?=latest |  | ||||||
| ANSIBLE_RL9_IMAGE_VERSION_SUFFIX=rockylinux-9 |  | ||||||
| ANSIBLE_RL9_IMAGE_FULLY_QUALIFIED=${ANSIBLE_RL9_IMAGE_REGISTRY_HOST}/${ANSIBLE_RL9_IMAGE_NAMESPACE}/${ANSIBLE_RL9_IMAGE_REPOSITORY}:${ANSIBLE_RL9_IMAGE_VERSION}-${ANSIBLE_RL9_IMAGE_VERSION_SUFFIX} |  | ||||||
|  |  | ||||||
| # BUILD ANSIBLE ARCHLINUX CONTAINER IMAGE |  | ||||||
| # ============================================================================== | # ============================================================================== | ||||||
| PHONY:=container-image/build/arch-linux | PHONY:=container-image/build | ||||||
| container-image/build/arch-linux: | container-image/build: | ||||||
| 	${CONTAINER_RUNTIME} build \ | 	${CONTAINER_RUNTIME} build \ | ||||||
| 		--file Dockerfile.archlinux \ | 		--file Dockerfile \ | ||||||
| 		--no-cache \ | 		--no-cache \ | ||||||
| 		--pull \ | 		--pull \ | ||||||
| 		--tag ${ANSIBLE_ARCH_IMAGE_FULLY_QUALIFIED} \ | 		--tag ${BUILD_IMAGE_FULLY_QUALIFIED} \ | ||||||
|  | 		--tag ${BUILD_IMAGE_UNQUALIFIED} \ | ||||||
| 		. | 		. | ||||||
|  |  | ||||||
| # DELETE ANSIBLE ARCHLINUX CONTAINER IMAGE | # DELETE CONTAINER IMAGE | ||||||
| # ============================================================================== | # ============================================================================== | ||||||
| PHONY:=container-image/delete/arch-linux | PHONY:=container-image/delete | ||||||
| container-image/delete/arch-linux: | container-image/delete: | ||||||
| 	- ${CONTAINER_RUNTIME} image rm ${ANSIBLE_ARCH_IMAGE_FULLY_QUALIFIED} | 	- ${CONTAINER_RUNTIME} image rm ${BUILD_IMAGE_FULLY_QUALIFIED} ${BUILD_IMAGE_UNQUALIFIED} | ||||||
|  | 	- ${CONTAINER_RUNTIME} image rm ${BASE_IMAGE_FULLY_QUALIFIED} | ||||||
|  |  | ||||||
| # PUSH ANSIBLE ARCHLINUX CONTAINER IMAGE | # PUSH CONTAINER IMAGE | ||||||
| # ============================================================================== | # ============================================================================== | ||||||
| PHONY+=container-image/push/arch-linux | PHONY+=container-image/push | ||||||
| container-image/push/arch-linux: | container-image/push: | ||||||
| 	echo ${ANSIBLE_ARCH_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${ANSIBLE_ARCH_IMAGE_REGISTRY_HOST} --username ${ANSIBLE_ARCH_IMAGE_REGISTRY_USER} --password-stdin | 	echo ${BUILD_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${BUILD_IMAGE_REGISTRY_HOST} --username ${BUILD_IMAGE_REGISTRY_USER} --password-stdin | ||||||
| 	${CONTAINER_RUNTIME} push ${ANSIBLE_ARCH_IMAGE_FULLY_QUALIFIED} | 	${CONTAINER_RUNTIME} push ${BUILD_IMAGE_FULLY_QUALIFIED} | ||||||
|  |  | ||||||
| # BUILD ANSIBLE RL8 CONTAINER IMAGE |  | ||||||
| # ============================================================================== |  | ||||||
| PHONY:=container-image/build/rocky-linux-8 |  | ||||||
| container-image/build/rocky-linux-8: |  | ||||||
| 	${CONTAINER_RUNTIME} build \ |  | ||||||
| 		--file Dockerfile.rockylinux8 \ |  | ||||||
| 		--no-cache \ |  | ||||||
| 		--pull \ |  | ||||||
| 		--tag ${ANSIBLE_RL8_IMAGE_FULLY_QUALIFIED} \ |  | ||||||
| 		. |  | ||||||
|  |  | ||||||
| # DELETE ANSIBLE RL8 CONTAINER IMAGE |  | ||||||
| # ============================================================================== |  | ||||||
| PHONY:=container-image/delete/rocky-linux-8 |  | ||||||
| container-image/delete/rocky-linux-8: |  | ||||||
| 	- ${CONTAINER_RUNTIME} image rm ${ANSIBLE_RL8_IMAGE_FULLY_QUALIFIED} |  | ||||||
|  |  | ||||||
| # PUSH ANSIBLE RL8 CONTAINER IMAGE |  | ||||||
| # ============================================================================== |  | ||||||
| PHONY+=container-image/push/rocky-linux-8 |  | ||||||
| container-image/push/rocky-linux-8: |  | ||||||
| 	echo ${ANSIBLE_ARCH_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${ANSIBLE_ARCH_IMAGE_REGISTRY_HOST} --username ${ANSIBLE_ARCH_IMAGE_REGISTRY_USER} --password-stdin |  | ||||||
| 	${CONTAINER_RUNTIME} push ${ANSIBLE_ARCH_IMAGE_FULLY_QUALIFIED} |  | ||||||
|  |  | ||||||
| # BUILD ANSIBLE RL9 CONTAINER IMAGE |  | ||||||
| # ============================================================================== |  | ||||||
| PHONY:=container-image/build/rocky-linux-9 |  | ||||||
| container-image/build/rocky-linux-9: |  | ||||||
| 	${CONTAINER_RUNTIME} build \ |  | ||||||
| 		--file Dockerfile.rockylinux9 \ |  | ||||||
| 		--no-cache \ |  | ||||||
| 		--pull \ |  | ||||||
| 		--tag ${ANSIBLE_RL9_IMAGE_FULLY_QUALIFIED} \ |  | ||||||
| 		. |  | ||||||
|  |  | ||||||
| # DELETE ANSIBLE RL9 CONTAINER IMAGE |  | ||||||
| # ============================================================================== |  | ||||||
| PHONY:=container-image/delete/rocky-linux-9 |  | ||||||
| container-image/delete/rocky-linux-9: |  | ||||||
| 	- ${CONTAINER_RUNTIME} image rm ${ANSIBLE_RL9_IMAGE_FULLY_QUALIFIED} |  | ||||||
|  |  | ||||||
| # PUSH ANSIBLE RL9 CONTAINER IMAGE |  | ||||||
| # ============================================================================== |  | ||||||
| PHONY+=container-image/push/rocky-linux-9 |  | ||||||
| container-image/push/rocky-linux-9: |  | ||||||
| 	echo ${ANSIBLE_ARCH_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${ANSIBLE_ARCH_IMAGE_REGISTRY_HOST} --username ${ANSIBLE_ARCH_IMAGE_REGISTRY_USER} --password-stdin |  | ||||||
| 	${CONTAINER_RUNTIME} push ${ANSIBLE_ARCH_IMAGE_FULLY_QUALIFIED} |  | ||||||
|  |  | ||||||
| # PHONY | # PHONY | ||||||
| # ============================================================================== | # ============================================================================== | ||||||
|   | |||||||
							
								
								
									
										21
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,21 +1,4 @@ | |||||||
| # ansible | # ansible-archlinux-docker | ||||||
|  |  | ||||||
|  | [](https://drone.cryptic.systems/volker.raschek/ansible-archlinux-docker) | ||||||
| [](https://hub.docker.com/r/volkerraschek/ansible-archlinux) | [](https://hub.docker.com/r/volkerraschek/ansible-archlinux) | ||||||
|  |  | ||||||
| This container image can be used to execute ansible. It contains the latest versions of ansible-core, ansible-lint and |  | ||||||
| python-boto3 to interact with AWS dynamic inventory. |  | ||||||
|  |  | ||||||
| Here is an example. The environment variables as well as the path to the playbook and inventory must of course be |  | ||||||
| adapted to your own needs. |  | ||||||
|  |  | ||||||
| ```bash |  | ||||||
| docker run \ |  | ||||||
|   --env AWS_ACCESS_KEY_ID \ |  | ||||||
|   --env AWS_SECRET_ACCESS_KEY \ |  | ||||||
|   --env AWS_SESSION_TOKEN \ |  | ||||||
|   --rm \ |  | ||||||
|   --volume $(pwd):$(pwd) \ |  | ||||||
|   --workdir $(pwd) \ |  | ||||||
|     git.cryptic.systems/volker.raschek/ansible:latest \ |  | ||||||
|       bash -c "ansible-galaxy install -r requirements.yaml && ansible-playbook -i inventories/demo.aws_ec2.yaml aws.yaml" |  | ||||||
| ``` |  | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								manifest.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								manifest.tmpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | image: git.cryptic.systems/volker.raschek/ansible-archlinux:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} | ||||||
|  | {{#if build.tags}} | ||||||
|  | tags: | ||||||
|  | {{#each build.tags}} | ||||||
|  |   - {{this}} | ||||||
|  | {{/each}} | ||||||
|  |   - "latest" | ||||||
|  | {{/if}} | ||||||
|  | manifests: | ||||||
|  |   - | ||||||
|  |     image: git.cryptic.systems/volker.raschek/ansible-archlinux:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64 | ||||||
|  |     platform: | ||||||
|  |       architecture: amd64 | ||||||
|  |       os: linux | ||||||
| @@ -1,9 +1,15 @@ | |||||||
| { | { | ||||||
|   "$schema": "https://docs.renovatebot.com/renovate-schema.json", |   "$schema": "https://docs.renovatebot.com/renovate-schema.json", | ||||||
|   "extends": [ |   "assignees": [ "volker.raschek" ], | ||||||
|     "local>volker.raschek/renovate-config:default#master", |   "labels": [ "renovate" ], | ||||||
|     "local>volker.raschek/renovate-config:container#master", |   "packageRules": [ | ||||||
|     "local>volker.raschek/renovate-config:actions#master", |     { | ||||||
|     "local>volker.raschek/renovate-config:regexp#master" |       "addLabels": [ "renovate/droneci", "renovate/automerge" ], | ||||||
|   ] |       "automerge": true, | ||||||
|  |       "matchManagers": "droneci", | ||||||
|  |       "matchUpdateTypes": [ "minor", "patch"] | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "rebaseLabel": "renovate/rebase", | ||||||
|  |   "rebaseWhen": "behind-base-branch" | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user