2024/10/12 追記
@Bacalhau 氏がイチから作り直した良いスクリプトを公開しております。
圧倒的に参考になると思いますので、本記事の拙いスクリプトなんて見ずに、 ぜひご閲覧を。
P.S.
今になるまで気づきませんでしたが、本記事に頂いたコメントへ返信したつもりができておらず、長い沈黙を作ってしまいすみません。
はじめに
元を辿れば2022年に作成した話ですが、便利なものを共有しないのは勿体ないと思ったので記事にしておきます。
経緯
OpenWrtでTailscaleを使用する場合、opkg
で取得できるパッケージではバージョンが古いため、バイナリを直接稼働させるかと思います。
バイナリの場合は、更新を手動で行う必要がありますが、Tailscaleはそこそこの頻度で更新があり、定期実行できるようにしたかったので作成しました。
使い方
下記にあるスクリプトのコードを保存して、アーキテクチャとTailscale起動オプションを環境に合わせて変更し、cron
にて定期実行してください。
※curl
パッケージが必要なので、別途インストールしてください。
ソースコード
技術的な話
- OpenWrtの既定シェルはashなので、それに準拠するよう作成しました
- OpenWrtは多種多様な機種で動作し、バージョンによって仕様変更も大きいため、スクリプト冒頭においてアーキテクチャとTailscaleの起動オプションを設定できるようにしています
- 最新バージョンの確認には GitHub API を、バイナリのダウンロードは公式のパッケージ配布サイトより取得しています
- たまに最新バージョンのバイナリは配布されてないことがあるので、ダウンロードが可能であるかの確認もしています
あとがき
このスクリプトで約1年間は稼働しておりますが、問題なく自動更新できております。
何かございましたら、お気軽にコメントしてください。