Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Jason Lee
Topik ini menjelaskan bagaimana Anda dapat menerbitkan paket penyebaran web ke server jarak jauh dengan menggunakan Alat Penyebaran Web Layanan Informasi Internet (IIS) (Web Deploy) 2.0.
Ada dua cara utama di mana Anda dapat menyebarkan paket web ke server jarak jauh:
- Anda dapat menggunakan utilitas baris perintah MSDeploy.exe secara langsung.
- Anda dapat menjalankan file [nama proyek].deploy.cmd yang dihasilkan proses build.
Hasil akhirnya sama terlepas dari pendekatan mana yang Anda gunakan. Pada dasarnya, semua file .deploy.cmd lakukan adalah menjalankan MSDeploy.exe dengan beberapa nilai yang telah ditentukan, sehingga Anda tidak perlu memberikan informasi sebanyak mungkin untuk menyebarkan paket. Ini menyederhanakan proses penyebaran. Di sisi lain, menggunakan MSDeploy.exe secara langsung memberi Anda lebih banyak fleksibilitas atas persis bagaimana paket Anda disebarkan.
Pendekatan mana yang Anda gunakan akan bergantung pada berbagai faktor, termasuk berapa banyak kontrol yang Anda butuhkan atas proses penyebaran dan apakah Anda menargetkan layanan Web Deploy Remote Agent atau Web Deploy Handler. Topik ini menjelaskan cara menggunakan setiap pendekatan dan mengidentifikasi kapan setiap pendekatan sesuai.
Tugas dan panduan dalam topik ini mengasumsikan bahwa:
- Anda telah membangun dan mengemas aplikasi web Anda, seperti yang dijelaskan dalam Membangun dan Mengemas Proyek Aplikasi Web.
- Anda telah memodifikasi file SetParameters.xml untuk menyediakan nilai parameter yang tepat untuk lingkungan target Anda, seperti yang dijelaskan dalam Mengonfigurasi Parameter untuk Penyebaran Paket Web.
Menjalankan file [nama proyek].deploy.cmd adalah cara paling sederhana untuk menyebarkan paket web. Secara khusus, menggunakan file .deploy.cmd menawarkan keuntungan ini daripada menggunakan MSDeploy.exe secara langsung:
- Anda tidak perlu menentukan lokasi paket penyebaran web— file .deploy.cmd sudah mengetahui lokasinya.
- Anda tidak perlu menentukan lokasi file SetParameters.xml — file .deploy.cmd sudah tahu di mana file tersebut berada.
- Anda tidak perlu menentukan penyedia MSDeploy sumber dan tujuan— file .deploy.cmd sudah mengetahui nilai mana yang akan digunakan.
- Anda tidak perlu menentukan pengaturan operasi MSDeploy— file .deploy.cmd menambahkan nilai yang umum diperlukan ke perintah MSDeploy.exe secara otomatis.
Sebelum Anda menggunakan file .deploy.cmd untuk menyebarkan paket web, Anda harus memastikan bahwa:
- File .deploy.cmd, [nama proyek]. SetParameters.xml file, dan paket web ([nama proyek].zip) berada dalam folder yang sama.
- Web Deploy (MSDeploy.exe) diinstal pada komputer yang menjalankan file .deploy.cmd .
File .deploy.cmd mendukung berbagai opsi baris perintah. Saat Anda menjalankan file dari prompt perintah, ini adalah sintaks dasar:
[project name].deploy.cmd [/T | /Y]
[/M:<computer name>]
[/A:<Basic | NTLM>]
[/U:<user name>]
[/P:</pass/word>]
[/L]
[/G:<true | false>]
[Additional MSDeploy.exe flags]
Anda harus menentukan bendera /T atau bendera /Y , untuk menunjukkan apakah Anda ingin melakukan uji coba atau penyebaran langsung masing-masing (jangan gunakan kedua bendera dalam perintah yang sama). Tabel ini menjelaskan tujuan masing-masing bendera ini.
Bendera | Deskripsi |
---|---|
/T | Memanggil MSDeploy.exe dengan bendera –whatif , yang menunjukkan uji coba. Daripada menyebarkan paket, paket akan membuat laporan tentang apa yang akan terjadi jika Anda menyebarkan paket. |
/Y | Memanggil MSDeploy.exe tanpa bendera –whatif . Ini menyebarkan paket ke komputer lokal atau server tujuan yang ditentukan. |
/M | Menentukan nama server tujuan atau URL layanan. Untuk informasi selengkapnya tentang nilai yang bisa Anda berikan di sini, lihat bagian Pertimbangan Titik Akhir dalam topik ini. Jika Anda menghilangkan bendera /M , paket akan disebarkan ke komputer lokal. |
/Sebuah | Menentukan jenis autentikasi yang harus digunakan MSDeploy.exe untuk melakukan penyebaran. Nilai yang mungkin adalah Pembawa, NTLM, dan Dasar. Jika Anda menghilangkan bendera /A , jenis autentikasi default ke NTLM untuk penyebaran ke layanan Web Deploy Remote Agent dan ke Dasar untuk penyebaran ke Web Deploy Handler. |
/U | Menentukan nama pengguna. Ini hanya berlaku jika Anda menggunakan autentikasi dasar. |
/P | Menentukan kata sandi. Ini hanya berlaku jika Anda menggunakan autentikasi dasar. |
/L | Menunjukkan bahwa paket harus disebarkan ke instans IIS Express lokal. |
/G | Menentukan bahwa paket disebarkan menggunakan pengaturan penyedia tempAgent. Jika Anda menghilangkan bendera /G , nilai akan default ke false. |
Catatan
Setiap kali proses build membuat paket web, proses ini juga membuat file bernama [nama proyek].deploy-readme.txt yang menjelaskan opsi penyebaran ini.
Selain bendera ini, Anda dapat menentukan pengaturan operasi Web Deploy sebagai parameter .deploy.cmd tambahan. Pengaturan tambahan apa pun yang Anda tentukan hanya diteruskan ke perintah MSDeploy.exe yang mendasar. Untuk informasi selengkapnya tentang pengaturan ini, lihat Pengaturan Operasi Penyebaran Web.
Misalkan Anda ingin menyebarkan proyek aplikasi web ContactManager.Mvc ke lingkungan pengujian dengan menjalankan file .deploy.cmd . Lingkungan pengujian Anda dikonfigurasi untuk menggunakan layanan Web Deploy Remote Agent, seperti yang dijelaskan dalam Mengonfigurasi Server Web untuk Penerbitan Penyebaran Web (Agen Jarak Jauh). Untuk menyebarkan aplikasi web, Anda perlu menyelesaikan langkah-langkah berikutnya.
Untuk menyebarkan aplikasi web menggunakan file .deploy.cmd
Bangun dan kemas proyek aplikasi web, seperti yang dijelaskan dalam Membangun dan Mengemas Proyek Aplikasi Web.
Ubah file ContactManager.Mvc.SetParameters.xml untuk berisi nilai parameter yang benar untuk lingkungan pengujian Anda, seperti yang dijelaskan dalam Mengonfigurasi Parameter untuk Penyebaran Paket Web.
Buka jendela Prompt Perintah dan navigasi ke lokasi file ContactManager.Mvc.deploy.cmd .
Ketik perintah ini, lalu tekan Enter:
ContactManager.Mvc.deploy.cmd /Y /M:TESTWEB1 /A:NTLM
Dalam contoh ini:
- Bendera /Y menunjukkan bahwa Anda ingin benar-benar menyebarkan paket, daripada melakukan uji coba.
- Bendera /M menunjukkan bahwa Anda ingin menyebarkan paket ke server bernama TESTWEB1. Dari nilai ini, MSDeploy.exe akan mencoba menyebarkan paket ke layanan Web Deploy Remote Agent di http://TESTWEB1/MSDeployAgentService.
- Bendera /A menunjukkan bahwa Anda ingin menggunakan autentikasi NTLM. Dengan demikian, Anda tidak perlu menentukan nama pengguna dan kata sandi.
Untuk mengilustrasikan cara menggunakan file .deploy.cmd menyederhanakan proses penyebaran, lihat perintah MSDeploy.exe yang dihasilkan dan dijalankan saat Anda menjalankan ContactManager.Mvc.deploy.cmd menggunakan opsi yang ditunjukkan di atas.
msdeploy.exe
-source:package='C:\Users\matt.FABRIKAM\Desktop\ContactManager-03\ContactManager\
Publish\Out\_PublishedWebsites\ContactManager.Mvc_Package\ContactManager.Mvc.zip' -dest:auto,computerName='TESTWEB1.fabrikam.net', authtype='NTLM',
includeAcls='False'
-verb:sync
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:CertificateExtension
-setParamFile:"C:\Users\matt.FABRIKAM\Desktop\ContactManager-03\ContactManager\
Publish\Out\_PublishedWebsites\ContactManager.Mvc_Package\
ContactManager.Mvc.SetParameters.xml"
Untuk informasi selengkapnya tentang menggunakan file .deploy.cmd untuk menyebarkan paket web, lihat Cara: Menginstal Paket Penyebaran Menggunakan File deploy.cmd.
Menggunakan MSDeploy.exe
Meskipun menggunakan file .deploy.cmd umumnya menyederhanakan proses penyebaran, ada beberapa situasi ketika lebih baik menggunakan MSDeploy.exe secara langsung. Contohnya:
- Jika Anda ingin menyebarkan ke Web Deploy Handler sebagai pengguna non-administrator, Anda tidak dapat menggunakan file .deploy.cmd . Hal ini disebabkan oleh bug di Web Deploy 2.0, seperti yang dijelaskan di bawah Pertimbangan Titik Akhir.
- Jika Anda ingin beralih secara manual antara file SetParameters.xml yang berbeda di lokasi yang berbeda, Anda mungkin lebih suka menggunakan MSDeploy.exe secara langsung.
- Jika Anda ingin mengambil alih beberapa argumen baris perintah MSDeploy.exe, Anda mungkin lebih suka menggunakan MSDeploy.exe secara langsung.
Saat Anda menggunakan MSDeploy.exe, Anda perlu memberikan tiga informasi utama:
- Parameter –sumber yang menunjukkan dari mana data Anda berasal.
- Parameter –dest yang menunjukkan ke mana data Anda akan berada.
- Parameter –kata kerja yang menunjukkan operasi yang ingin Anda lakukan.
MSDeploy.exe bergantung pada penyedia Web Deploy untuk memproses data sumber dan tujuan. Web Deploy mencakup banyak penyedia yang mewakili rentang aplikasi dan sumber data yang dapat digunakannya—misalnya, ada penyedia untuk database SQL Server, server web IIS, sertifikat, rakitan cache perakitan global (GAC), berbagai file konfigurasi yang berbeda, dan banyak jenis data lainnya. Parameter –source dan parameter –dest harus menentukan penyedia, dalam formulir –source:[providerName]=[location]. Saat Anda menyebarkan paket web ke situs web IIS, Anda harus menggunakan nilai-nilai ini:
Penyedia –sumber selalu paket. Contohnya:
-source:package='[path to web package]'
Penyedia -dest selalu otomatis. Misalnya:
-dest:auto='[server name or service URL]'
– Kata kerja selalu disinkronkan.
-verb:sync
Selain itu, Anda harus menentukan berbagai pengaturan khusus penyedia lainnya dan pengaturan operasi umum. Misalnya, Anda ingin menyebarkan aplikasi web ContactManager.Mvc ke lingkungan penahapan. Penyebaran akan menargetkan Web Deploy Handler dan harus menggunakan autentikasi dasar. Untuk menyebarkan aplikasi web, Anda perlu menyelesaikan langkah-langkah berikutnya.
Untuk menyebarkan aplikasi web menggunakan MSDeploy.exe menggunakan token akses
MSDeploy V3 mendukung autentikasi dengan token akses, juga dikenal sebagai token pembawa. Token akses direkomendasikan karena token tersebut adalah yang paling aman.
Bangun dan kemas proyek aplikasi web, seperti yang dijelaskan dalam Membangun dan Mengemas Proyek Aplikasi Web.
Ubah file ContactManager.Mvc.SetParameters.xml untuk berisi nilai parameter yang benar untuk lingkungan penahapan Anda, seperti yang dijelaskan dalam Mengonfigurasi Parameter untuk Penyebaran Paket Web.
Buka jendela Prompt Perintah dan telusuri lokasi MSDeploy.exe. Ini biasanya di
%PROGRAMFILES%\IIS\Microsoft Web Deploy {version}\msdeploy.exe
.Jika Anda tidak memiliki token akses, buat token menggunakan perintah :
az account get-access-token --query accessToken
Ketik perintah ini, lalu tekan Enter (atur hentian baris):
MSDeploy.exe -source:package="[path]\ContactManager.Mvc.zip" -dest:auto, computerName="https://stageweb1:8172/MSDeploy.axd?site=DemoSite", username="FABRIKAM\stagingdeployer", $CREDENTIAL_PLACEHOLDER$, authtype="Bearer", includeAcls="False", Password="{-token:}" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"[path]\ContactManager.Mvc.SetParameters.xml" -allowUntrusted
Dalam contoh ini:
- Parameter –source menentukan penyedia paket dan menunjukkan lokasi paket web.
- Parameter –dest menentukan penyedia otomatis . Pengaturan computerName menyediakan URL layanan Web Deploy Handler di server tujuan. Pengaturan
Bearer
authtype menunjukkan bahwa Anda ingin menggunakan token akses untuk autentikasi, dan dengan demikian Anda perlu memberikan nilai token sebagai kata sandi. Pengaturan includeAcls="False" menunjukkan bahwa Anda tidak ingin menyalin daftar kontrol akses (ACL) file di aplikasi web sumber Anda ke server tujuan. - Argumen –verb:sync menunjukkan bahwa Anda ingin mereplikasi konten sumber di server tujuan.
- Argumen –disableLink menunjukkan bahwa Anda tidak ingin mereplikasi kumpulan aplikasi, konfigurasi direktori virtual, atau sertifikat Secure Sockets Layer (SSL) di server tujuan. Untuk informasi selengkapnya, lihat Ekstensi Tautan Penyebaran Web.
- Parameter –setParamFile menyediakan lokasi file SetParameters.xml .
- Sakelar –allowUntrusted menunjukkan bahwa Web Deploy harus menerima sertifikat SSL yang tidak dikeluarkan oleh otoritas sertifikasi tepercaya. Jika Anda menyebarkan ke Web Deploy Handler, dan Anda telah menggunakan sertifikat yang ditandatangani sendiri untuk mengamankan URL layanan, Anda perlu menyertakan sakelar ini.
Untuk menyebarkan aplikasi web menggunakan MSDeploy.exe dan autentikasi Dasar
Peringatan
Autentikasi dasar tidak disarankan jika metode yang lebih aman (token pembawa) tersedia.
Bangun dan kemas proyek aplikasi web, seperti yang dijelaskan dalam Membangun dan Mengemas Proyek Aplikasi Web.
Ubah file ContactManager.Mvc.SetParameters.xml untuk berisi nilai parameter yang benar untuk lingkungan penahapan Anda, seperti yang dijelaskan dalam Mengonfigurasi Parameter untuk Penyebaran Paket Web.
Buka jendela Prompt Perintah dan telusuri lokasi MSDeploy.exe. Ini biasanya di
%PROGRAMFILES%\IIS\Microsoft Web Deploy {version}\msdeploy.exe
.Ketik perintah ini, lalu tekan Enter (atur hentian baris):
MSDeploy.exe -source:package="[path]\ContactManager.Mvc.zip" -dest:auto, computerName="https://stageweb1:8172/MSDeploy.axd?site=DemoSite", username="FABRIKAM\stagingdeployer", $CREDENTIAL_PLACEHOLDER$, authtype="Basic", includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"[path]\ContactManager.Mvc.SetParameters.xml" -allowUntrusted
Dalam contoh ini:
- Parameter –source menentukan penyedia paket dan menunjukkan lokasi paket web.
- Parameter –dest menentukan penyedia otomatis . Pengaturan computerName menyediakan URL layanan Web Deploy Handler di server tujuan. Pengaturan authtype menunjukkan bahwa Anda ingin menggunakan autentikasi dasar, dan dengan demikian Anda perlu memberikan nama pengguna dan kata sandi. Terakhir, pengaturan includeAcls="False" menunjukkan bahwa Anda tidak ingin menyalin daftar kontrol akses (ACL) file di aplikasi web sumber Anda ke server tujuan.
- Argumen –verb:sync menunjukkan bahwa Anda ingin mereplikasi konten sumber di server tujuan.
- Argumen –disableLink menunjukkan bahwa Anda tidak ingin mereplikasi kumpulan aplikasi, konfigurasi direktori virtual, atau sertifikat Secure Sockets Layer (SSL) di server tujuan. Untuk informasi selengkapnya, lihat Ekstensi Tautan Penyebaran Web.
- Parameter –setParamFile menyediakan lokasi file SetParameters.xml .
- Sakelar –allowUntrusted menunjukkan bahwa Web Deploy harus menerima sertifikat SSL yang tidak dikeluarkan oleh otoritas sertifikasi tepercaya. Jika Anda menyebarkan ke Web Deploy Handler, dan Anda telah menggunakan sertifikat yang ditandatangani sendiri untuk mengamankan URL layanan, Anda perlu menyertakan sakelar ini.
Mengotomatiskan Penyebaran Paket Web
Dalam banyak skenario perusahaan, Anda mungkin ingin menyebarkan paket web Anda sebagai bagian dari penyebaran langkah tunggal atau otomatis yang lebih besar. Terlepas dari apakah Anda memilih untuk menyebarkan paket web Anda dengan menjalankan file .deploy.cmd atau dengan menggunakan MSDeploy.exe secara langsung, Anda dapat membuat parameter perintah dan memanggilnya dari target dalam file proyek Microsoft Build Engine (MSBuild).
Dalam solusi sampel Contact Manager, lihat target PublishWebPackages dalam file Publish.proj . Target ini berjalan sekali untuk setiap file .deploy.cmd yang diidentifikasi oleh daftar item bernama PublishPackages. Target menggunakan properti dan metadata item untuk membangun serangkaian nilai argumen lengkap untuk setiap file .deploy.cmd lalu menggunakan tugas Exec untuk menjalankan perintah.
<Target Name="PublishWebPackages" Outputs="%(PublishPackages.Identity)">
...
<PropertyGroup>
<_WhatIfSwitch>/Y</_WhatIfSwitch>
<_WhatIfSwitch Condition=" '$(_WhatIf)'=='true' ">/T</_WhatIfSwitch>
<_Cmd>
%(PublishPackages.FullPath) $(_WhatifSwitch) /M:$(MSDeployComputerName)
/U:$(MSDeployUsername) /P:$(Password) /A:$(MSDeployAuth)
%(PublishPackages.AdditionalMSDeployParameters)
</_Cmd>
</PropertyGroup>
<Exec Command="$(_Cmd)"/>
</Target>
Catatan
Untuk gambaran umum yang lebih luas tentang model file proyek dalam solusi sampel, dan pengenalan file proyek kustom secara umum, lihat Memahami File Proyek dan Memahami Proses Build.
Pertimbangan Titik Akhir
Terlepas dari apakah Anda menyebarkan paket web dengan menjalankan file .deploy.cmd atau dengan menggunakan MSDeploy.exe secara langsung, Anda perlu menentukan nama komputer atau titik akhir layanan untuk penyebaran Anda.
Jika server web tujuan dikonfigurasi untuk penyebaran menggunakan layanan Web Deploy Remote Agent, Anda menentukan URL layanan target sebagai tujuan Anda.
http://[server name]/MSDeployAgentService
Atau, Anda dapat menentukan nama server saja sebagai tujuan Anda, dan Web Deploy akan menyimpulkan URL layanan agen jarak jauh.
[server name]
Jika server web tujuan dikonfigurasi untuk penyebaran menggunakan Web Deploy Handler, Anda perlu menentukan alamat titik akhir IIS Web Management Service (WMSvc) sebagai tujuan Anda. Secara default, ini mengambil formulir:
https://[server name]:8172/MSDeploy.axd
Anda dapat menargetkan salah satu titik akhir ini menggunakan file .deploy.cmd atau MSDeploy.exe secara langsung. Namun, jika Anda ingin menyebarkan ke Web Deploy Handler sebagai pengguna non-administrator, seperti yang dijelaskan dalam Mengonfigurasi Server Web untuk Penerbitan Penyebaran Web (Web Deploy Handler), Anda perlu menambahkan string kueri ke alamat titik akhir layanan.
https://[server name]:8172/MSDeploy.axd?site=[IIS website name]
Ini karena pengguna non-administrator tidak memiliki akses tingkat server ke IIS; dia hanya memiliki akses ke situs web IIS tertentu. Pada saat penulisan, karena bug di Alur Penerbitan Web (WPP), Anda tidak dapat menjalankan file .deploy.cmd menggunakan alamat titik akhir yang menyertakan string kueri. Dalam skenario ini, Anda perlu menyebarkan paket web Anda dengan menggunakan MSDeploy.exe secara langsung.
Catatan
Untuk informasi selengkapnya tentang layanan Web Deploy Remote Agent dan Web Deploy Handler, lihat Memilih Pendekatan yang Tepat untuk Penyebaran Web. Untuk panduan tentang cara mengonfigurasi file proyek khusus lingkungan Anda untuk disebarkan ke titik akhir ini, lihat Mengonfigurasi Properti Penyebaran untuk Lingkungan Target.
Pertimbangan Autentikasi
Terlepas dari apakah Anda menyebarkan paket web dengan menjalankan file .deploy.cmd atau dengan menggunakan MSDeploy.exe secara langsung, Anda perlu menentukan jenis autentikasi. Web Deploy menerima kemungkinan nilai: Pembawa, NTLM, atau Dasar. Jika Anda menentukan Pembawa, Anda perlu memberikan token sebagai kata sandi dan nilai apa pun untuk nama pengguna. Jika Anda menentukan autentikasi dasar, Anda juga perlu memberikan nama pengguna dan kata sandi. Ada berbagai faktor yang perlu Anda ketahui saat memilih jenis autentikasi:
- Jika Anda menyebarkan ke layanan Web Deploy Remote Agent, Anda harus menggunakan autentikasi NTLM. Layanan agen jarak jauh tidak menerima kredensial autentikasi dasar.
- Jika Anda menyebarkan ke Web Deploy Handler, Anda dapat menggunakan token akses (token pembawa), NTLM, atau autentikasi dasar. Pengaturan default adalah autentikasi dasar. Autentikasi dasar bergantung pada nama pengguna dan kata sandi yang dikirimkan dalam teks biasa, kredensial Anda dilindungi karena Web Deploy Handler selalu menggunakan enkripsi SSL. Metode yang paling aman adalah menggunakan token akses, yang menghindari pengiriman kata sandi yang sebenarnya.
- Jika paket web Anda menyertakan database, dan server web dan server database adalah mesin terpisah, Anda tidak akan dapat menyebarkan database menggunakan autentikasi NTLM karena batasan "lompatan ganda" NTLM. Anda perlu menggunakan kredensial SQL Server dalam string koneksi penyebaran Anda atau menyediakan kredensial autentikasi dasar ke Web Deploy. Masalah ini dijelaskan secara lebih rinci dalam Menyebarkan Database Keanggotaan ke Lingkungan Perusahaan.
Kesimpulan
Topik ini menjelaskan bagaimana Anda dapat menyebarkan paket web baik dengan menjalankan file .deploy.cmd atau dengan menggunakan MSDeploy.exe secara langsung. Ini menjelaskan kapan setiap pendekatan mungkin sesuai, dan menjelaskan bagaimana Anda dapat membuat parameter dan menjalankan perintah penyebaran sebagai bagian dari langkah tunggal atau proses build otomatis yang lebih besar.
Bacaan lebih lanjut
Untuk panduan tentang cara membuat dan membuat parameter paket penyebaran web, lihat Membangun dan Mengemas Proyek Aplikasi Web dan Mengonfigurasi Parameter untuk Penyebaran Paket Web. Untuk panduan tentang cara membangun dan menyebarkan paket web dari instans Team Foundation Server (TFS), lihat Mengonfigurasi Server Team Foundation untuk Penyebaran Web Otomatis. Untuk informasi tentang cara menyesuaikan dan memecahkan masalah proses penyebaran, lihat Mengecualikan File dan Folder dari Penyebaran.