How can i pass variables to Azure Marketplace VM offer - azure

I am publishing an app to the Azure Marketplace. My offer is a VM. My use case is that i need the customer to enter some values that will be used to call a script in the VM. How can i pass custom variables to the VM during launch?

According to this you can only customize them with SKU's, so this means any post deployment configurations are to be done by the customer.
What you see to need is an Azure Application Offer. That one would contain a way to customize it.

Related

How to programmatically update Networking Access Restriction on Azure Web App

I have an Azure webapp and normally if I want to block an IP address, I go to Azure dashboard panel and under networking>Configure Access Restrictions, I add a rule to do so. This picture shows which menu item I mean:
However, I would like to do this programmatically. I see that the documentation shows how you can do this through Powershell.
I have also managed to find the API documentation for WebApp. But I can't find the last piece of the puzzle which is the API that does what I need.
Can someone please tell me if it is possible and which API I should use? Thank you in advance.
According to the doc: Use an Azure REST API PUT operation on the app configuration in Azure Resource Manager. The location for this information in Azure Resource Manager is:
management.azure.com/subscriptions/subscription ID/resourceGroups/resource groups/providers/Microsoft.Web/sites/web app name/config/web?api-version=2020-06-01
Then I searched the Azure Rest API and found this:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web?api-version=2019-08-01
We could update the field properties.ipSecurityRestrictions to update the value of Access Restrictions.
In addition, you could also check this blog: Bulk add IP Access Restrictions to Azure App Service using Az PowerShell
There does not appear to be a one-to-one match between powershell commands and api.
The closest I could find is:
https://learn.microsoft.com/en-us/rest/api/appservice/webapps/putprivateaccessvnet
This allows you to define which vnet has access to your web app. By controlling access to your vnet, you can control access to your app.

Azure arm intelligent provisioning

I'm trying to set a standard virtual machine template via ARM deployed on the azure portal and feel I'm missing a trick.
When deploying a virtual machine via azure you can select existing vnets and based off your selection you can select a subnet.
Via the ARM template deployment method I do not see a way other then putting all the subnets in the allowed values and hoping the end user chooses the right one.
Can anyone help?
theres no easy way of doing this currently. Managed Applications might be of a value there, but they are not exactly arm templates. But they have some controls to allow for "smart" value picking.
I suppose I can generate a powershell script that queries azure dependant on selections and fill in the arm template from said selections. Just would be nice if could have built in the intelligence within ARM deployment.
Thank you for the managed applications information

Publishing a web application on Azure

I want to publish an web application on Azure market place.
I can create a Linux VM, install Java, Tomcat, SQL server and create an image of it. But instead of that, is it possible to create a tomcat instance along with database on Azure portal, add it to a resource group and publish this resource group on market place?
Would this approach be more advantageous?
thanks
As per the doc here:
https://learn.microsoft.com/en-us/azure/marketplace-publishing/marketplace-publishing-getting-started
Azure Marketplace offerings are based on Azure VM images or solution templates, your current solution would be the VM based route. It sounds like you may want to look at the solution template route to leverage other capabilities such as Azure SQL Server.
Neither route enable "publish this resource group to the market place". If that is the route you are aiming for that is essentially building out a multi-tenant application which is a bigger task and perhaps something like this link will help get you started:
https://azure.microsoft.com/en-gb/blog/with-newly-available-services-azure-continues-to-be-the-best-place-for-software-as-a-service-developers/
There are also other stackoverflow answers which may be of help:
Does a developer have to pay for publishing a SaaS app on Windows Azure Marketplace?
How can i publish my web solution to Marketplace

Can I export my Azure subscription's entire configuration?

Is it possible, using the Azure portal or some other means, to export the subscriptions configuration, for example as an XML file?
I mean things like details of web sites / roles, virtual machines, the size of the machines etc?
Then I could export every day and use a diff tool to check nothing has changed by mistake....
Just thought I'd ask before I write a giant PowerShell script.
I agree this would be a nice feature to have. It's often easier to build out the environment via the portal, but copying that from one tenant (dev) to another (prod) would be much faster and easier if it could be exported to JSON or XML and processed via PowerShell.
Azure Resource manager however does not support resources like Cloud Services, API Management, Mobile Services, Azure Scheduler, Azure Automation, Azure Active Directory, Recovery Services, Media Services, etc. ...
So the summary is - No, there is no such service yet to help you export all your subscriptions configurations.
If you just look for Virtual Machines and Web Sites, then Azure Resource Manager may be in help. But if you look for a complete backup - there is no way to easily achieve this today (2015-03-17).
Probably you could write some Powershell script combining the power of Azure Service Management + Azure Resource Manager, but frankly I am not really sure whether that would also help.

Azure worker role automation

I created my custom Azure Worker Role. This code is ready. What I'm trying to do is to create instances of this Azure-Worker-Role in specific Azure data-center, at the requested time. For example, I'm want to send command to Azure to create 10 instances of my Custom-Azure-Worker in West-Europe data-center - now.
It's important to pass this command also a parameter that will be the input problem to be solved by my workers.
I pretty sure that this automation task must be covered by Azure automation. Is that true? Looking for more information\directions.
Thank you!
You can use Azure Management Libraries to create and deploy your cloud services from C# code. Just create application (eg ASP.NET MVC) to manage your cloud services by sending commands and deploy it also on Azure or even keep it locally.
See this article for more details http://www.bradygaster.com/post/getting-started-with-the-windows-azure-management-libraries
You'll want to leverage the service management API to spin up and tear down roles. It can be accessed any number of way, including directly via REST.
RE: providing a parameter to the worker role, one option is leveraging the cloud service configuration file that you provide with the cspkg. Define specifics for the role there.
Depending on the complexity or simplicity of your scenario, you may also get away with simply having a table in storage that you personally poke with desired configuration values and that the worker can read to retrieve.
The Azure Automation service should definitely be able to automate this task for you. Anything you can script via the Azure PowerShell module, can be imported as a runbook and called manually, via a third-party system, or on a schedule in Azure Automation.
Whether there is an existing runbook for the specific task you are looking to automate, I do not know. But Azure Automation has a gallery of community-contributed content for many common processes, so this may be available there.

Resources