2017-08-14 9 views
0

acbuild runを使用して予期しない動作が発生しています。 rktに慣れるには、SSHホストを実行しているCentOS7ベースのコンテナから始めることでした。 centos7.aciとして以下に参照される裸のCentOS 7コンテナは、hereの指示に従って最新のCentOS7インストールで作成されました。それはrkt run --insecure-options=image ./centos7-sshd.aci サーバーの実行を使って紡糸が、パスワードが受け入れられないため、接続の試行が失敗だときSSHD ACIを構築するために使用 スクリプトがrkt/image building:acbuildの実行手順が「無視されました」

#! /bin/bash 
acbuild begin ./centos7.aci 
acbuild run -- yum install -y openssh-server 
acbuild run -- mkdir /var/run/sshd 
acbuild run -- sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config 
acbuild run -- sed '[email protected]\s*required\s*[email protected] optional [email protected]' -i /etc/pam.d/sshd 
acbuild run -- ssh-keygen -A -C "" -N "" -q 
acbuild run -- echo 'root:screencast' | chpasswd 
acbuild set-name centos7-sshd 
acbuild set-exec -- /usr/sbin/sshd -D 
acbuild port add ssh tcp 22 
acbuild write --overwrite centos7-sshd.aci 
acbuild end 

です。実行中のコンテナに入るためにrkt enterを使用してecho 'root:screencast' | chpasswdを再度実行すると、ログインできます。そのため、何らかの理由でacbuildの実行命令が機能しなくなったため、もう少しテストするため、パスワードログインの代わりにキーベースを有効にするには、 acbuild run -- mkdir ~/.ssh acbuild run -- echo "<rkt host SSH public key>“ >> ~/.ssh/authorized_keys

に置き換えました。それは動作しません:キーは拒否されます。コンテナを調べると、その理由は明らかです。authorized_keysファイルは~/.ssh/にありません。キー追加の試行の前に
acbuild run -- touch ~/.ssh/authorized_keys命令を追加すると、ファイルは作成されますがまだ空です。したがって、acbuild実行命令はエラー通知なしでは動作しませんでした。 「無視された」命令の両方が、>>|のような演算子を使用するという事実に関係しているかもしれませんか?私が見た例で示されたすべてのコマンドはそのような演算子を使用していませんが、docsには何も言及されておらず、Googleの検索でも役に立ちません。 dockerfile RUNの指示でもうまくいきます...ここで何がうまくいかないのですか?

PS:私はrktとしてこれをタグ付けしなければならなかった何acbuildタグがStackOverflowの上ではまだありません:私は=>同じ結果

PPSを「無視」acbuild run指示に代わりデフォルトsystemd-nspawnエンジンのchrootを使用しようとしました - 十分な評判を持った誰かが作成してくれますか? Thx

答えて

0

[OK]を私はacbuild run --debugオプションを使用して何が起こったか理解しました。

acbuild run -- echo 'root:screencast' | chpasswd

は、それがRunning: [echo root:screencast]を返す実行取得したときに、パイプは、ホストマシン上で実行されます。それは

acbuild run -- /bin/sh -c "echo 'root:screencast' | chpasswd"

またはhere

を説明

acbuild run -- /bin/sh -c "<cmd with pipes>"

として、一般的な形式である必要があり、意図した結果を取得するには

関連する問題