pecoのインストールに限った話ではないのですが、githubでreleaseされている最新版をAnsibleでインストールしたいことがあって書いた。Macだとbrew install 一発なんだけど、Linuxで使いたかったので。
tl;dr
完成形
peco.yml
- name: Get latest peco version
shell: >
curl -sI https://github.com/peco/peco/releases/latest | awk -F'/' '/^Location:/{print $NF}'
register: peco_latest_version
- name: Download latest peco
get_url: url=https://github.com/peco/peco/releases/download/{{ peco_latest_version.stdout }}/peco_linux_amd64.tar.gz dest=/tmp/peco_linux_amd64.tar.gz
- name: Extract peco
unarchive: src=/tmp/peco_linux_amd64.tar.gz dest=/tmp/
- name: Copy to /usr/bin/
copy: src=/tmp/peco_linux_amd64/peco dest=/usr/bin/ mode=0755
最新バージョンを取得
インストール時に一番新しいのを使いたいので自動で最新版を取得する。
- name: Get latest peco version
shell: >
curl -sI https://github.com/peco/peco/releases/latest | awk -F'/' '/^Location:/{print $NF}'
register: peco_latest_version
https://github.com/peco/peco/releases/latest にアクセスしてredirect先のurlを取得して、awkでバージョンを切り出し、peco_latest_versionに格納。
ダウンロードして、コピー
- name: Download latest peco
get_url: url=https://github.com/peco/peco/releases/download/{{ peco_latest_version.stdout }}/peco_linux_amd64.tar.gz dest=/tmp/peco_linux_amd64.tar.gz
- name: Extract peco
unarchive: src=/tmp/peco_linux_amd64.tar.gz dest=/tmp/
- name: Copy to /usr/bin/
copy: src=/tmp/peco_linux_amd64/peco dest=/usr/bin/ mode=0755
- https://github.com/peco/peco/releases/download/{{ peco_latest_version.stdout }}/peco_linux_amd64.tar.gzからダウンロード
- 解凍
- /usr/binにパーミッション指定してcopy
参考