{"id":20509159,"url":"https://github.com/shinesolutions/aem-helloworld-custom-image-provisioner","last_synced_at":"2025-06-22T15:37:27.341Z","repository":{"id":55998605,"uuid":"141963520","full_name":"shinesolutions/aem-helloworld-custom-image-provisioner","owner":"shinesolutions","description":"Example AEM Hello World custom image provisioner","archived":false,"fork":false,"pushed_at":"2024-05-07T05:36:45.000Z","size":5972,"stargazers_count":1,"open_issues_count":1,"forks_count":4,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-06-05T06:27:19.079Z","etag":null,"topics":["aem","aem-opencloud"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shinesolutions.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-23T05:02:46.000Z","updated_at":"2024-05-07T05:36:48.000Z","dependencies_parsed_at":"2024-11-15T20:36:29.782Z","dependency_job_id":null,"html_url":"https://github.com/shinesolutions/aem-helloworld-custom-image-provisioner","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/shinesolutions/aem-helloworld-custom-image-provisioner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinesolutions%2Faem-helloworld-custom-image-provisioner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinesolutions%2Faem-helloworld-custom-image-provisioner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinesolutions%2Faem-helloworld-custom-image-provisioner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinesolutions%2Faem-helloworld-custom-image-provisioner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shinesolutions","download_url":"https://codeload.github.com/shinesolutions/aem-helloworld-custom-image-provisioner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinesolutions%2Faem-helloworld-custom-image-provisioner/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261316093,"owners_count":23140399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aem","aem-opencloud"],"created_at":"2024-11-15T20:22:55.975Z","updated_at":"2025-06-22T15:37:22.327Z","avatar_url":"https://github.com/shinesolutions.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://github.com/shinesolutions/aem-helloworld-custom-image-provisioner/workflows/CI/badge.svg)](https://github.com/shinesolutions/aem-helloworld-custom-image-provisioner/actions?query=workflow%3ACI)\n[![Known Vulnerabilities](https://snyk.io/test/github/shinesolutions/aem-helloworld-custom-image-provisioner/badge.svg)](https://snyk.io/test/github/shinesolutions/aem-helloworld-custom-image-provisioner)\n\n# AEM Hello World Custom Image Provisioner\n\nThis is an example AEM Hello World Custom Image Provisioner artifact that will be set up as one of [Packer AEM customisation points](https://github.com/shinesolutions/packer-aem/blob/main/docs/customisation-points.md#custom-image-provisioner).\n\nThis artifact contains:\n* `pre-common.sh` shell script which will be executed before component image provisioning\n* `post-common.sh` shell script which will be executed after component image provisioning\n* Example [Puppet module](https://puppet.com/docs/puppet/5.3/modules_fundamentals.html) manifests in `modules/aem_helloworld` directory\n* Example [InSpec tests](https://www.inspec.io/) which will check the result of the above Puppet module, the binary is available at `/opt/puppetlabs/puppet/bin/inspec`\n\nHere's an example log output of the post step:\n\n\u003cimg src=\"https://raw.githubusercontent.com/shinesolutions/aem-helloworld-custom-image-provisioner/master/docs/post-step-log.png\" width=\"800\"/\u003e\n\nThe use of Puppet and InSpec here is just an example. You can use other tools like Ansible, or even plain shell script if need be. They can be installed either in the pre-common.sh/post-common.sh shell scripts or in [Packer AEM source image](https://github.com/shinesolutions/packer-aem/blob/main/docs/customisation-points.md#source-image).\n\n## Usage\n\nTo create artifact tar.gz file:\n\n    make package\n\nThe artifact will be written at `stage/aem-helloworld-custom-image-provisioner-\u003cversion\u003e.tar.gz`\n\nCopy the tar.gz artifact file to Packer AEM, please note that the file must be (re)named to `aem-custom-image-provisioner.tar.gz`:\n\n    cp stage/aem-helloworld-custom-image-provisioner-\u003cversion\u003e.tar.gz \u003cpath/to/packer-aem\u003e/stage/custom/aem-custom-image-provisioner.tar.gz\n\nIf you are using Puppet, the following global facts are available:\n\n| Fact | Description |\n|------|-------------|\n| `::component` | The component name, useful for identifying which image is being provisioned. |\n| `::custom_stage_run_info` | A user defined string for passing additional provisioning run information. User can inject this value by specifying environment variable `CUSTOM_STAGE_RUN_INFO` when executing Packer AEM build. |\n\nIf you need more information from the provisioning process, you can tap into the Hiera data by adding `-hiera_config='/tmp/packer-puppet-masterless/hiera.yaml` flag to your Puppet apply call.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinesolutions%2Faem-helloworld-custom-image-provisioner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshinesolutions%2Faem-helloworld-custom-image-provisioner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinesolutions%2Faem-helloworld-custom-image-provisioner/lists"}