「ubuntu」タグアーカイブ

127.0.0.53の正体

Ubuntu 18.04 LTSに上げたら DNSが引けなくなって
/etc/resolv.confを調べたら 127.0.0.53という謎のDNS指定があり、 書き換えても再起動したら元に戻ってしまう。。。

どうやら、127.0.0.53は systemd-resolvedというのがサービスしてるらしい。まぁ、ローカルIPの逆引きやらを垂れ流さないようにするためにちょっと賢いレゾルバをローカルにってことかな。

ただ、これが悪いわけではなく、問題は一緒についている options edns0 でした。YAMAHAのRTX810をDNS参照先にしてるのですが、RTX810は edns0に対応していないのでエラーになっていたという。。。

YAMAHAさん、edns0対応してくれないかな。。。

ちなみに systemd-resolvedが動いてると /etc/resolv.confは自動的に書き換えられてしまうので変更しても無意味。DNSサーバ参照設定は /etc/systemd/resolved.conf に書きましょう。

p.s.

ubuntuは/etc/resolv.conf -> ../run/resolvconf/resolv.conf のようにリンクを張っているのですが、なんで /run/systemd/resolve/stub-resolv.conf にリンクしないんだろう。。。これがsystemd-resolvedが書き換えているファイルな気がします。 systemd-resolved を再起動すると、このファイルが書き換わっているのですが、なんせ、リンク先が違うので反映されない。OSごと再起動すると反映されるので起動スクリプトかなんかでやってるようですが。なんでこんなことしてるんでしょうねぇ。

Ubuntu 16.04.05 LTS to 18.04.01 LTS Upgrade

久しぶりにUbuntuのUpgradeしました。私はLTSで運用してるので、前回は 16.04 .05からのUpgradeとなりました。

Upgrade自体は do-release-upgradeを叩くだけ。

ただその後、何が起こるかが問題な訳ですが、今回は割と軽微な問題だけでした。

1. dovecotが起動しない。dovecot.keyが無いそうです。私は元々自分で取得した証明書を使っていたので、置き換えて無事起動。

Sep 30 20:12:30 abel systemd[1]: Started Dovecot IMAP/POP3 email server.
Sep 30 20:12:30 abel dovecot[17512]: doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 13: ssl_key: Can't open file /etc/dovecot/private/dovecot.key: No such file or directory

2.zabbix Serverが起動しない。zabbix_server.confが読めないそうだ。MySQLのユーザ、パスワードがべた書きしてあるので、600にしていたのですが、ダメなようで。とりあえず、zabbixに対して開けました。

Sep 30 20:53:27 abel systemd[1]: Started Zabbix Server (MySQL/MariaDB).
Sep 30 20:53:27 abel zabbix_server[22846]: zabbix_server [22846]: cannot open config file "/etc/zabbix/zabbix_server.conf": [13] Permission denied
Sep 30 20:53:27 abel systemd[1]: zabbix-server.service: Main process exited, code=exited, status=1/FAILURE
Sep 30 20:53:27 abel systemd[1]: zabbix-server.service: Failed with result 'exit-code'.

格安SSL証明書取得

Appleがアプリからの通信のHTTPS化を義務づけたり、chromeのオレオレ証明書への対応が冷たくなったり(笑)と、ちゃんとした証明書が欲しくなり安い証明書を探していました。
結果、年額3.65ドルでSSL証明書を手に入れるで紹介されているGOGETSSLで購入することにしました。2018年3月時点で全般的に先の記事よりは相場が上がっているみたいです。軽く検索したところ国内では1,500円/年くらいはしている感じでした。私の購入したGGSSL Domain SSLは$4.90/年でした。
ちなみにドメインの所有権の確認をするためにメールを送ってくるので取得したい証明書のドメインでメールを受け取れる必要があります。確認メールのあて先はpostmaster,webmaster,adminなどオフィシャルなアドレスしか選べないのでそれらを受けられるようにしておく必要があります。
バリデーションメールが来たらそこに書かれているURLに行き、メールに書かれているバリデーションキーを入力してバリデーション完了です。
あとは、証明書発行画面でにCSRを入れれば証明書がメールで送られてきます。(送られてくる先はドメインオーナー確認で使ったアドレスではなく、ユーザ登録に使ったメールアドレスになります)
CSRの発行方法はOpenSSLでキーペアやCSRを作成する手順などをご参照ください。
私の場合は、Ubuntuなので、以下の様にcrtファイルとkeyファイルを指定してHTTPSサイトに取得した証明書を反映して完了です。

