🐇
GitHub ActionsでTailscaleを使う
GitHub Actions 便利ですよね。
数日前にちゃんと触り始めたのにもうハマっています。
ところで、Tailscale 経由で GitHub Actions で遊びたくないですか??
ポート開けたくなかったり、諸事情により開けられなかったりで Tailscale 使っている人がそこそこいそうなので記事を書くことにしました。
Tailscale の OAuth Client の取得
Tailscale の Access Contorl を以下のように修正
{
...
"tagOwners": {
+ "tag:ci": ["自分のアカウントのメールアドレス"],
},
"acls": [
{"action": "accept", "src": ["*"], "dst": ["*:*"]},
+ {"action": "accept", "src": ["tag:ci"], "dst": ["tag:ci:*"]},
],
...
}
次に、Settings
> OAuth Client
から、OAuth のクライアントを作成する。
Generate OAuth Clinet
を押し、Devices
に読み書き両方を選択する。
このときタグを選べ〜と言われるので、先程作成したtag:ci
を選択する。
クライアントを作成すると、クライアントの ID と Secrets が生成されるのでメモしておく。
GitHub Actions の Workflow
なんのことはない、tailscale/github-action
からちょっとお借りするだけ。
on: ...
jobs:
deploy:
name: GitHub Actions with Tailscale
runs-on: ubuntu-latest
steps:
- name: Connect to Tailscale
uses: tailscale/github-action@v2
with:
oauth-client-id: ${{ secrets.TAILSCALE_OAUTH_CLIENT_ID }}
oauth-secret: ${{ secrets.TAILSCALE_OAUTH_CLIENT_SECRET }}
tags: tag:ci
あとは、GitHub のSettings
> Secrets and variables
> Actions
のSecrets
に、先程メモした、クライアントの ID と Secrets を追加しといてあげるだけ。
以上、これだけでmain
への push を監視して、自宅鯖へデプロイとか Tailscale 経由で GitHub Actions で遊べるようになる。
(GitHub に転がってるドキュメント読んでれば色々わかる)
Discussion