
REM FTP/Webサーバーの設定
setlocal
set ftp_sitename=FTP Site
set ftp_path=%AZUREDRIVE_ROOT%
set ftp_cert=%SSL_CERT%
set web_site=%ROLEINSTANCEID%_Web
set web_root=%AZUREDRIVE_ROOT%\WWWRoot

REM IISの設定変更
cd /d %windir%\system32\inetsrv

REM すでにFTPサイト設定が作成されている場合はいったん削除
appcmd delete site "%ftp_sitename%"

REM FTPサイト設定の作成
appcmd add site /name:"%ftp_sitename%" /bindings:ftp/*:21: /physicalPath:"%ftp_path%"

REM SSL証明書の追加
appcmd set site "%ftp_sitename%" /ftpServer.security.ssl.serverCertHash:%ftp_cert%

REM 基本認証の有効化
appcmd set site "%ftp_sitename%" /ftpServer.security.authentication.basicAuthentication.enabled:true

REM 承認規則の追加
appcmd set config "%ftp_sitename%" /section:system.ftpServer/security/authorization /+"[accessType='Allow',users='*',permissions='Read, Write']" /commit:apphost

REM FTPでPASV向けに使用するポートを指定する
appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:"5000" /commit:apphost
appcmd set config /section:system.ftpServer/firewallSupport /highDataChannelPort:"5000" /commit:apphost

REM ロードバランサのインターネット側IPアドレスを指定
appcmd set config /section:system.applicationHost/sites /siteDefaults.ftpServer.firewallSupport.externalIp4Address:%INET_IP_ADDR% /commit:apphost

REM ファイアウォールの設定
netsh advfirewall firewall add rule name="FTP" action=allow protocol=TCP dir=in localport=21
netsh advfirewall firewall add rule name="FTP-Data" action=allow protocol=TCP dir=in localport=5000

REM FTPサーバーを再起動する
net stop ftpsvc
net start ftpsvc

REM Webサーバーの設定
REM ルートディレクトリを作成する
mkdir %web_root%

REM 公開するルートディレクトリを変更する
appcmd set vdir "%web_site%/" /physicalPath:"%web_root%"

endlocal
exit /b 0

