2016-04-14 3 views
1

TeamCityとOctopus Deploy(バージョン3.3.6)を使用して、Sitecore Webサイトの自動展開プロジェクトを設定しています。Octopus Deployを使用してAzure App Service Webサイトのフォルダを削除する方法

「Azure Web Appをデプロイする」ステップを使用してApp Serviceにデプロイする前に、そのサイトの1つのフォルダ(/ site/wwwroot/App_Config/IncludeまたはD:\ home \ site \ wwwroot \ App_Config \ Include)。

Octopusにはこれを行うためのメカニズムが組み込まれていますか? Powershellスクリプトを使用しようとしましたが、Azureではなくサーバー上で実行されます。デプロイ中にAzureでPowershellスクリプトを実行する方法はありますか? または、認証する必要なく(Octopusが認証を行っているので)AppサービスのWebサイトでファイル操作を行うために「Azure Powershellスクリプトを実行する」を使用できますか?

または、ビルドサーバー上のファイルに資格情報を保存しなくてもこれを解決する他の/より良い解決策がありますか?

これを可能な限り使用することをお勧めします。

答えて

1

私はこれを行うだろう:

  1. はアズールでのオンデマンドwebjobを作成してウェブアプリケーションにフォルダをクリーンアップすることができますPowerShellスクリプトをアップロードします。このpsスクリプトを単純なままにして、ベースコマンドレットコマンドを使用してください。すべてのpsモジュールがazureで動作するわけではありません。 How:https://blogs.msdn.microsoft.com/nicktrog/2014/01/22/running-powershell-web-jobs-on-azure-websites/

  2. Webjobを開始するためにpowershellラインを実行するには、まだチームシップまたはタコが必要です。これで、作業負荷はOctopusサーバーにはもうありませんが、PowerShellのラインには同じ空白の認証プロセスが必要です。 方法:タコは、あなたがAzureのPowerShellのモジュールをロードし、Azureのサブスクリプショントリックを行うことができますには、スクリプトまたは再内のライブラリを含める必要はありませんので、http://www.nullfactory.net/2015/05/start-azure-webjobs-on-demand/

、「AzureのPowerShellのスクリプトの実行」 -認証する。それはまだローカルに実行されますが、ステップ#2はこれによく当てはまります。

希望すると、これが役立ちます。

+0

誰もがPowerShellのAzureRM.Resources'モジュールからWebJobsを作成する方法上の任意のアイデアを持っていますか? – SOReader

0

結局、私はとにかくFTPを使うことに決めました。私はKai Zhaoの提案が大好きですが、私は、異なる場所にスクリプトを配置して維持するのではなく、自動配置に関連するすべてのものを展開サーバーに保存することをお勧めしました。

私は、次のPowerShellのFTPクライアントモジュールを使用して、当社のビルドサーバー上にインストール:https://gallery.technet.microsoft.com/scriptcenter/PowerShell-FTP-Client-db6fe0cb

そして、私は実際にはタコのステップとして、それを削除し、実行を行うには、このスクリプトを使用:

$ AzureAppServiceはOctopusの変数で、 環境に応じて変わります。

Import-Module PSFTP 
$username = $AzureAppService 
$password = ConvertTo-SecureString "************" -AsPlainText -Force 
$cred = new-object -typename System.Management.Automation.PSCredential ` 
     -argumentlist $username, $password 
$ftpserver = "***url_to_your_ftp_server**" 
$folderToDelete = "/site/wwwroot/App_Config/Include" 
Set-FTPConnection -Credentials $cred -Server $ftpserver -Session MyFTPSession -UsePassive 
$Session = Get-FTPConnection -Session MyFTPSession 
Try 
{ 
    Remove-FTPItem -Session $Session -Path $folderToDelete -Recurse 
} 
Catch 
{ 
    Write-Warning "There was an error while trying to remove the folder:" 
    Write-Warning $_.Exception.Message 
    Write-Warning $_.Exception.ItemName 
} 
関連する問題