/etc/apache2/sites-enabled/default-ssl.conf
 SSLCertificateFile /etc/ssl/certs/xxxxx.crt
 SSLCertificateKeyFile /etc/ssl/private/xxxxx.key

 

ddclientのIPv6対応

先日、WebサイトをIPv6対応にしたのですが、DynDNSのIPv6対応がまだできていなかったのでしました。
今は、サーバはUbuntu 16.04で、ddclientを使っています。しかし、パッケージ3.8.2-2ubuntu2はIPv6に対応していないため、gitからIPv6対応版を持ってきました。DynDNSの仕様とddclientの仕様の問題で、v4->v6の順に2度登録する必要があります。(v4とv6を同時に登録するAPIがないっぽい。v4エントリを更新するとv6情報がリセットされるので、v4->v6で登録するする必要あり。)

$ git clone https://github.com/ddclient/ddclient
# cp ddclient /usr/local/sbin
# cd /usr/sbin
# mv ddclinet ddclient.org; ln -s /usr/local/sbin/ddclient
ddclient_v6.confは以下にする以外はv4と同じ
ipv6=yes
use=web, web=checkipv6.dyndns.com

IPv6対応のために必要

# apt-get install libdata-validate-ip-perl

パッケージ互換性のたために/etc/ddclient.confはリンクとして残す

# cd /etc/
# mkdir ddclient
# mv ddclient.conf ddclient/ddclient_v4.conf
# ln -s ddclient/ddclient_v4.conf ddclient.conf

私はdaemonモードで動かしていたのですが、2回実行する必要があるので今回はcronで実行することに。

# cat /etc/default/ddclient
run_daemon="false"

cronに登録

# cat /etc/cron.d/ddclient
*/5 * * * * root (/usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v4.conf; /usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v6.conf) | /usr/bin/logger -t ddclient

うまくいっているようです。

Aug 14 14:55:01 abel CRON[7472]: (root) CMD ((/usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v4.conf; /usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v6.conf) | /usr/bin/logger -t ddclient)
Aug 14 14:55:02 abel ddclient: SUCCESS: updating lambeden.dyndns.org: good: IP address set to 126.203.135.154
Aug 14 14:55:03 abel ddclient: SUCCESS: updating lambeden.dyndns.org: good: IP address set to 2400:2412:cc0:ef00:20c:29ff:fe9f:326c

ubuntu 14.04 to 16.04 Upgrade

重い腰を上げてやっとこさ。16.04に上げました。
まぁ、何も起こらなければ do-release-upgrade を叩くだけで終了なわけですが、今まですんなりいったことはないので(笑)
さて、今回もやっぱり色々出ました。

    1. ネットワークが上がらない。
      do-release-upgradeの後再起動したら見事にネットワークに接続できなくなった。調べてみたらインターフェース名がeth0からens32に変わっていた。RHEL7でもあったあれですね。回避するには以下の手順。

      /etc/default/grubに
      GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
      と書いて
      # update-grub
      # reboot

      参考) https://askubuntu.com/questions/767786/changing-network-interfaces-name-ubuntu-16-04

    2. squid3のアップデートが失敗する。
      squid-common (3.5.12-1ubuntu7.3) を設定しています ...
      squid (3.5.12-1ubuntu7.3) を設定しています ...
      Removing obsolete conffile /etc/squid3/msntauth.conf ...
      Preserving user changes to /etc/squid/squid.conf (renamed from /etc/squid3/squid.conf)...
      stat: '/var/spool/squid3' を stat できません: そのようなファイルやディレクトリはありません
      chown: '/var/spool/squid3' にアクセスできません: そのようなファイルやディレクトリはありません
      dpkg: パッケージ squid の処理中にエラーが発生しました (--configure):
       サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
      Error in function:
      ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/squid.0.crash'

      どうも、/var/spool/squid3というディレクトリを探しに行って見つからないようです。squidはもう使ってないので削除しようとしたのですが、同様なエラーが出て先に進まないので/var/spool/squid3を作って実行したら消せました。

    3. do-release-upgradeした後、大量にUpdateパッケージがある。
      squidのアップデートが失敗してそこで終わってしまったせいか、大量に手動でアップデートしないといけないものがありました。地道に apt-get update *** を叩きまくれば終わります。。。
      途中いくつかこけるのがあります。例えばsa-compileがこけました。これは先にgccをupgradeすれば治ります。たいていの場合は依存関係です。
    4. redmineが消える
      apt-get install redmine すればとりあえず入る。設定も残ってました。
    5. screenが起動に失敗する
      $ screen
      Cannot make directory '/var/run/screen': 許可がありません

      と言われる。

      $ sudo mkdir /var/run/screen
      $ sudo chmod 777 /var/run/screen

      で起動するようになる。

    6. PHPが7.0になって初期に戻る。
      必要に応じて/etc/php/7.0/apache2/php.ini辺りを弄る必要がある
      PHP7.0になったことで以下の問題も出た。

      • Pukiwiki-1.4.7が動かない。PHP7に対応した1.5.1が出てるので上げる必要がある
      • WordPressのpukiwiki pluginが動作しない。もうメンテされてないのでこの際使うのを止めた。(たぶん、1.5.1を入れて少し手直しすれば動くと思うけど、メンテし続けるのが面倒なので)。ただそうするとすでにPukiWikiフォーマットで作ったページが
        PukiWiki_for_WordPress HttpError: 500 Internal Server E […]

        となってしまう。。。PukiWikiプラグインを無効化すればソースをそのまま表示はしてくれるので、そのままでもいいか。という気もする。。。
        http://blog.makotokw.com/portfolio/wordpress/pukiwiki_for_wordpress/

    7. dovecotが起動しない
      apt-get install dovecot-managesieved

      が足りなかった模様。

    8. emacs23でanthyが起動しない。
      File error: Cannot open load file, anthy

      よくわからないがemacs24にしたら問題なくなった。.emacs.elは特に変更していない。たぶん、バイトコンパイルし直せばemacs23でも動いたのかもと思っています。

    9. logrotateでrsyslogをreloadできない。/etc/logrotate.d/rsyslog内のpostrotateでreload rsyslog としていたところが、invoke-rc.d rsyslog rotateに変わった。現在の設定を引き継ぐを選んでアップデートした場合は、手で直す必要がある。

    以上、今回も盛りだくさんでした(笑)

