Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
Virtual Directory etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Virtual Directory etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

1 Şubat 2011 Salı

Bir IIS sunucudan diğerine kopyalamak

Web Deploy (MSDeploy) how to sync a folder

IIS üstündeki virtual directory ve web site ları tek satır komut ile bir başka sunucuya aktarmak.
C:\>iiscnfg /copy /ts webclusternode1 /tu FRESENIUS_IST\administrator /tp sifRedeGir
Backing up server 127.0.0.1
Backup complete.
Mapping local drive E: to admin share on server 127.0.0.1
Mapping local drive F: to admin share on server webclusternode1
Copying backup files...
cmd /c copy /Y E:\system32\inetsrv\metaback\iisreplback.* F:\system32\inetsrv\me
taback
Unmapping local drive E:
Restoring on server webclusternode1
Restore complete.
Unmapping local drive F:
Copy operation complete.

C:\>

IIS6'dan IIS7 ye göç

Ref: http://www.iis.net/learn/publish/using-web-deploy/synchronize-iis-60-web-sites

Yukarıdaki referansa göre önce tüm klasörleri ziple:
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:package=c:\Site1.zip

sonra bu zipi öteki makineye kopyala.
Bir simülasyon yapmak için -whatif > logAdi.log anahtarına benzer bir ekle:
msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
çalıştırır ve "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploysync.log" açılarak durumuna bakılır.

Kontrol edelim:

Sorun var.Olmasaydı

Eğer sağlam bir şekilde açılmışsa bunu kalıcı olarak yapmak için:
msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 > msdeploysync.log
yapacaktık.

Sorunumuz Application Pool'ların aktarımıyla ilgili. Bakalım çözmek için ne yapabiliriz.

Evet şu adres: MSDEPLOY – Can I use it to migrate my IIS6 to another IIS6? oh yes!

Buna göre önce Application Pool lar için aşağıdaki komutla yedekleyelim:
C:\Program Files\IIS\Microsoft Web Deploy>msdeploy -verb:sync  -source:metakey=lm/w3svc/AppPools -dest:archivedir=c:\AppPoolConfig



AppPoolConfig klasörü C:\> dizini içinde oluşacak. Bu dizini hedef sunucudada aşağıdaki kodu çalıştırıp Application Pool'ları oluştururuz.Dikkat: Varsa önceki poollar silinmiş olacak!
C:\Program Files\IIS\Microsoft Web Deploy>msdeploy -verb:sync  -source:archivedir=c:\AppPoolConfig, -dest:metakey=lm/w3svc/AppPools

Artık c:\Site1.zip dosyamızı yeni IIS sunucumuzda geri yükleyebiliriz:
C:\Program Files (x86)\IIS\Microsoft Web Deploy V3>msdeploy -verb:sync -source:m
etakey=/lm/w3svc/1,computername=10.130.214.67,username=administrator,password=sifreBuMakine -dest:metakey=/lm/w3svc/3,computername=10.130.214.205,username=administrator,password=sifreOlsun -replace:objectName=metaproperty,match="wwwroot",replace="wwwroot\101"

Azıcık inceleyelim:
msdeploy -verb:sync uygulama tüm içeriği eşleştirecek.

-verb parametresinin alabildiği diğer değerler için Web Deploy Command Line Syntax adresine bakılabilir.

-source ile dosyaların kaynağı olan IIS sunucusunun ya da dosyanın bulunduğu kaynağı işaret edeceğiz.

:metakey= ile kaynağın dosya olmadığını bir IIS işaret ettiğimizi belirtiyoruz.

/lm/w3svc/1, IIS üzerinde ID si 1 olan web site'ı işaret eder.


computername=10.130.214.67, username=administrator, password=sifreBuMakine ID si 1 olan IIS sunucusunun IP, kullanıcı adı ve şifre bilgilerini belirtiyoruz.

Aynı mantığı hedef makine içinde yapıyoruz.

Ek olarak şuna bir bakalım:
-replace: ile hedefte yapılacak değişiklikleri belirtiyoruz.

objectName=metaproperty için yedeklediğimiz zipin içinde archive.xml dosyasından bir kısım gösterelim:

