I'm new to Devops and Azure Devops.
I need to create a pipeline that would be able to deploy external API's to one APIM using Swagger.
Swagger is also new to me. However, I learnt that I would need to have a repo with the swagger.yaml file. However, I'm not sure how I can then create a build that can then be sent to Azure Portal.
Is there a way to do this? I apologize if this is a stupid question, but these concepts are all relatively new to me.
You can add a special Task to accomplish this.
I'd reccommend this one due its simplicity:
You need to configure a couple of things in there.
Here's a full-detailed tutorial that I hope you'll find it useful: https://lurumad.github.io/continous-delivery-to-azure-api-management-using-azure-devops-pipelines
Related
I am trying using Azure DevOps Toolkit for APIM CI/CD pipeline. I have followed the YouTube video for setting it up. Looks like the setup shown in the video is quite outdated. It is difficult to find proper resources for setting up APIM CI/CD implementation. We cannot use dotnet-apim as customer wont encourage to use personally maintained source code.
We are not sure how they came up with a starter dev source repository from APIM. Whenever we extract the current APIM, we are not getting APIM master template.
Is it advisable to use this tool or approach for a production environment? If anybody setup this toolkit and ci/cd pipeline for apim, kindly help with some guidelines.
I have an existing app service running on Azure that I previously published directly from Visual Studio. I am trying to get to grips with using DevOps and was wondering if it is possible to add a CI/CD pipeline to an existing app service.
I have seen a lot of tutorials on the web about how to create a pipeline for a new app service (many, of course, are out of date and do not actually relate to what one sees in the Azure portal!) So far, though, I have not come across anything about adding this to an existing app service.
Any advice or links to handy tutorials would be greatly appreciated!
I am hoping that the answer is not delete the existing service and start again from scratch!
If you are a beginner on Azure Devops, I will recommend to use the Azure Devops Starter project to create a pipeline, you can pick AppService as the deployment.
Once the pipelines are created on the Azure Devops , just open the pipeline and select the existing AppService where you want to deploy and also the source from where you want to pull the code. This makes easier rather than creating the stuffs from the scratch.
I have a project that consists of an Azure webapp, a PostgreSQL on Azure, and multiple Azure functions for background ETL workflows. I also have a local Python package that I need to access from both the webapp and the Azure functions.
How can I structure configuration and script deployment for those resources from a single git repo?
Any suggestions or pointers to good examples or tutorials would be very appreciated.
All the Azure tutorials that I've seen are only for small and simple projects.
For now, I've hand-written an admin.py script that does e.g. the webapp and function deployments by creating a Python package, creating ZIP files for each resource and doing ZIP deployments. This is getting messy, and now I want to have QA and PROD versions, and I need to pass secrets so that the DB is reachable, and it's getting more complex. Is there either a nice way to structure this packaging / deployment, or a tool to help with it? For me, putting everything in Kubernetes is not the solution, at least the DB already exists. Also, Azure DevOps is not an option, we are using Gitlab CI, so eventually I want to have a solution that can run on CI/CD there.
Not sure if this will help complete but here we go.
Instead of using a hand-written admin.py script, try using a yaml pipeline flow. For Gitlab, they have https://docs.gitlab.com/ee/ci/yaml/ that you can use to get started. From what you've indicated, I would recommend having several job steps in your yaml pipeline that will build and package your web and function apps. For deployment, you can make use of environments. Have a look at https://docs.gitlab.com/ee/ci/multi_project_pipelines.html as well which illustrates how you can create downstream pipelines.
From a deployment standpoint, the current integration I've found between Azure and GitLab leaves me with two recommendations:
Leverage the script command of yaml to continue zipping your artifacts use Azure CLI (I would assume you can install the tools during the pipeline) to zip deploy.
Keep your code inside the GitLab repo and utilize Azure Pipelines to handle the CI/CD for you.
I hope you find this helpful.
I would like to perform the following steps on schedule (presumably using Azure Automation):
Provision a VM in Azure
Run a powershell script on that VM
Deprovision VM
Actually I have more steps but left only 3 for simplicity.
I am new to IaC and appreciate your general guidance and advice.
Is it scope of Azure Automation or I need something else?
I would like to code everything in text format and put in Git and update automatically via Pull Requests
Should I use Runbooks or DSC?
Regarding step 2, I cannot figure out how I can upload my powersehll script into newly created VM and run it locally. The script downloads some files and updates some remote resources.
Thanks,
Ruslan
there are a lot of options and tools to achieve your goal.
If you will be working strictly in the Azure cloud, The following tools are most commonly used for building an environment.
Azure-powershell
Azure-CLI
ARM-templates
each of them very similar but all a little different with their own benefits to them, but they are all tools for building your virtual infrastructure. For configuring your resources there are other tools. Like you mentioned yourself, DSC is a tool to configure virtual machines.
if you are planning to use github to push your code, i would recommend using ARM-templates. You can very easily use your own or other templates by referencing in your code. However this might be the 'hardest' solution to learn and understand the syntax in comparison to the cli and powershell. But also the most frequently used.
It is possible to build your environment and configure it in the same script using the Azure-CLI, Azure-Powershell or an other opensource solution like Terraform, But this is not best practice.
A lot of starter scripts are publicly available on github and in the Microsoft docs.
if you have any specific questions you can always send me a message, i am currently working on azure automation myself.
I would like to connect Azure Functions to a repository where on each master push functions would be redeployed along with artifacts (Project.json, function.json, etc). Is there anything already in place? If not, anything planned?
Sean,
Since Azure Functions sits on top of App Service/Web Apps, this is a fully supported scenario and you can find detailed information on the deployment process here
I also have deployment scripts you can use with your function to make sure your packages are properly restored on deployment here (you can find more information about how to use the script here)
Hope this helps!