2017-07-13 4 views
1

ファイル共有でストレージアカウント(クラシック)をセットアップしました。私は、次のシェルスクリプトを使用してビルドステップとして共有をマウントする(https://docs.microsoft.com/en-us/azure/storage/storage-file-how-to-use-files-portal#connect-to-file-share)「Linuxからの接続」から情報を使用:Hosted Linuxエージェントで実行中のVSTSビルド中のAzureファイルストレージのマウントに失敗する

sudo apt-get -y update 
echo Installing cifs-utils 

sudo apt-get -y install cifs-utils 

SHARE=$PWD/buildartifacts 
echo Creating $SHARE 
if [ ! -d $SHARE ]; then 
    sudo mkdir $SHARE 
fi 

echo Mounting $SHARE 
sudo mount -t cifs $1 $SHARE -o vers=3.0,username=$2,password=$3,dir_mode=0777,file_mode=0777 

私は共有パス、VSTSのビルドからユーザ名とパスワードを渡します。私が使用したところ、Windowsがエージェントをホスト上で、私はこの作業を取得するために管理している

2017-07-12T11:56:01.0208730Z Creating config file /etc/samba/smb.conf with new version 
2017-07-12T11:56:01.2016540Z Setting up libcap-ng0:amd64 (0.7.7-1) ... 
2017-07-12T11:56:01.2433760Z Setting up libtalloc2:amd64 (2.1.5-2) ... 
2017-07-12T11:56:01.2823630Z Setting up cifs-utils (2:6.4-1ubuntu1.1) ... 
2017-07-12T11:56:01.3532550Z Setting up keyutils (1.5.9-8ubuntu1) ... 
2017-07-12T11:56:01.4042470Z Setting up libtdb1:amd64 (1.3.8-2) ... 
2017-07-12T11:56:01.4382800Z Setting up libtevent0:amd64 (0.9.28-0ubuntu0.16.04.1) ... 
2017-07-12T11:56:01.4748150Z Setting up libldb1:amd64 (2:1.1.24-1ubuntu3) ... 
2017-07-12T11:56:01.5114810Z Setting up python-crypto (2.6.1-6ubuntu0.16.04.2) ... 
2017-07-12T11:56:01.9924790Z Setting up python-ldb (2:1.1.24-1ubuntu3) ... 
2017-07-12T11:56:02.0912580Z Setting up python-tdb (1.3.8-2) ... 
2017-07-12T11:56:02.1932370Z Setting up python-talloc (2.1.5-2) ... 
2017-07-12T11:56:02.2329750Z Setting up samba-libs:amd64 (2:4.3.11+dfsg-0ubuntu0.16.04.8) ... 
2017-07-12T11:56:02.2687050Z Setting up python-samba (2:4.3.11+dfsg-0ubuntu0.16.04.8) ... 
2017-07-12T11:56:02.6471400Z Setting up samba-common-bin (2:4.3.11+dfsg-0ubuntu0.16.04.8) ... 
2017-07-12T11:56:02.6860280Z Processing triggers for libc-bin (2.23-0ubuntu7) ... 
2017-07-12T11:56:02.8437710Z Creating /opt/vsts/work/1/s/buildartifacts 
2017-07-12T11:56:02.8522080Z Mounting /opt/vsts/work/1/s/buildartifacts 
2017-07-12T11:56:02.8613570Z Unable to apply new capability set. 
2017-07-12T11:56:02.8828840Z ##[error]/bin/bash failed with return code: 2 
2017-07-12T11:56:02.8873290Z ##[error]Bash failed with error: /bin/bash failed with return code: 2 
2017-07-12T11:56:02.9474600Z ##[section]Finishing: Shell Script setup-hosted.sh 

:ここ

net use <share> /u:AZURE\<username> <password> 

違い

この

は私がビルドから取得出力の尾ですドライブレターなしでファイルディレクトリにアクセスするということです:

/path/to/file VSTS用Hosted Linuxエージェントが設定されていないようですcifsシェアをマウントできるようにします。これは正しいのでしょうか?

追加情報:

によって返されたVMの能力セット:

sudo capsh --print 

出力:能力によると

Current: = cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap+eip 
Bounding set =cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap 
Securebits: 00/0x0/1'b0 
secure-noroot: no (unlocked) 
secure-no-suid-fixup: no (unlocked) 
secure-keep-caps: no (unlocked) 
uid=0(root) 
gid=0(root) 
groups=0(root) 

(7)のmanページ:

CAP_SYS_ADMIN 
      * Perform a range of system administration operations including: quotactl(2), mount(2), umount(2), swapon(2), swapoff(2), sethostname(2), and setdomainname(2); 

マウント(2)から:

Appropriate privilege (Linux: the CAP_SYS_ADMIN capability) is required to mount filesystems. 
+0

あなたのストレージアカウントとあなたのVMは同じ場所にありますか? 'apt-get -y update'' sudo'を追加してください。 –

+0

apt-getの前のsudoが見つからないのは、コピー・ペースト・エラーです。それは私のスクリプトの中にあります。私は将来の参照のためにそれを反映するために質問を編集します。 – Christo

+0

これは古典的なVMまたはARMモードのVMですか? –

答えて

0

ので のみと同じAzureの地域で実行中の仮想マシン から作品のLinuxでのファイル共有をマウント、まだ共有レベルの暗号化をサポートしていないLinuxのSMB3クライアントファイル共有。

VSTSの設定ページに移動して、地域(https://[account].visualstudio.com/_admin/_home/settings)を確認してから、自分のストレージ領域と比較してください。

+0

この地域は、VSTSとストレージアカウントの両方で「西ヨーロッパ」です。 – Christo

+0

Linuxマシンで手動で実行するとどうなりますか? –

2

"Hosted Linux Preview"プールのエージェントは実際にはコンテナ内で実行されており、コンテナ内で実行中にそのファイルシステムをマウントするために特別な機能が必要なようです。

Dockerとコンテナとの統合が非常に早くなり、「Hosted Linux Preview」プールの一般的な動作の変更につながるはずです。

これまで(ちょっとハック的な)回避策には、ドライブを共有にマウントするために、適切な機能(ホストのドッカーデーモンがエージェントが実行されているコンテナの内部にマウントされている)現在のエージェントコンテナのフォルダ。

+0

その間に、私は最初のアプローチを試みます。 – Christo