Possible to connect local PowerShell to Azure Runbooks? - azure

I'm looking for a way to use my machine-local PowerShell ISE or VSCode to connect to Azure Runbooks. Usually, one has to scaffold locally and then test in the cloud in an Azure runbook. Has anybody ever done this?
One way I'm looking into it is this idea but I was wondering if you knew of something more convenient.

To connect from local (VScode) to Azure Runbooks:
Thanking #Kaido Järvemets for detailed steps. I've tried by considering few steps from there and was able to connect successfully.
Check for Azure Automation extension in Visual Studio code.
To work with Azure automation from local, we need to set up a few settings by searching "Preferences: User settings" (ctrl+shift+p).
Register a new application under Azure Active Directory and add the respective "client_id, client_secret, automation_account_name, subscription_id,tenant_id" in extension settings of Azure Automation configuration.
Give the required permissions in Automation Account -> Access Control (IAM) as shown here:
Created a PowerShell runbook script to run connect-AzAccount under Azure Automation Account through portal.
Opened the same runbook in Azure Automation and was able to connect from local (vscode)to Azure.
Note: Search for Automation explorer (ctrl+shift+p) and create a new runbook if needed. you can run the same script in Azure portal also & it will work as described above.

Related

Running Azure runbook from Powershell script

I have an app running on a local machine that I want to be able to run a powershell script to turn on my Azure Vm's. I have a runbook in my subscription to turn them on and have the functionality to run the runbook. from the Powershell script. My only problem right now is authenticating to my Azure subscription. I have a Automation account and the connection and certificate that comes with it but I'm a bit confused as to whether or not I can use this to perform this functionality.
you could use service principal auth, or certificate auth (well, azure ad user auth as well, but somehow microsoft thinks its not safe enough).
Basically go through this link: https://blogs.msdn.microsoft.com/benjaminperkins/2017/01/20/execute-an-azure-powershell-arm-script-without-prompting-for-credentials
ps. one fine option for locally running script: Enable-AzureRmContextAutosave, which would allow you to auth once and after that just reuse that auth on you local powershell

Runbook deployment on Azure Stack

Please help me with any document or link to how to deploy a Runbook on Azure Stack. I know we can do it in azure portal though. But I am not getting the exact procedure how to proceed in Azure Stack. We have public cloud where we have the policy applied , so that it will behave like a stack. But when I try to create an automation account policy is disallowing to create the automation account. Hence I am skeptical now how to create an automation account and in turn deploy a Runbook in azure stack.As an alternative we are also trying out Visual Studio to create ARM template and deploy runbooks. Please suggest if anybody has any pointers any other way to do workflow automation in azure stack.
Thanks...
Azure automation is currently not supported on Azure Stack. This is already known to the Automation team and it would be helpful if you can up vote on this feedback as well: https://feedback.azure.com/forums/246290-automation/suggestions/32099044-bring-azure-automation-and-dsc-to-azure-stack
You create a log analytic workspace in azure and link that to the stack. that way you can create an automation account and enable inventory, update management and maybe runbooks.

Deploying AzureRM Web App with VSTS automatically

I am trying to follow https://blogs.msdn.microsoft.com/tfssetup/2016/04/01/build-and-deploy-azure-web-apps-using-team-foundation-serverservices-vnext-builds/.
I have no issues deploying the web app manually from Visual Studio using PublishingSettings and Publish option. I just want to automate the process and I am stuck at this step:
The article clearly advises
Select the Certificate Based connection. This is very important when
you are trying to deploy. Credential based Microsoft Account
(#outlook, #hotmail) are no longer supported and only Organizational
accounts are. Even then, if they use Two-Factor Authentication(2FA),
the build will fail trying to connect to Azure.
This is correct and if I try to use Credentials, my deployment fails with unknown_user_type: Unknown User Type
There was an error with the Azure credentials used for deployment. message.
So >> Certificate. But in my PublishSettings file there is no Management Certificate and as per this article
Azure Management Certificates and Publishing Setting files (...) are
only intended and limited to manage Azure Service Management (ASM)
resources
I tried this option:
But VSTS is not connected to the Azure environment (considering that Azure belongs to one Customer and VSTS to another, is it even possible?).
My questions:
* Is it the deployment somehow possible with PublishSettings file?
* Should the "Credentials" option work if I am using an organizational account Me#Company.com?
* How else can I try?
EDIT
Your solution could be creating a service principal in Azure and connect it to VSTS. The automatic Build from VSTS should then be published to Azure automatically. Here you find how to setup the service principal and connect it to VSTS: https://www.petri.com/connect-visual-studio-team-services-azure-using-service-principal-name
I am not sure right now, whether you are using TFS or VSTS?! When I publish a Web App in VSTS, the ARM Service Endpoints works well:

Azure VM with cli

Is there a way to authenticate to Azure without any login on an Azure VM? Same feature like amazon instance profile so I can run azure commands without authentication
I don't think it is possible to communicate with Azure cloud without authentication like AWS using the instance profile. In Azure you have to use service principle with respective role(Reader, contributor or owner) assigned. Once service principle is created you can use it for authentication with Azure SDK or REST API. You can automate once you have service principle details.
You can use Azure CLI.
The authentication can be done using the Publish Settings file.
This is useful if you wish to use Azure CLI commands in a script etc.
You can download the file by using
azure account download
Make sure you keep this file safe as it provides direct access to your azure account.
Then authentication is a simple process of importing the file using
azure account import /path/to/.publishsettings_file
Now deployment commands can be run on the command line without logging in.
Scroll to the section public settings file in the link for more info on how to use the publish settings file.

How to create an Azure Website programmatically using Azure PowerShell commands in C#?

I found all Azure Management Cmdlets here:
Windows Azure Management Cmdlets.
My question is how can I use these cmdlets in C# to create, remove and deploy an Azure Website?
Windows Azure managemnet cmdlets have been updated and now it includes web site creation. Check it here.
Without azure login we can not fire any command. We can Create Website in following steps.
Login to AzureAccount (Add-AzureAccount)
Setup The Azure Subscription (Get-AzureSubscription)
Select Azure Subscription (Select-AzureSubscription -Name AzureSubName)
Then We Can Deploy Azure site here
Ref to deploy site : http://blogs.msdn.com/b/cdndevs/archive/2015/04/23/azure-powershell-azure-websites-for-the-command-line-junkies-part-1.aspx
Here is a link to the samples from my book, PowerShell for Developers.
This example embeds the PowerShell engine in a C# application. You can then call the Azure PowerShell cmdlets and/or external PowerShell scripts that contain the workflow that you develop.
http://goo.gl/4kiYa

Resources