{"id":12715,"date":"2018-09-06T16:59:55","date_gmt":"2018-09-06T16:59:55","guid":{"rendered":"https:\/\/blog.jetbrains.com\/teamcity\/?p=6725"},"modified":"2018-09-06T16:59:55","modified_gmt":"2018-09-06T16:59:55","slug":"teamcity-on-azure-marketplace","status":"publish","type":"teamcity","link":"https:\/\/blog.jetbrains.com\/fr\/teamcity\/2018\/09\/teamcity-on-azure-marketplace","title":{"rendered":"TeamCity on Azure Marketplace"},"content":{"rendered":"<p>Some time ago we announced TeamCity <a href=\"https:\/\/blog.jetbrains.com\/teamcity\/2018\/02\/the-official-teamcity-azure-resource-manager-template\/\">Azure Resource Manager <\/a>for TeamCity deployment in Azure cloud. Now we&#8217;re glad to provide the <a href=\"https:\/\/azuremarketplace.microsoft.com\/en-us\/marketplace\/apps\/jetbrains.teamcity?tab=Overview\" target=\"_blank\" rel=\"noopener\">TeamCity offer<\/a> in the Azure Marketplace for streamlined TeamCity setup.<\/p>\n<p>It is also available as a <a href=\"https:\/\/www.jetbrains.com\/teamcity\/download\/#section=azure\" target=\"_blank\" rel=\"noopener\">TeamCity<\/a> download option on the official JetBrains site:<\/p>\n<p><a href=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-site-deploy-2-azure.png\" rel=\"attachment wp-att-6727\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-6727\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-site-deploy-2-azure.png\" alt=\"teamcity-site-deploy-2-azure\" width=\"2046\" height=\"1326\" \/><\/a><\/p>\n<p>The offer lets you run a JetBrains <a href=\"https:\/\/www.jetbrains.com\/teamcity\" target=\"_blank\" rel=\"noopener\">TeamCity<\/a> server and a local agent on an Azure Linux VM in Azure.<\/p>\n<p>Today we\u2019ll go over a TeamCity instance setup on Azure, which will save you time and effort of configuration tasks.<\/p>\n<h2>Prerequisites<\/h2>\n<p>You\u2019ll need an Azure subscription and about 10 minutes to set up TeamCity.<br \/>\nNote: Make sure you have a contributor and user access administrator <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/role-based-access-control\/built-in-roles\" target=\"_blank\" rel=\"noopener\">roles<\/a> on Azure.<\/p>\n<h2>Installation<\/h2>\n<p>Most of the TeamCity installation is automated, all you need to do is perform a few steps:<\/p>\n<ol>\n<li>Log in to the Azure portal.<\/li>\n<li>In your browser, open the <a href=\"https:\/\/azuremarketplace.microsoft.com\/en-us\/marketplace\/apps\/jetbrains.teamcity?tab=Overview\" target=\"_blank\" rel=\"noopener\">TeamCity offer<\/a> in the Azure Marketplace.<\/li>\n<li>Select GET IT NOW<\/li>\n<li>Review the pricing and terms information, select <b>Continue<\/b>.<\/li>\n<li>Select <b>Create<\/b> at the bottom of the page to configure a TeamCity installation.<\/li>\n<li>Configure settings:\n<ol>\n<li>In the <b>Basics <\/b>tab, create a new resource group, in our case teamcity_demo:<\/li>\n<li>Configure Virtual machine settings: provide the username and authentication type. The recommended approach is to use SSH key for that. Password authentication is not recommended due to the <a href=\"https:\/\/github.com\/coreos\/coreos-metadata\/issues\/109\" target=\"_blank\" rel=\"noopener\">known issue with CoreOS metadata<\/a> service which breaks the startup of the default build agent. The Domain name label, DNS Prefix for the TeamCity server, will be auto-filled for you. If editing it, make sure it is globally unique.<br \/>\nAt this step, you also need to configure and save the subnet settings. Click OK to save the Virtual Machine settings.<\/li>\n<li>On the<b> Additional Settings<\/b> tab, select the TeamCity installation size and provide a password for the MySQL database of your TeamCity instance.<\/li>\n<li>Review the summary on the next screen. If required, download the template and parameters on your local machine for future use. Go on creating the TeamCity instance by clicking <b>Ok.<\/b><\/li>\n<\/ol>\n<\/li>\n<li>Review the privacy policy and if you agree, proceed by using <b>Create<\/b>. The deployment in progress message appears and you can click on it or the notification icon at the top to review the progress. The Operation Details link can be useful if an error occurs.<\/li>\n<li>Click Refresh. Upon a successful installation you\u2019ll see the TeamCity URL name in the deployment <b>Outputs <\/b>tab:<br \/>\n<a href=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-outputs-DNS.png\" rel=\"attachment wp-att-6729\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-6729\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-outputs-DNS.png\" alt=\"teamcity-outputs-DNS\" width=\"2430\" height=\"647\" \/><\/a><\/li>\n<\/ol>\n<p>That\u2019s it! Now you can use the URL to access your TeamCity instance: you\u2019ll need to accept the license agreement and set up the administrator account credentials.<\/p>\n<p>You are ready to use your TeamCity installation, which includes the server and one local agent. See the TeamCity Quick start guide to <a href=\"https:\/\/confluence.jetbrains.com\/display\/TCD18\/Configure+and+Run+Your+First+Build#ConfigureandRunYourFirstBuild-Createyourfirstproject\" target=\"_blank\" rel=\"noopener\">configure and run your first build<\/a>.<\/p>\n<p>You might also want to expand your installation and make it more flexible by performing a couple of additional steps.<\/p>\n<h3>Adding Azure agents<\/h3>\n<p>Your TeamCity setup includes a TeamCity server and a local agent. You can add more agents to your installation using the cloud profile:<\/p>\n<p>In the TeamCity Web UI, go to the <b>Project Settings |<\/b> <b>Cloud Profiles<\/b> and select Azure to create a cloud profile to start TeamCity agents:<a href=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-profile.png\" rel=\"attachment wp-att-6732\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-6732\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-profile.png\" alt=\"teamcity-profile\" width=\"1838\" height=\"1903\" \/><\/a><\/p>\n<p>Configure a VM image:<\/p>\n<p>Select teamcity-demo resource group, set container (preview) as the image type, and specify the jetbrains\/teamcity-agent docker image. Configure the remaining settings and save them.<\/p>\n<p>Note that specifying the storage account will persist container volumes in Azure, preventing the agent upgrade on each start.<\/p>\n<p><a href=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-profile-image.png\" rel=\"attachment wp-att-6733\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-6733\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-profile-image.png\" alt=\"teamcity-profile-image\" width=\"600\" \/><\/a><\/p>\n<p>After you finish the setup, it\u2019ll take the agent about 10 min to connect to the TeamCity server: this time is required to start a VM from the created image, then the machine needs to download all the required plugins, etc.<\/p>\n<p>The connected agent will be visible on the agent page:<\/p>\n<p><a href=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity_agents2.png\" rel=\"attachment wp-att-6734\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-6734\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity_agents2.png\" alt=\"teamcity_agents2\" width=\"963\" height=\"295\" \/><\/a><\/p>\n<h3>Configuring artifact storage<\/h3>\n<p>By default, TeamCity uses built-in storage for <a href=\"https:\/\/confluence.jetbrains.com\/display\/TCD18\/Build+Artifact\" target=\"_blank\" rel=\"noopener\">artifacts<\/a>. To switch to Azure cloud storage, perform the following:<\/p>\n<ol>\n<li>In the TeamCity Web UI, go to the<b> Project Settings | Artifacts Storage<\/b> tab. The built-in TeamCity artifacts storage is displayed by default and marked as active.<\/li>\n<li>Click <b>Add new storage<\/b>. Select Azure as the storage type. Optionally, provide a name for your storage.<\/li>\n<li>Supply your storage credentials:\n<ol>\n<li>in the Azure portal, go to Storage accounts -&gt; Access keys and copy the storage account name<\/li>\n<li>paste it to the account name in the TeamCity.<\/li>\n<li>Perform the same for the key &#8211; any of the two keys available on the portal will work.<\/li>\n<\/ol>\n<\/li>\n<li>Save your settings.<\/li>\n<li>The configured Azure storage will appear on the Artifacts storage page. Make it active using the corresponding link.<br \/>\n<a href=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-artifact-storage-active.png\" rel=\"attachment wp-att-6735\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-6735\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/09\/teamcity-teamcity-artifact-storage-active.png\" alt=\"teamcity-artifact-storage-active\" width=\"2272\" height=\"810\" \/><\/a><\/li>\n<\/ol>\n<p>Now TeamCity will store build artifacts externally.<\/p>\n<p><em>Happy building!<\/em><\/p>\n","protected":false},"author":236,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","categories":[11,89,12],"tags":[91],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/teamcity\/12715"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/teamcity"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/teamcity"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/236"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=12715"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/teamcity\/12715\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=12715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=12715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=12715"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=12715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}