プライベートYUMレポジトリを作ろう

プライベートYUMレポジトリを作ろう

  • このエントリーをはてなブックマークに追加

アドベントカレンダー初日!今日からソニックムーブのスタッフブログもアドベントカレンダー開始です!

ここ最近、Immutable Infrastracture という言葉が賑わっており、Docker や Packer など、もろもろツールが、だいぶ増えてきました。
ですが、今回は、その前段階として、パッケージ化してますか?というお話です。

Chef や Ansible といったプロビジョニングツールを利用して、Packer/Chef or Packer/Ansible といった組み合わせで、AMI を構築するにしても、パッケージ管理をしていないと、面倒なことが増えてしまうと思います。

まずは、ミドルウェアをしっかり管理するところから、始めたいと思います。

プライベートYUMレポジトリを作ろう

RPMに関する支援ツールは豊富にそろっていて、レポジトリの作成ツールである createrepo コマンドをインストールし、作成済みのRPMを入れたディレクトリをYUMレポジトリとして構築します。

$ yum install createrepo

$ createrepo test.repo/
Spawning worker 0 with 1 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

$ tree test.repo/
test.repo/
├── bash-completion-2.0-3.amzn1.noarch.rpm
└── repodata
    ├── 401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
    ├── 6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
    ├── 77a287c136f4ff47df506229b9ba67d57273aa525f06ddf41a3fef39908d61a7-other.sqlite.bz2
    ├── 8596812757300b1d87f2682aff7d323fdeb5dd8ee28c11009e5980cb5cd4be14-primary.sqlite.bz2
    ├── dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
    ├── f8606d9f21d61a8bf405af7144e16f6d7cb1202becb78ba5fea7d0f1cd06a0b2-filelists.sqlite.bz2
    └── repomd.xml

構築したレポジトリを、ApacheなどのWebサーバで公開すれば利用できますが、パッケージ一覧があると便利なので、
repoview というコマンドで、Web上で確認できるパッケージ一覧ページを構築しましょう。

$ repoview test.repo/
Examining repository...done
Opening primary database...done
Opening changelogs database...done
Examining state db...done
Collecting group information...done
Collecting letters...done
Writing package bash-completion.html
Writing group unspecified.group.html
Writing group letter_b.group.html
Collecting latest packages...done
Writing index.html...done

$ tree test.repo/
test.repo/
├── bash-completion-2.0-3.amzn1.noarch.rpm
├── repodata
│   ├── 25cc31d5f640de034fb996c951ddb36268bb8f945d71e93ff8875a17137fe567-filelists.sqlite.bz2
│   ├── 31bcd1aefe8fff0d57725cc0097a465f6df88a29ad1c93b221e9c1209f31e3af-other.sqlite.bz2
│   ├── 32c4e7a2cb961017e9dc698957e91a405b41f1b050a1f015fef257d17d77ca98-other.xml.gz
│   ├── 6aaee4883bf69b6d74d4b67d62671b5e898f1b8d8f8d6c9868458165f542cbf0-primary.xml.gz
│   ├── bbfa3621175f0e47950a063e50a3e42e7352f640adc3c653cab91e979c4e6bec-primary.sqlite.bz2
│   ├── fbb7b22b89357a7c4ea36e19333734ea7bc7bfbddfdc5cb1009ded840f4a2391-filelists.xml.gz
│   └── repomd.xml
└── repoview
    ├── bash-completion.html
    ├── index.html
    ├── layout
    │   └── repostyle.css
    ├── letter_b.group.html
    ├── state.sqlite
    └── unspecified.group.html

作ったレポジトリ S3 へ s3cmd で送って、公開設定をして、利用したいOS側に以下の設定をすれば、すぐに利用できます。

$ cat /etc/yum.repos.d/private.repo
[private]
name=Private Repository $releasever - $basearch
baseurl=http://your-s3-bucket/
enabled=1
gpgcheck=0
metadata_expire=300

次回はカスタムRPMの作成を、紹介したいと思います!

  • このエントリーをはてなブックマークに追加

記事作成者の紹介

(システムエンジニア)

新規事業推進部のシステムエンジニアこと鰯(イワシ)です。最近ハマっているのは、AWSとPhalconです。好きなフォントは、Monaco13ptです。

関連するSONICMOOVのサービス

システムエンジニア募集中!

×

SNSでも情報配信中!ぜひご登録ください。

×

SNSでも
情報配信中!
SONICMOOV Facebookページ SONICMOOV Twitter
システムエンジニア募集中!

新着の記事

mautic is open source marketing automation