👾
tfenvをansibleでインストールする
Overview
intro
業務用 Macbookの調子が悪く、色々考えた結果 Windows機に乗り換えることを決めました。
乗り換え + 環境構築をスムーズにすべく、プライベートのWSLをansibleでコード化するのに凝っています。
tfenvのインストール
公式のガイドを見るとtfenv
リポジトリをクローンして、bin配下をパスに追加してます。
~/.bashrc
を編集してますが、頻繁に編集するタイプのファイルとansibleは相性が悪いので、/etc/profile.d/
配下にtfenv用のプロファイルを置いて同じことを実現してます。
file tree
roleで定義しました。タスクの中でrole呼ぶだけで使えます。
boomkun ~/.ansible (main *%=) $ tree roles/tfenv
roles/tfenv
├── tasks
│ └── main.yml
└── templates
└── tfenv.sh
roles/tfenv/tasks/main.yml
特に語ることはないですね。。
リポジトリをcloneして予め用意したファイルをコピーしてるだけです。
---
- name: Clone tfenv repository
git:
repo: https://github.com/tfutils/tfenv.git
dest: ~/.tfenv
clone: yes
update: yes
- name: add tfenv path
become: yes
template:
src: tfenv.sh
dest: /etc/profile.d/tfenv.sh
roles/tfenv/templates/tfenv.sh
公式に準じて、WSL用の記述を採用。
#!/bin/sh
# check detail below
# https://github.com/tfutils/tfenv
# Linux
#export PATH="$HOME/.tfenv/bin:$PATH"
# WSL
export PATH=$PATH:$HOME/.tfenv/bin
ansible-playbook実行
適当にroleを呼び出すpbを用意
sample.yaml
---
- hosts: localhost
gather_facts: false
roles:
- tfenv
実行結果
TASK [tfenv : Clone tfenv repository] ***************************************************************************************
changed: [localhost]
TASK [tfenv : add tfenv path] ***********************************************************************************************
changed: [localhost]
結果確認
boomkun ~/.ansible (main *%=) $ which tfenv
/home/boomkun/.tfenv/bin/tfenv
outro
wslでもHomeBrewが使えるんで
そっちに合わせて管理すればmacとwinの差分をさらに吸収できるなとも思ったんですが
あんまりmacbookにこだわりがないので、今はいいかな。。。
Discussion