🐇
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