ubuntu 14.04 dovecot auth error

update後、急にwanderlustからメールが読めなくなった。
mail.logに不審なログが。
Jun 20 00:14:10 abel dovecot: auth-worker(21971): Error: pam(xxxx,127.0.0.1): pam_start() failed: Critical error – immediate abort
調べてみると、どうやらlibpam-smbpass の問題らしい。私はsmb認証は使ってないのでさくっと apt-get remove libpam-smbpass したら直った。うーむ。
https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1571883

redmineとsvnの連携 on ubuntu 12.04LTS

[pukiwiki]
Redmineで上がっているチケットに対する対応を実際の設定ファイルのバージョン管理と連動させる事ができる。
http://redmine.jp/tech_note/subversion/
このURLに書かれている内容は、既にsvnのリポジトリが作成されている前提なので、先にSVNのリポジトリ設定をしておく必要がある。
ubuntu 12.04 LTSの場合、以下の様な手順で可能。
+subversionのインストール
# apt-get install subversion subversion-tools libapache2-svn
+apache経由で管理できるようにする(svnとredmineが同じマシンに入ってるので、ファイルを直接指定すこともできるが今回はapache経由でアクセスする様にしてみる)
# vi /etc/apache2/mods-enabled/dav_svn.conf

DAV svn
SVNParentPath /var/lib/svn
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/redmine/htpasswd
Require valid-user
Order deny,allow
Allow from 192.168.x.0/24
Deny from All

+認証用パスワードの設定
# htpasswd /etc/redmine/htpasswd ユーザ名
+apacheに設定反映
# apachectl configtest
Syntax OK
# apachectl graceful
+svnリポジトリ作成
# mkdir /var/lib/svn
# cd /var/lib/svn/
# svnadmin create config
# chown -R www-data:www-data config
+redmineのリポジトリ設定~
redmineのWebUIから[管理]-[設定]-[リポジトリ]から使用するバージョン管理システムでSubversionのチェックが入っており、グリーンのレになっていることを確認する。(だめな場合は、パッケージが入っているか、パスが通っているかなど確認する)
+redmineのWebUIから[管理]-[プロジェクト]でリポジトリを追加するプロジェクトを選び、[モジュール]でリポジトリにチェックを入れ、保存。リポジトリタブを選び、
バージョン管理システム Subversion
URL http://192.168.x.x/svn/config
ログイン ユーザ名
パスワード htpasswdで付けたパスワード
これでプロジェクトページに行けば、リポジトリというメニューが追加されているはずである。
最初のは空っぽなので、svnでインポートするなり、コミットするなりご随意に 🙂
WindowsPCでSVNを扱うなら TortoiseSVN がおすすめです。~
http://sourceforge.jp/projects/tortoisesvn/
参考
-http://wisdomtrees.net/?p=271
-http://redmine.jp/tech_note/subversion/
[/pukiwiki]

