SpaceWalkをCentOS6.5にインストールしてパッケージ管理


#Spacewalkとは


![kobito.1402653569.857408.png](https://qiita-image-store.s3.amazonaws.com/0/31334/e55eb413-1642-1261-9db1-4611170672f5.png "kobito.1402653569.857408.png")

本家URL：　http://spacewalk.redhat.com/


要するにOpenSource版のRedHat Satellite。
クライアントにインストールされているパッケージの管理、Errataの購読などが可能になります。

意外とRHELを使うユーザって、隔離されたネットワークだったりして結局RedHatNetwork<sub>[1](#1)</sub>(以下RHN)使っていなかったりしますよね？
そうでなくとも、商用でRHELディストリビューションを使っている場合、
可能であれば管理網を分けていたりする理由でRedHatNetworkを使えない、もしくは（察し）な理由で使えない。
そして（察し）な理由でRedHatSatellite<sub>[2](#2)</sub>をローカルで建てられない。
そんな場合に力を発揮するのがSpacewalkです。

このソフト、Chefなんかで構成管理をしている場合にはそんなに役に立たないのですが、

- 異なるデプロイ方法を使っているシステム郡を統括的にモニタリングしておきたい
- どんなバージョンのどんなソフトが使われているのかをみたい

そんな場合に使えます。

また、積極推奨ではないようですが、実はdebianパッケージの管理にも対応しています。<sub>[4](#4)</sub>
＃あとはカスタムErrataを購読したい、とか。CentOS/Ubuntuなどのものを購読することも可能。Errata自分で作る、、、とか？
＃本当はチームまたぎとかでもデプロイメント手法などが統一されていることが理想なんですけどね。そうもうまくいかないと思うので。
＃むしろ「うちではデプロイメント手法などは統一できていないけど、こんな管理しているよー」とか、あれば教えて下さい！
＃そもそもそんなケースあんまりないですかね。。。。


案外このソフト、日本語の記事を見かけなかったので、シェアします。
このメモでは、

- Spacewalkのセットアップ
- Spacewalk clientの登録

までを書いてみます。






#Installing

本家<sub>[3](#3)</sub>は当然ながらFedraゴリ押しなのですが、
それなりに需要があると思われるCentOSベースで構築する方法をいかに説明します。

まずはspacewalkのreposを持ってくる。

```bash
rpm -Uvh http://yum.spacewalkproject.org/2.1/RHEL/6/x86_64/spacewalk-repo-2.1-2.el6.noarch.rpm

```

同様にJpackageも追加してやる

```bash
cat > /etc/yum.repos.d/jpackage-generic.repo << EOF
[jpackage-generic]
name=JPackage generic
#baseurl=http://mirrors.dotsrc.org/pub/jpackage/5.0/generic/free/
mirrorlist=http://www.jpackage.org/mirrorlist.php?dist=generic&type=free&release=5.0
enabled=1
gpgcheck=1
gpgkey=http://www.jpackage.org/jpackage.asc
EOF
```

EPELも必要とな。

```bash
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
```

ここまできたら後は簡単。
DBを入れるのですが、選択肢はOracleかPostgre。
今回はPostgreで話をすすめます。

yumでほいっとインストール。

```bash
yum install spacewalk-setup-postgresql
```

依存してるものをいれて、

```bash
yum install -y rpm-build rpm-python
```

Postgreを入れます。

```bash
yum install spacewalk-postgresql 
```

#config

ここからは設定。基本的にはよきにはからえしてくれるのですが、FQDNを設定しておく必要があります。
FQDNを引けるようにして登録をする。

```bash
vim /etc/sysconfig/network
```


ここからはSpacewalkのセットアップにおまかせをして自動configをします。
/var/lib/pgsqlが15G以上必要です。

```bash
spacewalk-setup --disconnected
```

出力はこんな感じ

```bash
[XXXX@spacewalk ~]# spacewalk-setup --disconnected
* Setting up Selinux..
** Database: Setting up database connection for PostgreSQL backend.
** Database: Installing the database:
** Database: This is a long process that is logged in:
** Database:   /var/log/rhn/install_db.log
*** Progress: #
** Database: Installation complete.
** Database: Populating database.
*** Progress: ####################################
* Setting up users and groups.
** GPG: Initializing GPG and importing key.
** GPG: Creating /root/.gnupg directory
You must enter an email address.
Admin Email Address? メールアドレス
* Performing initial configuration.
* Activating Spacewalk.
** Loading Spacewalk Certificate.
** Verifying certificate locally.
** Activating Spacewalk.
* Enabling Monitoring.
* Configuring apache SSL virtual host.
Should setup configure apache's default ssl server for you (saves original ssl.conf) [Y]? 
** /etc/httpd/conf.d/ssl.conf has been backed up to ssl.conf-swsave
* Configuring editarea.
** /etc/httpd/conf.d/editarea.conf has been backed up to editarea.conf-swsave
* Configuring tomcat.
* Configuring jabberd.
* Creating SSL certificates.
CA certificate password? 
Re-enter CA certificate password? 
Organization? Organization
Organization Unit [OU]? 
Email Address [メールアドレス]? 
City? XXXXXXX
State? XXXXXXXXX
Country code (Examples: "US", "JP", "IN", or type "?" to see a list)? JP
** SSL: Generating CA certificate.
** SSL: Deploying CA certificate.
** SSL: Generating server certificate.
** SSL: Storing SSL certificates.
* Deploying configuration files.
* Update configuration in database.
* Setting up Cobbler..
Processing /etc/cobbler/modules.conf
`/etc/cobbler/modules.conf' -> `/etc/cobbler/modules.conf-swsave'
Processing /etc/cobbler/settings
`/etc/cobbler/settings' -> `/etc/cobbler/settings-swsave'
Cobbler requires tftp and xinetd services be turned on for PXE provisioning functionality. Enable these services [Y]? Y
* Restarting services.
Installation complete.
Visit https://ホスト名 to create the Spacewalk administrator account.
```

これで完了です。
起動します。

```
/usr/sbin/spacewalk-service start
```

この状態でhttp://FQDNもしくは、httpsでアクセスするとSpacewalkが動いています。
簡単！

![spacewalk001.png](https://qiita-image-store.s3.amazonaws.com/0/31334/90532d97-2980-a83e-685d-a4a882e2ce25.png "spacewalk001.png")

どうみてもRedhat Satelliteです。本当にありがとうございました。


#clientのセットアップ

ここからはSpacewalkにより管理されるclientを登録していきます。
今回はclientもCentOSを想定。

またrepoを入れて、

```bash
rpm -Uvh http://yum.spacewalkproject.org/2.1/RHEL/6/x86_64/spacewalk-client-repo-2.1-2.el6.noarch.rpm

BASEARCH=$(uname -i)
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/$BASEARCH/epel-release-6-8.noarch.rpm
```

client用ツールを入れます。

```bash
yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin
```

インストールしたら、"/usr/share/rhn"配下に、Spacewalkホストの証明書を落としてきます。

```
cd /usr/share/rhn/
wget http://SPACEWALKHOSTNAME/pub/RHN-ORG-TRUSTED-SSL-CERT
```

完了したらup2date設定をサーバのものにしてあげます。

```bash:/etc/sysconfig/rhn/up2date
serverURL=https://spacewalk.yutah.org/XMLRPC
noSSLServerURL=http://spacewalk.yutah.org/XMLRPC
sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
```

最後に登録。これは対話式ですが、rhnreg_ksでの登録も可能です。

```bash
rhn_register
```

ここまで来ると、clientがサーバから見えます。

![systems.png](https://qiita-image-store.s3.amazonaws.com/0/31334/a0e75d10-f19b-8bb8-9ecb-48891afb18eb.png "systems.png")

![packages.png](https://qiita-image-store.s3.amazonaws.com/0/31334/e87098cb-3ad7-1013-abab-5a1b530b90f8.png "packages.png")


デフォルトで登録するとBase Managementに”Monitoring”が含まれるとおもいます。
こいつが含まれていると、パッケージのアップデート・インストール・削除などがSpacewalkからできるので、気に入らないひとは外して下さい。
＃構成管理やデプロイを別手法でやっている場合はまず外すでしょうね。

使い方などは、本家ドキュメントやRedhatでも言及されているので割愛します。

#参考


<a name="1">1.</a> RedHatによりホスト/管理されているRedHatSatellite
<a name="2">2.</a> RedHatSatelliteは有償版。
<a name="3">3.</a> 本家URL：　http://spacewalk.redhat.com/
<a name="4">4.</a> https://fedorahosted.org/spacewalk/wiki/RegisteringClients#Debian