我正在使用TeamCity和Octopus Deploy(v.3.3.6)。
在使用“部署Azure Web应用”步骤部署到应用程序服务之前,我想删除该网站上的一个文件夹(/site/wwwroot/App_Config/Include或D:\home\site\wwwroot\App_Config\Include)。
章鱼有没有内置的机制来实现这一点?我尝试过使用Powershell脚本,但它在服务器上运行,而不是在Azure上。部署时有没有办法在Azure上运行Powershell脚本?或者我可以使用“运行Azure Powershell脚本”在应用服务网站上进行文件操作,而无需进行身份验证(因为八达通正在进行身份验证)?
或者有没有其他/更好的解决方案来解决这个问题,而不必将凭据保存在生成服务器上的文件中?
如果可能的话,我宁愿不使用FTP。
最后我还是决定使用FTP。尽管我非常喜欢赵凯的建议,但我更喜欢将所有与自动部署相关的内容都保留在部署服务器上,而不是将脚本放在不同的位置并进行维护。
我使用了以下Powershell FTP客户端模块,并将其安装在我们的构建服务器上:https://gallery.technet.microsoft.com/scriptcenter/PowerShell-FTP-Client-db6fe0cb
我使用这个脚本来执行实际的删除,并在Octopus中作为一个步骤运行它:
$AzureAppService是章鱼中的一个变量,根据环境的不同而变化。
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
}
我会这样做:
>
在Azure中创建一个按需Web作业,并上传一个PowerShell脚本,该脚本可以将文件夹清理到Webapp中。尽量保持这个ps脚本简单,使用基本的cmdlet命令,不是所有的ps模块都能在Azure中运行。如何:https://blogs.msdn.microsoft.com/nicktrog/2014/01/22/running-powershell-web-jobs-on-azure-websites/
你仍然需要你的团队或章鱼来运行一个Powershell线路来启动网络工作。这样,工作负载就不再是在octopus服务器上了,但是您仍然需要为PowerShell线路执行相同的Azure身份验证过程。如何:http://www.nullfactory.net/2015/05/start-azure-webjobs-on-demand/
octopus中的"运行Azure Powershell脚本"可帮助加载Azure Powershell模块并执行Azure订阅技巧,因此无需在脚本中包含库或重新进行身份验证。它仍然在本地运行,但第2步非常适合。
希望这能帮到你。
我正在尝试删除与我之前创建的移动应用后端相关的所有内容,并且我能够删除除应用服务计划之外的所有内容。 这表明应用程序服务计划没有连接的应用程序和定价层,但我仍然无法删除它: 当我尝试单击计划以查看其详细信息时,门户将进入无限加载状态,而不会发生任何其他情况: 有人能帮我解决这个问题吗?
问题内容: 我完全没有使用Windows API的经验,所以请原谅我的无知。 我想删除文件到回收站。如何使用JNA做到这一点,以及如何检测是否不可能(例如,由于文件位于网络共享上)? 问题答案: 使用已定义和方法的。
我正在写一个涉及多个客户的应用程序。一个客户端使用FTP将文件上传到服务器,然后另一个客户端下载并删除该文件。我使用FTP服务器作为一种中间人来交换信息,因为我不希望用户必须向前移植。我已经知道如何上传文件,但我不知道如何删除文件。使用FTP删除文件的命令是: 我试过这么做,但没有成功。以下是我尝试过的代码: 我有一种感觉 我在这个网站上读到了关于类似问题的其他问题,所有的回答都告诉我使用图书馆。
上面使用与eodRepository(一个sftp文件夹)中的筛选器匹配的文件,但是,endpoint上的delete=true删除了sftp文件夹中的所有文件,而不仅仅是已经处理的文件。 有没有人知道我怎样才能确保只删除处理过的文件,而剩下的文件留在endpoint上?
如何删除源文件夹(位于本地文件系统)中的所有文件。我需要你的帮助。NET自定义活动或Azure Data Factory中的任何现成解决方案 PS:我确实发现了一个删除自定义活动,但它更倾向于Blob存储<请帮忙。
用于存储Web服务器日志记录 服务器日志仅允许存储在Azure Blob容器上。根据配置,日志按预期存储在Blob容器上。现在,我想使用这些日志在Azure Log Analytics上显示。 在Log Analytics资源管理器上,我可以查看除Web服务器(iis日志)以外的所有其他来源的日志。我错过了什么?