タグ

ブックマーク / gihyo.jp (387)

  • 第834回 Unboundでお手軽に家庭内DNSサーバーを作ろう[Ubuntu 24.04 LTS対応版] | gihyo.jp

    Ubuntu Weekly Recipe 第834回Unboundでお手軽に家庭内DNSサーバーを作ろう[Ubuntu 24.04 LTS対応版] 第386回では、Unboundを使って家庭内DNSサーバーを構築しました。ですがこの記事から9年が経ち、Ubuntuのネットワークまわりも変化しました。当時とは状況も変わってきていますので、改めて最新のLTSである24.04を使い、Unboundの構築方法を紹介します。 家庭内DNSサーバーが必要な理由 DNSサーバには大きく分けて、ゾーン情報を管理するコンテンツサーバーと、名前解決を代行するキャッシュサーバーの二種類に分けられます。コンテンツサーバーは、そのドメインの名前情報を管理するサーバーで、インターネット全体に対してサービスを提供しなければなりません。そのため基的に、ご家庭内には不要なサーバーです。 対してキャッシュサーバーは、どのご

    第834回 Unboundでお手軽に家庭内DNSサーバーを作ろう[Ubuntu 24.04 LTS対応版] | gihyo.jp
  • オープンソースのデザインツールPenpot 2.0がリリース ―CSSグリッドレイアウトや新コンポーネントシステムが利用可能に | gihyo.jp

    オープンソースのデザインツールPenpot 2.0がリリース ―CSSグリッドレイアウトや新コンポーネントシステムが利用可能に 2024年4月9日、Webベースのオープンソース デザイン・プロトタイピングツール「Penpot」の新バージョン2.0がリリースされた。 Penpot 2.0: Design and Code Collaboration on another level. Penpot 2.0, a major milestone in our journey, is now yours to explore and enjoy! - Penpot Community Update your on-premise instance to 2.0 - Penpot Community 💥 Penpot 2.0 is now available! Explore & enjoy t

    オープンソースのデザインツールPenpot 2.0がリリース ―CSSグリッドレイアウトや新コンポーネントシステムが利用可能に | gihyo.jp
    okinaka
    okinaka 2024/04/17
  • OpenSCADを使ったモデル作成入門(1) ~初めてのモデリングから3Dプリントまで | gihyo.jp

    Computer Aided Design(CAD)ソフトウェアとはその名の通り、コンピュータにデザイン・モデリングを補助してもらうためのソフトウェアです。 Fusion360、Blender、TinkerCADなど様々なソフトウェアがありますが、連載のこれから数回ではOpenSCADを使い、その後もっと強力なソフトウェアに移行して解説していきます。 OpenSCADは専用のプログラミング言語で記述し、その結果をプログラムが解析したのち3Dモデルとしてレンダリングしてくれるツールです。OpenSCADはFusion360などの格的なCADソフトウェアと比べると機能的には見劣りしますが、3Dモデリングに慣れていないプログラマにはとっつきやすいはずです。ブロックを組み合わせる感覚でモデリングが可能ですし、コードによって記述が可能なためコピペしながら試すことが可能です。 OpenSCADの入

    OpenSCADを使ったモデル作成入門(1) ~初めてのモデリングから3Dプリントまで | gihyo.jp
    okinaka
    okinaka 2024/02/06
  • 第797回 JellyfinでUbuntuをメディアサーバーにする[音楽編] | gihyo.jp

    今回はSnapパッケージのJellyfinをインストールし、メディアサーバーにします。 EmbyとJellyfin メディアサーバーはさまざまなものが出てきては消え、何を選定すればいいのか難しいです。連載だと例えば過去に第86回で取り上げていますが、現在も生き残っているものはありません。もっとも15年前の記事なので、当然ともいえますが。 比較的最近だと第533回で紹介したEmbyは現在でも開発が続いています。しかし、紹介当時のEmbyはバージョン3でFLOSS(GPL-2.0)でしたが、現在のバージョン4以降はクローズドソースとなりました。 今回紹介するのはJellyfinです。FLOSS時代のEmbyをフォークしたのがこのJellyfinであり、開発言語はC#です。Snapパッケージで提供されており、インストールも簡単です。 ちなみに現在はUbuntuにもメディアサーバー機能があります

    第797回 JellyfinでUbuntuをメディアサーバーにする[音楽編] | gihyo.jp
    okinaka
    okinaka 2024/01/25
  • 第793回 自作のカーネルモジュールをRustで作る | gihyo.jp

    第791回では基的なカーネルモジュールの作り方とそれをDKMSに対応させる方法を紹介しました。今回はカーネルの新しい機能のひとつである「Rustでカーネルモジュールを作る方法」を紹介しましょう。 UbuntuカーネルにおけるRustの対応 Linuxカーネルでは、Kernel 6.1からプログラミング言語である「Rust」の機能が取り込まれました。これは「Rust for Linux」の成果で、カーネルの機能をC言語やアセンブラだけでなく、Rustでも書けるようにするというものです。メモリー安全性や強い静的型付けなどの特徴を取り込むことで、カーネルのセキュリティ問題の原因の多くを占めるメモリー関連の不具合に対して、一種の対策になることが期待されます。 あらゆるケースにおいてRustに置き換えられるというわけではありませんが、今後カーネルのコードを読み書きする上でC言語やアセンブラだけでな

    第793回 自作のカーネルモジュールをRustで作る | gihyo.jp
  • Bullmqを使ったジョブキューの実装 | gihyo.jp

    連載では分散型マイクロブログ用ソフトウェアMisskeyの開発に関する紹介と、関連するWeb技術について解説を行っています。 今回は、サーバー上で実行されるタスクを管理するシステムであるジョブキューについての全般と、そのライブラリであるBullMQについて紹介します。 ジョブキューとは ジョブキューは、Webサーバー上で発生する様々なタスク(ジョブ)を管理するシステムで、タスクを複数のサーバーで分散して処理させたり、タスク失敗時にリトライしたりする機能を持ちます。 Misskeyでもジョブキューを活用しており、例えばActivityPubにおけるアクティビティの受信および配送や、ユーザーデータのインポートエクスポート処理をジョブとして管理しています。 Misskeyが使っているジョブキューのライブラリであるBullMQは、毎日指定した時刻にジョブを実行する機能などもあるので、サーバーの統

    Bullmqを使ったジョブキューの実装 | gihyo.jp
  • 第770回 UbuntuとOCRmyPDFでスキャンした内容に対して自動的にOCRを実行する | gihyo.jp

    今回はブラザーのスキャナーでスキャンした結果を自動的にOCRを実行します。SambaやOCRmyPDF、Tesseract OCRなど、オープンソースソフトウェアだけで構成します。 紙の書類をなんとかしたい ペーパーレスなんて言葉はもう聞き飽きてしまいましたが、実際にペーパーレスが達成されたかというとそういうわけでもないことはみなさんも日々感じていることでしょう。 なにかのサービスに契約したらユーザー名とパスワードは郵送されてくるなんてことはむしろ最近増えています。人確認のためには致し方ないところではありますが。 昔のWi-Fiルーターはメーカーによって初期ユーザー名とパスワードが決まっていましたが、セキュリティ的には問題しかありません。そのため最近はWi-Fiルーターの箱にユーザー名とパスワードが書かれた紙(某社だとシール)が入っています。たしかにこれだと安心ですが、こんなの失くすに決

    第770回 UbuntuとOCRmyPDFでスキャンした内容に対して自動的にOCRを実行する | gihyo.jp
  • オープンソースのユーザ認証システムOry Kratos v1.0.0がリリース | gihyo.jp

    クラウドソフトウェアの認証やセキュリティに関するさまざまなソフトウェア開発を行うOryは2023年7月13日、同社が開発するオープンソースのユーザ認証、管理システムであるOry Kratosのv1.0.0をリリースした。 Ory Kratos https://github.com/ory/kratos Ory KratosはAPIベースのID/ユーザ管理システム。セルフサービスのログインと登録、多要素認証(MFA/2FA⁠)⁠、アカウント検証、アカウント回復など、ほとんどすべてのアプリケーションが対応する必要のある一般的な機能が実装されている。APIのみのヘッドレスであるため、開発者が自分でUIを構築する必要がある。またデータベース以外の外部依存関係がなく、さまざまなクラウド環境でのデプロイと拡張が簡単に行えるのが特徴。ほとんどのOS上でビルドできるほか、LinuxmacOS、Windo

    オープンソースのユーザ認証システムOry Kratos v1.0.0がリリース | gihyo.jp
    okinaka
    okinaka 2023/07/15
  • 第506回 HealthcheckでCronジョブの失敗を監視する | gihyo.jp

    毎日のバックアップやログの集計などをはじめ、サーバーでは定期的に様々な処理が実行されていますよね。 当然ですが、管理者はこうした処理が失敗したことに気づけなければなりません。スクリプトの中でエラーをハンドリングしたり、あるいはスクリプトの戻り値を見てメールを送信したりSlackに発言したり……といった処理を仕込んでいるのではないでしょうか。 Cronでスクリプトの失敗時にメールを送信するありがちな例 0 0 * * * root /usr/local/bin/hogehoge.sh || echo "エラーメッセージ" | mail -s "エラーですよ" admin@example.com しかしこのアプローチには問題があります。サーバーに意図しない問題が起きている状態では、エラーメールの送信にも失敗してしまう可能性があります。その場合管理者は、正常に終了したからアラートが来ないのか、ア

    第506回 HealthcheckでCronジョブの失敗を監視する | gihyo.jp
  • 第499回 Ubuntuで!YouTuberに俺はなる!(前編) | gihyo.jp

    Ubuntu Japanese Team代表の小林です。当連載「Ubuntu Weekly Recipe」は、今回で499回、そして次回で500回を迎えます。また、来年の1月には連載開始より10周年となります。読者の皆さま、技術評論社様、これまで記事を執筆してくださった皆さまに感謝いたします。 さて、いつもの執筆陣は、12月3日に開催される「Ubuntu 17.10リリース記念 & Ubuntu Weekly Recipe 500回記念オフラインミーティング」の準備に忙しいようなので、これに参加できない私が今回と次回の記事を担当することにしました。 やはり500回で10周年という節目ですから、この10年を総括しつつ、新たな10年へのスタートにふさわしい記事を書こうと思ったのですが……どうしても思いつきませんでした。申し訳ありません。 代わりに、以下のようなことを考えました。 10年前といえ

    第499回 Ubuntuで!YouTuberに俺はなる!(前編) | gihyo.jp
  • 第96回 サイトの防御とFail2ban[その2] | gihyo.jp

    前回は予定を変更して急遽「らじる★らじる」の話題をとりあげたため、少々間が空いてしまったものの、今回は前々回の続きで"Fail2ban"の話題を取りあげます。 Fail2banの概要 前々回に設定ファイル等を紹介しながら説明したものの、だいぶ時間も経ったので、改めてFail2banについて簡単に復習しておきましょう。 Fail2banPythonで作成された常駐プロセス(デーモン)タイプのログファイル監視ソフトで、起動するとシステムに常駐して指定されたログファイルを監視し続け、総当たり攻撃的なエラーメッセージを見つけると、パケットフィルタリングによる攻撃元アドレスの接続拒否等、あらかじめ指定しておいた処理を自動実行してくれます。 どのログファイルを監視し、攻撃を検出した場合にどのような対応を行うかは、/etc/fail2banディレクトリにあるjail.confファイルで指定します。ただ

    第96回 サイトの防御とFail2ban[その2] | gihyo.jp
  • 第491回 いまから「あえて」systemdのコンテナ機能を使ってみる | gihyo.jp

    巷ではコンテナが大人気です。一方で、アプリケーションコンテナであるDockerDockerコンテナをオーケストレーションするKubernetes。もう一方で、システムコンテナであるLXCとそれを便利に使うためのLXD。 連載でもこれらの技術のいくつかは何度か取り上げられています。 ところで、Ubuntuではバージョン15.04よりinitとしてsystemdが採用されていますが、実は、このsystemdにもコンテナを動かす機能があります。 そこで今回は、上に挙げたような「有名ドコロ」のコンテナ技術がアツい中、あえてsystemd-nspawnというコマンドを使い、systemdに備わっているコンテナ機能を「とりあえず」「⁠簡単に」使う方法を紹介します。 強化版chroot UNIX オペレーティングシステムには来のルートディレクトリと論理的に分離し、ユーザーやプロセスにあたかもルート

    第491回 いまから「あえて」systemdのコンテナ機能を使ってみる | gihyo.jp
  • 第94回 サイトの防御とFail2ban[その1] | gihyo.jp

    昨今は北朝鮮のミサイル実験がらみで、THAADやイージス艦、PAC3など、ミサイル防衛システムに関するニュースをよく耳にします。筆者はあまりミリタリー系には詳しくないものの、これらの防衛システムは敵国が発射したミサイルを迅速に検知し、ミサイルが目標に到達するまでに迎撃する仕組みだそうです。 一方、インターネットの世界でも、外部からの攻撃を早期に検知し、サイトを防御するための仕組みがさまざまに開発されています。今回はそれらの仕組みの中から、筆者が愛用している"Fail2ban"というツールを紹介してみましょう。 Fail2banについて インターネット上でメールやWebのサーバを運用している人は、ログファイルにこのようなメッセージが出力されているのをしばしば目にしていることでしょう。 Aug 20 10:42:23 nsv sshd[29206]: connect from 59.63.18

    第94回 サイトの防御とFail2ban[その1] | gihyo.jp
  • 第485回 aptlyで本格的なパッケージリポジトリを作る | gihyo.jp

    Ubuntuのパッケージリポジトリのスナップショットを作成したり、独自パッケージリポジトリを作成したいならaptlyが便利です。今回はこのaptlyの使い方について紹介します。 パッケージリポジトリの管理ツールである「aptly」 aptlyは「パッケージリポジトリの管理ツール」と題した、独自パッケージのリポジトリや部分的なミラーリポジトリを作成・管理するためのCLIツールです。具体的には次のような機能を提供します。 公式パッケージリポジトリのパッケージすべてもしくは一部のミラーリング パッケージリポジトリのスナップショットの作成 ローカルパッケージリポジトリの作成 リポジトリ間のマージ・更新 HTTP経由で作成したリポジトリを公開 REST APIを使ったリポジトリの操作 フルミラーも可能ではありますが、リポジトリのメタデータを署名するために使用するGPG鍵は公式リポジトリと異なる鍵を生

    第485回 aptlyで本格的なパッケージリポジトリを作る | gihyo.jp
  • コミッターが語るSeleniumのいま、そして未来 ―「Selenium Committer Day 2017」レポート | gihyo.jp

    コミッターが語るSeleniumのいま、そして未来 ―「Selenium Committer Day 2017」レポート 2017年7月1日、東京ガーデンテラスのヤフー株式会社にて、日Seleniumユーザーコミュニティ主催の「Selenium Committer Day 2017」が開催されました。今回は3名のSeleniumコミッターを招き、今後のSeleniumの動向や、さまざまなツールを併用したテスト事例の紹介、そしてコミッターとのQ&Aパネルディスカッションが行われました。また、計4のスポンサーセッション・公募セッションも設定され、会場で行われた懇親会も含め、非常に充実した勉強会になりました。 Jim Evans ―Seleniumの次に来るのは何か?(What’s Next For Selenium?) 1番手であるJim Evans氏は2010年からSeleniumのプリ

    コミッターが語るSeleniumのいま、そして未来 ―「Selenium Committer Day 2017」レポート | gihyo.jp
  • 第479回 LXDコンテナとホストの間でファイルを共有する方法 | gihyo.jp

    LXDを使っていると非特権コンテナであってもホストとコンテナ間で気軽にファイルを共有したいことがよくあります。今回はその手順をまとめておきましょう。 LXDと非特権コンテナ LXDはかんたんにシステムコンテナを構築できるツールです。「⁠コンテナ型仮想化」と言えばDockerが有名ですが、これは主に「1コンテナ1サービス」というアプリコンテナとしての使われ方が主流です。それに対してLXDは「普通のLinuxシステム」をひとつのコンテナの中に構築します。どちらかと言うとKVMやVirtualBox、VMWareの代わりに使うタイプのソフトウェアです。 用途の違いからDockerとLXDは排他的ではなく、適材適所に使い分けることができます。もちろんLXDの上でDockerを動かすことも可能です。DockerとLXDの違いについては第459回にまとめていますので、そちらも参照してください。 LXD

    第479回 LXDコンテナとホストの間でファイルを共有する方法 | gihyo.jp
  • 第470回 Kubernetesのパッケージ管理ツール「Helm」 | gihyo.jp

    第469回ではKubernetesの環境を構築しました。今回はそのKubernetes上にソフトウェアスタックを構築する上で便利なパッケージ管理ツール「Helm」について紹介します。 Kubernetesでパッケージ管理ツールを使う理由 「Helm」はKubernetes用のパッケージ管理ツールです[1]⁠。パッケージそのものは「Chart」と呼ばれるYAMLファイルの集合体で、独自のパッケージリポジトリとして「Kubernetes Charts」を提供しています。 UbuntuのAPTシステムでいうところのDebパッケージファイルがChartで、Kubernetes Chartsは公式パッケージリポジトリ、そのリポジトリやローカルシステムからDebパッケージファイルをダウンロード・インストールするコマンドがhelmだとイメージすれば良いでしょう。 Kubernetesにはその役割に応じて

    第470回 Kubernetesのパッケージ管理ツール「Helm」 | gihyo.jp
  • 第469回 AWS上に魔獣「Kubernetes」を10分で召喚する魔法 | gihyo.jp

    皆さんはGWを楽しんでいますか。せっかくの長期休暇をぐったりウィークとして無為に過ごしたりしていませんか。もちろん体を休めることは重要ですが、あまり休めすぎると後悔という名のリバウンドが待っていますよ。 そこで今回のRecipeでは、GWが終わったあとに「がんばった私」とエクスキューズできるよう、Kubernetesを簡単に構築できる方法を紹介します。これで連休明けには「いやぁ連休中はKubernetesを触っていてさぁ」と言えますよ! コンテナを「いい感じ」に調整してくれるKubernetesKubernetes」はコンテナのオーケストレーションツールです。具体的にはDockerコンテナに対して、次のような機能を提供します。 複数のホストに複数のコンテナをデプロイするためのインフラストラクチャー コンテナが提供するサービスのスケーリング・ロードバランシング インスタンスのレプリケーシ

    第469回 AWS上に魔獣「Kubernetes」を10分で召喚する魔法 | gihyo.jp
  • 第1回 バックアップシステムの必要性と基本 | gihyo.jp

    はじめに 連載では、オープンソースのバックアップソフトウェア(以下、バックアップソフト⁠)⁠、Bacula(バキュラ)を使ってバックアップシステムの構築方法を紹介していきます。BaculaはLiunxの他、Solaris、FreeBSD、NetBSD、WindowsMacOS、HP-UXなど複数のOSに対応し、同時に多数のサーバおよびPCの管理をすることができ、エンタープライズレベルでの使用が可能なソフトウェアです。 メイン開発はスイスで行われ、240万件以上ダウンロードされています。ドイツ、フランス、スペインなどのEU圏のほか、ロシアやブラジルでも非常に人気があります。しかし数少ない日語情報だけでは設定に手間どるという声もあります。 しかし、Baculaの導入および運用はITエンジニアにとって容易であり、それによって安定したバックアップを行うことができます。連載を通じて、Bacu

    第1回 バックアップシステムの必要性と基本 | gihyo.jp
  • 第459回 LXDを使ってDockerコンテナをマイグレーション | gihyo.jp

    第458回ではUbuntuにおけるDockerのインストール方法を紹介しました。ところでDockerと同じコンテナ技術を利用したソフトウェアとして「LXD」が存在します。このLXDとDockerは排他的な存在ではなく、用途にあわせて組み合わせて使うと便利なツールです。そこで今回はLXDで作った仮想環境上でDockerコンテナを動かす方法を紹介します。 LXDの上でDockerを使う Dockerと同様にカーネルのコンテナ技術を利用したソフトウェアのひとつにLXDが存在します。Dockerがひとつのコンテナでひとつのアプリケーションを動かす「アプリケーションコンテナ」としての利用をメインに据えているのに対して、LXDは軽量な仮想マシンのように使える「システムコンテナ」としての使い方を提案していることがもっとも大きな違いです[1]⁠。 両者の具体的な違いを見ていきましょう。ちなみに個々の環境や

    第459回 LXDを使ってDockerコンテナをマイグレーション | gihyo.jp
    okinaka
    okinaka 2017/02/22