1. 前提・実現したいこと
azure上の仮想マシンにazure Repsからパイプラインを使ってデプロイしたいと考えています。
・ローカル:windows-server-2016
・仮想マシン:windows-server-2019
・デプロイファイル:php
行った手順として、
①azure DevOpsのリポジトリにローカルにあるファイルをpush
②パイプラインを作成。
build用として、pipline starterを選択しました。
そこに、artifact公開のためのpathtopublishも書きました。
③enviromentsで作成した仮想マシンを指定し、powershellでアクセストークンのコマンドも実行しました。
④azure portalの仮想マシンの継続デリバリーを設定して、リリースパイプラインを作成しました。
デプロイスクリプトは何を書いたらいいかわからなかったので、インラインを選択しました。
⑤パイプラインのyamlファイルに、ビルドタスクが成功したらデプロイ用タスクが動くように記述しました。
その後、ローカルからReposにファイルをプッシュしたら、ビルドタスクが動いて、デプロイタスクも動作し成功しました。
2.発生している問題・エラーメッセージ
パイプラインは成功して、エラーメッセージは出ていませんが、
仮想マシン上の C:\AzurePiplinesAgent_Extension\_work\r1\a\_build-deploy\
以下には何もなかったので、
アーティファクトの公開が失敗したのかと思っています。
3. 該当のソースコード azure-piplines.yml
# Starter pipeline trigger: - master stages: - stage: Build pool: vmImage: windows-latest jobs: - job: build steps: - script: echo Hello, world! displayName: 'Run a one-line script' - script: | echo Add other tasks to build, test, and deploy your project. echo See https://aka.ms/yaml displayName: 'Run a multi-line script' condition: - task: CopyFiles@2 inputs: targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: build-deploy' inputs: PathtoPublish: '$(build.artifactstagingdirectory)' - stage: Release dependsOn: - Build condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) jobs: - deployment: DeployWeb displayName: deploy Web App pool: vmImage: 'windows-latest' environment: name: 'VM' # resourceType: VirtualMachine strategy: runOnce: deploy: steps: - script: echo Hello world
4. 自分で調べたことや試したこと
ymlファイルのenviromentにresourceTypeやTagsを追加して、実行しましたが、以下のエラーが出ました。
enviromentsのresoucesでも以下のエラーが出ています。それまでは、never deploy となっていました。
Unable to deploy to the virtual machine 'VM' as the machine is offline.
これに関しても色々調べましたが、
https://developercommunity.visualstudio.com/t/unable-to-deploy-to-the-virtual-machine-as-the-mac/1295124
これを見ても、
次に、[組織の設定] - [エージェントプール]-[特定のプール]に移動します。 - [エージェント]タブで・・・
の組織の設定が見つからず、何もできていません。
これが、一番怪しい部分かと思います。
知りたいことはたくさんありますが、
1.デプロイ先となるのが、PathtoPublish: '$(build.artifactstagingdirectory)'で、デフォルトが、
C:\AzurePiplinesAgent_Extension\_work\r1\a\
になるのでしょうか?
2. 上記の場合、variablesに違うパスを入力すれば、そこにデプロイされますか?
3.VMがオフラインなのが原因でファイルがアップされないのならば、それの解決方法が知りたいです。
4.自動デプロイの方法として、上記の方法やymlファイルが合っているのか、アドバイスいただけるとありがたいです。
よろしくお願いします。
あなたの回答
tips
プレビュー