SDKMAN! のインストールは簡単!
公式ページ Installation – SDKMAN! にあるようにワンライナーで完了です。
$ curl -s "https://get.sdkman.io" | bash
これを単純に Ansible タスクで書くと次のようになります。
- name: Install SDKMAN! shell: curl -s "https://get.sdkman.io" | bash
ところが実行してみますと、次のような警告が出ました。
TASK [sdkman : Install SDKMAN!] ************************************************ changed: [default] [WARNING]: Consider using get_url or uri module rather than running curl
この警告を出ないようにしてみましたのでノートします。
Ansible の警告の内容
- curl を使用しないで、get_url や uri モジュールを使ってね♪
警告に対処したタスクの内容
- name: Fetch SDKMAN! uri: url: https://get.sdkman.io return_content: yes register: get_sdkman_io - name: Install SDKMAN! shell: "{{ get_sdkman_io.content }}"
タスクを 2 つに分け、
- 1 番目のタスクで curl で取得していた内容を uri モジュールを使用して変数に格納することで行い、
- 2 番目のタスクで変数の内容を shell モジュールで実行しています。
一時ファイルを作成しないで済ませるところが特徴でしょうか。
不満としては、command モジュールを本当は使用したかったのですけれども、エラーとなってしまいました。
どうやら 1 行が 1 つの引数と判断されてしまうようです。
でやむなく shell モジュールを使用しています。もっと良い書き方は無いものでしょうか。
おわりに
次のページが参考になりました。ありがとうございます!
以上です。