Este repositório contém scripts e configurações para automatizar a criação de pipelines no Azure DevOps usando o Ansible AWX. O objetivo é facilitar a criação de arquivos YAML para pipelines, Dockerfiles dinâmicos, e pipelines no Azure DevOps, utilizando um fluxo completamente automatizado.
- Criação dinâmica de arquivos YAML: Gera arquivos de configuração YAML para pipelines com base em templates.
- Geração de Dockerfiles personalizados: Cria Dockerfiles configurados com base em variáveis fornecidas pelo usuário.
- Integração com Azure DevOps: Realiza commit e push de arquivos diretamente no repositório do Azure DevOps.
- Criação automática de pipelines no Azure DevOps: Utiliza a API do Azure DevOps para criar pipelines configuradas.
.
├── templates/
│ ├── pipeline.j2 # Template para o arquivo YAML da pipeline
│ └── Dockerfile.j2 # Template para o Dockerfile
├── playbook.yml # Playbook principal para automação
├── docker-compose.yml # Configuração para executar o AWX
└── README.md # Documentação do projeto
- Docker e Docker Compose instalados
- Token de acesso pessoal (PAT) do Azure DevOps
- Instância configurada do Ansible AWX
git clone https://github.com/felipebarrosd/ansible-azure-pipeline-automation.git
cd ansible-azure-pipeline-automation
Inicie os serviços necessários para o AWX:
docker-compose up -d
Acesse o AWX no navegador em: http://localhost:8052
. Use as credenciais configuradas no arquivo docker-compose.yml
.
- Crie um projeto no AWX vinculado a este repositório.
- Adicione o arquivo
playbook.yml
como template de job. - Configure as variáveis necessárias como Prompt on Launch no template do AWX:
- azure_devops_pat: Token de acesso ao Azure DevOps
- organization: Nome da organização no Azure DevOps
- azure_project: Nome do projeto no Azure DevOps
- repository_name: Nome do repositório no Azure DevOps
- branch_name: Branch onde os arquivos serão adicionados (ex.:
main
) - pipeline_name: Nome do pipeline que será criado
- yaml_path: Caminho do arquivo YAML no repositório
- dotnet_dll_name: Nome do arquivo
.dll
(ex.:Worker.dll
) - csproj: Nome do arquivo
.csproj
(ex.:MyApp.csproj
)
Ao executar o template de job no AWX:
- Os arquivos YAML e Dockerfile serão gerados e adicionados ao repositório no Azure DevOps.
- Uma pipeline será automaticamente criada no Azure DevOps.