👾

tfenvをansibleでインストールする

2023/05/04に公開

Overview

intro

業務用 Macbookの調子が悪く、色々考えた結果 Windows機に乗り換えることを決めました。
乗り換え + 環境構築をスムーズにすべく、プライベートのWSLをansibleでコード化するのに凝っています。

tfenvのインストール

公式のガイドを見るとtfenvリポジトリをクローンして、bin配下をパスに追加してます。
~/.bashrcを編集してますが、頻繁に編集するタイプのファイルとansibleは相性が悪いので、/etc/profile.d/配下にtfenv用のプロファイルを置いて同じことを実現してます。
https://github.com/tfutils/tfenv#manual

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