Guzzle Deployment - ja-guzzle/guzzle_docs GitHub Wiki
- We create 2 marketplace offers for guzzle
Virtual machine (disk image): This offer will not be visible directly on marketplace. It will be used through solution template offer. This disk image will have all necessary linux packages, guzzle binaries, atlas, guzzle installer scripts etc
Solution Template: This will launch wizard with various inputs necessary for guzzle installation. When user enters necessary details and click on Create button, virtual machine will be created and guzzle installer script will trigger which will configure guzzle - We have to prepare wizard with limited components and flexibility. For example - once database credentials are entered we can't validate if credentials will work or not. Once VM is created it will trigger guzzle installer script with all input values and it will fail when database connection is needed. Guzzle installation was successful or not can be identified by only viewing log files after connecting to VM through SSH
- To fix the issue and re-run installation, user may have to identify and correct details in some property file. Since some of the steps are already performed, re-run of installer may fail. In that case user will have to remove all newly created resources and redo steps in marketplace wizard
- This same installer script can be used outside of marketplace offer
- We create 1 Virtual machine (disk image) marketplace offer for guzzle. This disk image will have all necessary packages installed for running guzzle installer. Create resource wizard in azure portal will be same as create virtual machine wizard. Once virtual machine is created, guzzle installer wizard will launch
- This guzzle installer wizard will be accessible through browser (just like guzzle app). User can follow steps in wizard and installer will keep performing installation steps like Ambari, Jenkins, Wordpress etc installer
- Since we are in control of UI, we can create complex wizard with dynamic steps. We can show certain validation errors like database credentials are invalid and if there are any error while executing installer step then user can correct input or update necessary privileges in azure resources and retry the same step in wizard
- We can capture service principal detail (or do single sign-on for user through app-registration in Azure AD of customer's subscription) in the beginning of the wizard and use it later in wizard to fetch various resource listing like resource groups, sql servers, storage accounts (whichever resources are accessible to user or service principal). Same service principal can be used to enable single sign-on in guzzle
- This same installer can be used outside of marketplace offer
- As per standard practices, we must not run multiple applications in single container. Even though we create separate containers for api, web, atlas etc, when job group/stage triggers it will run as separate application within guzzle api container
- guzzle blob storage account needs to be mounted on each container or mount it on host machine and use it as volume mount in container. This will increase installation complexity
- If we are considering azure marketplace container type of offers, As far as I know it is for single container application (which can be created using Dockerfile). In our case we need set of containers work together. Above 2 points were mentioned considering docker running in single VM
Follow manual install steps for any custom type of deployment