質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

解決済

1回答

435閲覧

Ansible playbook URIをパッケージソースとして追加してインストールができない

_Victorique__

総合スコア1392

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2018/08/17 02:12

編集2018/08/17 02:27

このサイトでやっていることを
Ansibleでやりたいと思い、以下のコードを書きました。

ansible

1 connection: local 2 become: yes 3 4 vars: 5 git_clone_packages: 6 - name: git@github.com:tensorflow/tensorflow.git 7 apt_get_jdk: 8 - name: openjdk-8-jdk 9 apt_get_packages: 10 - name: bazel 11 - name: python-numpy 12 - name: python-dev 13 - name: python-pip 14 - name: python-wheel 15 - name: python3-numpy 16 - name: python3-dev 17 - name: python3-pip 18 - name: python3-wheel 19 20 tasks: 21 - name: jdk install 22 apt: name={{ item.name }} state=present update_cache=yes 23 with_items: '{{ apt_get_jdk }}' 24 25 - shell: echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" 26 - shell: tee /etc/apt/sources.list.d/bazel.list 27 - get_url: url="https://bazel.build/bazel-release.pub.gpg" dest=/tmp 28 # - shell: curl https://bazel.build/bazel-release.pub.gpg | apt-key add - 29 - shell: apt-key add - 30 31 - name: apt get install 32 apt: name={{ item.name }} state=present update_cache=yes 33 with_items: '{{apt_get_packages}}'

しかし、以下のようなエラーが発生してしまいました。

shell

1PLAY [localhost] ***************************************************************************** 2 3TASK [Gathering Facts] *********************************************************************** 4ok: [localhost] 5 6TASK [jdk install] *************************************************************************** 7ok: [localhost] => (item={u'name': u'openjdk-8-jdk'}) 8 9TASK [shell] ********************************************************************************* 10changed: [localhost] 11 12TASK [shell] ********************************************************************************* 13changed: [localhost] 14 15TASK [get_url] ******************************************************************************* 16ok: [localhost] 17 18TASK [shell] ********************************************************************************* 19fatal: [localhost]: FAILED! => {"changed": true, "cmd": "apt-key add -", "delta": "0:00:00.064270", 20 "end": "2018-08-17 02:05:43.196232", "msg": "non-zero return code", "rc": 2, "start": "2018-08-17 02:05:43.131962", 21 "stderr": "gpg: no valid OpenPGP data found.", "stderr_lines": ["gpg: no valid OpenPGP data found."], 22 "stdout": "", "stdout_lines": []} 23 to retry, use: --limit @/home/vagrant/tensorflow-build.retry 24 25PLAY RECAP *********************************************************************************** 26localhost : ok=5 changed=2 unreachable=0 failed=1

get_urlまでは成功しているのですが肝心のbazelのインストールのところでエラーが出てしまいます。解決策はあるでしょうか?

###環境情報
MacOS HighSierra
Vagrant + VirtualBoxにてubuntu16.04 ← こちらの環境がAnsibleの対象

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらくいろいろ試行錯誤されたと思いますが、この箇所がちょっと変ですね。

yaml

1 - shell: echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" 2 - shell: tee /etc/apt/sources.list.d/bazel.list

元のコードはこれですが、パイプが消えてしまっています。

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list

以下のようにパイプも含めてそのまま記載すればOKです。

yaml

1 - shell: echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list

curlを使っている箇所も元の記事そのままでOKです。
最終的には以下のようになります。
(playbookが流れることまでは確認済み)

yaml

1- connection: local 2 become: yes 3 hosts: all 4 5 vars: 6 git_clone_packages: 7 - name: git@github.com:tensorflow/tensorflow.git 8 apt_get_jdk: 9 - name: openjdk-8-jdk 10 apt_get_packages: 11 - name: bazel 12 - name: python-numpy 13 - name: python-dev 14 - name: python-pip 15 - name: python-wheel 16 - name: python3-numpy 17 - name: python3-dev 18 - name: python3-pip 19 - name: python3-wheel 20 21 tasks: 22 - name: jdk install 23 apt: name={{ item.name }} state=present update_cache=yes 24 with_items: '{{ apt_get_jdk }}' 25 26 - shell: echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list 27 - shell: curl https://bazel.build/bazel-release.pub.gpg | apt-key add - 28 29 - name: apt get install 30 apt: name={{ item.name }} state=present update_cache=yes 31 with_items: '{{apt_get_packages}}'

ただ、shellを使うのはAnsibleでは最終手段で、基本的には専用モジュールを使うといいです。

これを使うと、次のようになります。
(これもplaybookが流れることまでは確認済み)

yaml

1- connection: local 2 become: yes 3 hosts: all 4 5 vars: 6 git_clone_packages: 7 - name: git@github.com:tensorflow/tensorflow.git 8 apt_get_jdk: 9 - name: openjdk-8-jdk 10 apt_get_packages: 11 - name: bazel 12 - name: python-numpy 13 - name: python-dev 14 - name: python-pip 15 - name: python-wheel 16 - name: python3-numpy 17 - name: python3-dev 18 - name: python3-pip 19 - name: python3-wheel 20 21 tasks: 22 - name: jdk install 23 apt: name={{ item.name }} state=present update_cache=yes 24 with_items: '{{ apt_get_jdk }}' 25 26 - apt_repository: 27 repo: "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" 28 29 - apt_key: 30 url: https://bazel.build/bazel-release.pub.gpg 31 32 - name: apt get install 33 apt: name={{ item.name }} state=present update_cache=yes 34 with_items: '{{apt_get_packages}}'

投稿2018/08/19 07:53

ikemo

総合スコア332

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_Victorique__

2018/08/20 06:12

ありがとうございます!専用のコマンドがちゃんとあるんですね!助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問