This project facilitates the automated provisioning of a Dynamics infrastructure using Packer, VirtualBox, Terraform, Vagrant, and other tools. It deploys various servers required for Dynamics operation, such as Active Directory, SQL, Front End, Back End, and Admin servers.
Ensure you have the following tools installed on your system:
- Packer
- VirtualBox
- Terraform
- Vagrant
- Ruby
- Mustache (install using
gem install mustache
) - Zip
- Python
- Jq
- Netcat
For Windows environments, run the shell scripts using Git Bash.
- Packer is used to build the base image using an ISO install of Windows Server 2016 or 2019.
- Download the Windows Server ISO from Microsoft Evaluation Center.
- Set the ISO file path and MD5 checksum in the configuration.
- Configure Vagrant using servers.yaml to define available machines and their box URLs.
- Use Terraform directory for managing Terraform TF files for all machines.
- Puppet is used for configuring machines, mediated through a Redis server.
- Use
./scripts/build-packer.sh
to build the base image and integrate with Jenkins for automation. - Run
./scripts/build-vagrant.sh
to set up machines in Vagrant environment. - Execute
./scripts/build-terraform.sh
for provisioning machines using Terraform. - Monitor progress using test scripts and check Redis flags.
- DYNADIR: Active Directory server
- DYNSQL: SQL Server
- DYNFE: Dynamics Front End
- DYNBE: Dynamics Back End
- DYNADM: Dynamics Admin Server
- Build an AWS AMI using
./scripts/build-packer-aws.sh
. - Utilize Terraform configurations to launch instances on AWS.
- Build Azure images and instances using corresponding Terraform scripts.
- Ensure required environment variables are set for Azure credentials.
- Utilize the provided Dockerfile for easier building of the project.
- Build the Docker image with
docker build -t your:image-name .
and run usingdocker run
.
- Provided Jenkinsfile includes stages for Packer build, Terraform application, testing, and organization creation.
- Customize Jenkins pipeline based on your specific requirements.
Note: Further details and specific configurations can be found in the project structure and scripts.
Feel free to modify and enhance this README as needed for your project. Good luck with your Dynamics provisioning project! 🚀