<?xml version="1.0" encoding="utf-8" ?> 
<MSDeploy.metaKey MSDeploy.ObjectResolver.metaKey="Microsoft.Web.Deployment.MetaKeyObjectResolver" MSDeploy.ObjectResolver.metaProperty="Microsoft.Web.Deployment.MetaPropertyObjectResolver" MSDeploy.ObjectResolver.dirPath="Microsoft.Web.Deployment.DirPathObjectResolver" MSDeploy.ObjectResolver.filePath="Microsoft.Web.Deployment.FilePathObjectResolver">
<metaKey path="/lm/w3svc/1" MSDeploy.path="2" setProperties="1015,1017,1018,1099,1012,1016,9101,6006,1002,4011,1023" MSDeploy.setProperties="1" MSDeploy.MSDeployLinkName="Child1" MSDeploy.MSDeployKeyAttributeName="path" MSDeploy.MSDeployProviderOptions="H4sIAAAAAAAEAOy9B2AcSZYlJi9tynt/SvVK1B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9fB8/In6NX/PXDVjf/7//6//2/8xP9o1/r1/g1fo3vfVFM66qpztvxVT4Zz/JVWV0v8mU7Sn8yr5uiWn72YLw73hnvjNKTddmu6/yzZb5u66wcpS/Xk7KY/l759Zvqbb787N7u5Pzewf1Ps9m9T/fze/d/XfS05zr4LnXw1Hbg/fqyri6LWV5/uWqpwbXTVjV/jN1rpZyyRf7rrLJ2/usus0Xe/HqXWbnOm1/z1/z1fj2g/v92r/Gr/Fr/PqLvM1r/z618OLSbm4e3WvuZze3f2xX/fXDVjR/79X6NXPXM3xG/73mMv/O83/H8CAAD//7UD9MUPAQAA">
<metaProperty name="ServerComment" propertyId="1015" attributes="Inherit" userType="1" dataType="String" value="Default Web Site" MSDeploy.value="8" MSDeploy.MSDeployKeyAttributeName="name">
<rootWebConfig32 path="Default Web Site" MSDeploy.path="2" version="4.0" MSDeploy.version="2" MSDeploy.MSDeployLinkName="Microsoft.Web.Deployment.FrameworkConfigExtensionRootWebConfig32" MSDeploy.MSDeployKeyAttributeName="path" MSDeploy.MSDeployProviderOptions="H4sIAAAAAAAEAOy9B2AcSZYlJi9tynt/SvVK1B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9fB8/In6NX/PXDVjf/7//6//2/8xP9o1/r1/g1fo3vfVFM66qpztvxVT4Zz/JVWV0v8mU7Sn8yr5uiWn72YLw73hnvjNKTddmu6/yzZb5u66wcpS/Xk7KY/l759Zvqbb787N7u5Pzewf1Ps9m9T/fze/d/XfS05zr4LnXw1Hbg/fqyri6LWV5/uWqpwbXTVjV/jN1rpZyyRf7rrLJ2/usus0Xe/HqXWbnOm1/z1/z1fj2g/v92r/Gr/Fr/KZ1VbUE/KRanhcX9/ZPQD4zZ7m5xkhnNIX6euizX/s1/01fo1f48dvV/j1/g1fnP8hv/95vgL//sN/58AAAD//zNOiHsdAQAA" /> 
<machineConfig32 path="Default Web Site" MSDeploy.path="2" version="4.0" MSDeploy.version="2" MSDeploy.MSDeployLinkName="Microsoft.Web.Deployment.FrameworkConfigExtensionMachineConfig32" MSDeploy.MSDeployKeyAttributeName="path" MSDeploy.MSDeployProviderOptions="H4sIAAAAAAAEAOy9B2AcSZYlJi9tynt/SvVK1B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9fB8/In6NX/PXDVjf/7//6//2/8xP9o1/r1/g1fo3vfVFM66qpztvxVT4Zz/JVWV0v8mU7Sn8yr5uiWn72YLw73hnvjNKTddmu6/yzZb5u66wcpS/Xk7KY/l759Zvqbb787N7u5Pzewf1Ps9m9T/fze/d/XfS05zr4LnXw1Hbg/fqyri6LWV5/uWqpwbXTVjV/jN1rpZyyRf7rrLJ2/usus0Xe/HqXWbnOm1/z1/z1fj2g/v92r/Gr/Fr/KaLbDovlvlJtTwvLu7t/XoA8Js9zc8zQjilXtPXRZv/2K/7a/wav8aP/Xq/xq/xa/zmA3/83xF/73G/4/AQAA//8OZme7HQEAAA==" /> 
</metaProperty>
<metaProperty name="ServerAutoStart" propertyId="1017" attributes="None" userType="1" dataType="DWord" value="1" MSDeploy.value="8" MSDeploy.MSDeployKeyAttributeName="name" /> 
<metaProperty name="ServerSize" propertyId="1018" attributes="Inherit" userType="1" dataType="DWord" value="1" MSDeploy.value="8" MSDeploy.MSDeployKeyAttributeName="name" /> 
<metaProperty name="Win32Error" propertyId="1099" attributes="Volatile" userType="1" dataType="DWord" value="0" MSDeploy.value="9" MSDeploy.MSDeployKeyAttributeName="name" /> 
<metaProperty name="ServerCommand" propertyId="1012" attributes="Volatile" userType="1" dataType="DWord" value="1" MSDeploy.value="9" MSDeploy.MSDeployKeyAttributeName="name" /> 
<metaProperty name="ServerState" propertyId="1016" attributes="Volatile" userType="1" dataType="DWord" value="2" MSDeploy.value="9" MSDeploy.MSDeployKeyAttributeName="name" /> 
<metaProperty name="AppPoolId" propertyId="9101" attributes="Inherit" userType="1" dataType="String" value="DefaultAppPool" MSDeploy.value="8" MSDeploy.MSDeployKeyAttributeName="name" /> 
<metaProperty name="DefaultDoc" propertyId="6006" attributes="Inherit" userType="2" dataType="String" value="Default.aspx,Default.htm,Default.asp,index.htm,iisstart.htm" MSDeploy.value="8" MSDeploy.MSDeployKeyAttributeName="name" /> 


Yukarıdaki blokta metaProperty anahtarının değerlerinde bir regular expression çalıştırıp ,match="wwwroot" wwwroot kelimelerini ,replace="wwwroot\101" "wwwroot\101" ile değiştireceğiz. Böylece hedef sunucuda yeni klasörümüz c:\inetpub\wwwroot\101 olarak belirlenmiş olacak.

Dosya Eşleştirme

msdeploy.exe –verb:sync -source:contentPath="C:\temp\files-to-pub" -dest:contentPath='sayedupdemo/files'

msdeploy.exe 
    -verb:sync
    -source:contentPath="C:\temp\files-to-pub" 
    -dest:auto
        ,ComputerName="https://waws-prod-blu-001.publish.azurewebsites.windows.net/msdeploy.axd?site=sayedupdemo"
        ,UserName='$sayedupdemo'
        ,Password='thisIsNotMyRealPassword'
        ,AuthType='Basic' 
-enableRule:DoNotDeleteRule 
-setParam:value='sayedupdemo',kind=ProviderPath,scope=contentPath,match='^C:\\temp\\files-to-pub$'