Redmine on ubuntu 12.04 TLS

[pukiwiki]
最近仕事でredmineを使うことが多い。プロジェクトでやることを管理するにはとても便利です。そんな訳で実験用と自分の備忘録を兼ねて自宅マシンにredmineを入れてみた。本当は最新版を入れてみようと思ったのだが、面倒になったのでubuntuのパッケージで(^^;
前提
-ubuntuのパッケージを使う
-redmineのDBはmysqlを使う
-mysqlはもう入っている
-apacheはもう入っている
手順
+redmineはRuby on Railsというプラットホームで動作するのだが、apacheから使うためにはlibapache2-mod-passengerというパッケージが必要。依存関係でその他色々入るはず。
# apt-get install libapache2-mod-passenger
インストールすると勝手に、mod-enableされるので、特に設定は不要。
+redmineインストール
# apt-get install redmine-mysql
# apt-get install redmine
途中で色々聞かれるので適時答える。
–/etc/redmine/に設定ファイルを置くか?→YES
–DBに何を使うか→MySQL
–MySQLの管理パスワードは何か→MySQLのrootのパスワード入力
–redmineDBのパスワード→決める
–MySQLの接続方法→UNIXソケット
+redmineがWebから見えるようにApacheの設定。私は http://(ホスト名)/redmine/ で見えるようにしたかったので、以下の様に設定。
/etc/apache2/conf.d/redmine.conf
# apache2 serves public files
Alias “/redmine/plugin_assets/” /var/cache/redmine/default/plugin_assets/
Alias “/redmine” /usr/share/redmine/public

RailsBaseURI /redmine
RailsEnv production
SetEnv X_DEBIAN_SITEID “default”
SetEnv RAILS_RELATIVE_URL_ROOT “/redmine”


Order deny,allow
Allow from All

+apacheに反映
# apachectl configtest
Syntax OK ←OKであることを確認
# apachectl graceful
+redmineの http://(ホスト名)/redmineにアクセスし、初期設定をする。~
初期状態ではadmin/adminでログインできる。
++右上の[My account]→[Change password]でパスワードを変更する。
++LanguageをJapanese(日本語)にする。(ご随意に)
++左上のの[管理]→[認証]で認証あ必要にチェックを入れる (そうしないと認証なしで見えてしまう)
APPENDIX
-通知メールを送るための設定~
# cp /usr/share/redmine/config/configuration.yml.example /etc/redmine/default/configuration.yml
# vi /etc/redmine/default/configuration.yml
こんな感じ
default:
# Outgoing emails configuration (see examples above)
email_delivery:
delivery_method: :smtp
smtp_settings:
address: “localhost”
port: 25
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
# address: smtp.example.net
# port: 25
# domain: example.net
# authentication: :login
# user_name: “redmine@example.net”
# password: “redmine”
参考
-http://niceymercibeaucoup.blogspot.jp/2013/01/redmineubuntu1210.html
-http://redmine.jp/tech_note/first-step/admin/
[/pukiwiki]

muninでUPS情報を監視する

ubuntu 12.04の標準muninパッケージにはnutを監視するプラグインは含まれていない。
nutups2_というプラグインがmuninサイトから入手できる。

利用方法

  1. 入手したnutups2_を/usr/share/munin/plugins/に置く。
  2. パーミッション設定
  3. # chmod 755 /usr/share/munin/plugins/nutups2_
  4. プラグイン登録
  5. # cd /etc/munin/plugins
    # munin-node-configure --suggest --shell
    表示された通りに実施
    # ln -s /usr/share/munin/plugins/nutups2_ /etc/munin/plugins/nutups2_ES500_charge
    # ln -s /usr/share/munin/plugins/nutups2_ /etc/munin/plugins/nutups2_ES500_voltage
    
  6. 設定反映
  7. # service munin-node restart
    

WordPressに移行する予定

長らくPukiwikiを使ってきたが、さすがに老朽化が否めないので他のBlog/Wikiツールを探していたのだが、最終的にXoopsかWordPressか悩んだ結果なんとなくWorPressにしてみた(笑)

WordPressで実現したいことは以下の通り

  1. facebookやtwitterと連携がしたい
    Tweet, Like, Google +1 and Shareというプラグインが中々良さそう
  2. Google Adsenseに対応させたい
    Google Adsenseというプラグインが良さそう
  3. pukiwikiの様にWikiで入力したい
    PukiWiki for WordPressというプラグインがある

導入にあたって参考にしたページ

旧ページは移行するのも大変なのでそのままリンクしておこう(笑)
http://lambeden.dyndns.org/~ktmr/pukiwiki/