Debian8(jessie)での自動起動とsvnの起動スクリプト

debianの自動起動にはいつのまにかinsservというのを使うことになっています。

$ sudo insserv -s

こんな感じに表示されます。

K:01:0 1 6:nginx
S:17:2 3 4 5:nginx

ランレベルが2 3 4 5 では起動し、0 1 6では起動しない、ということになります。

サービスへの追加と停止はこうする。

# 追加
$ sudo insserv -d nginx
# 削除
$ sudo insserv -r nginx

insserv に追加されないサービスの時

実はsvnは追加されなかった。
ので、ちょうどよいので、自前で起動スクリプトを作って登録する方法を書いておこう。

通常は/etc/init.dの下に起動スクリプトが生成されます。

svnのは作られなかったので・・・作ってみました。

svnserve というファイル名で/etc/init.dの下に配置しました。

#!/bin/bash
### BEGIN INIT INFO
# Provides:          svnserve
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: svnserve
### END INIT INFO

prog=svnserve
pidfile=/var/run/svnserve.pid
#svnserve=/usr/local/subversion/current/bin/svnserve
svnserve=/usr/bin/svnserve
RETVAL=0
ROOT=/var/svn
PORT=3691

start() {
        [ ! -f $pidfile ] || exit 1
        echo -n $"Starting $prog: "
        start-stop-daemon --start --quiet --pidfile $pidfile --make-pidfile --exec $svnserve -- -d -r $ROOT --listen-port $PORT
        RETVAL=$?
        echo start svnserve
        return $RETVAL
}

stop() {
        [ -f $pidfile ] || exit 1
        echo -n $"Stopping $prog: "
        start-stop-daemon --stop --exec $svnserve
        rm -f $pidfile
        RETVAL=$?
        echo stop svnserve
        return $RETVAL
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status $svnserve
        RETVAL=$?
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
        RETVAL=1
esac

BEGIN INIT INFO という節がはじめに必要です。
起動させたいランレベルを書いておきます。通常は丸々コピーで良いでしょう。
また
ROOT=/var/svn
PORT=3691

と言う変数を用意して、ルートパスとポート番号を指定できるようにしました。
apacheをいれないつもりなのでhttp経由での接続は不可であるため、デフォルトの3690番は使わないほうがいいだろうとおもいます。

登録は簡単です。

$ sudo insserv?svnserve

削除はこうです。

$ sudo insserv?-r svnserve

確認はこう

$ sudo find /etc |grep svnserve
/etc/rc3.d/S01svnserve
/etc/rc4.d/S01svnserve
/etc/rc1.d/K01svnserve
/etc/rc2.d/S01svnserve
/etc/rc5.d/S01svnserve
/etc/rc6.d/K01svnserve
/etc/rc0.d/K01svnserve

 

試しに再起動してみて、ちゃんと起動しているか確かめます。

起動ユーザーはrootになりますよ。

Debian8(jessie)でsubversion(svn)をセットアップ

svnも移行しなきゃならないです。
本当はapacheでhttp接続できるようにしたいところですが、nginxでは無理そうなので、
svn://?
でつなぐ方向で諦めることにしました。

インストール

$ sudo apt-get install subversion

これだけです。

設定

リポジトリを作ってその中の設定ファイルを編集していきます。
/var/svn にtestという名前のリポジトリを作ります。

$ sudo mkdir /var/svn
$ cd /var/svn
$ sudo svnadmin create test

権限はデーモンを起動させたユーザーにすればいいようです。

$ sudo chown -R svn:svn test

コミットする時のユーザーとパスワードを設定します。
このユーザーはシステムに存在する必要はないようです。迷う部分ですね。

$ sudo vi /var/svn/conf/passwd
[users]
test = test

書式は
ユーザー名 = パスワード
です。

$ sudo vi /var/svn/conf/svnserve.conf

以下の3行をコメントを外して生かします。

anon-access = read
auth-access = write
password-db = passwd

サービスを起動

デーモンとして起動させます。
上にも書きましたが、起動させたユーザーの書き込み権限でリポジトリにアクセスしますので注意です。

$ svnserve -d

リポジトリのURLはこうなります。
この場合はパスはルートから書きます。

 

リポジトリのルートを指定したり、ポートを変更するにはこうします。

svnserve -d -r /var/svn --listen-port 3691

リポジトリURLは以下のようになります。ポート番号を:でつければいいです。

さらに、複数リポジトリを設定したい場合は複数のリポジトリを置くだけです。

svn://192.168.26.149:3691/test1
svn://192.168.26.149:3691/test2
svn://192.168.26.149:3691/test3

こんな感じで。

新しく起動させるにはkillしてプロセスを停止させないと2重3重起動になってしまいます。
起動スクリプトを使うべきですが、通常/etc/init.dにインストールされるはずの起動スクリプトはインストールされませんでした。

リポジトリの移行

バックアップ、リストア、と言う専用のコマンドがあるのですが、
試しにごっそりコピーしてみた所普通に移行が可能でした。
自分だけでしか使ってないという場合には、tarで固めて持っていくだけで良さそうです。

 

Debian7(wheezy)をDebian8(jessie)にアップグレード。ついでにPHP7もインストール

本来はDebian8(jessie)を新規でインストールした方がいいに決まっているのですが、DTIの方で提供されていないのですから仕方ありません。

こちら

を参考にさせていただきました。
ただし、この方法では駄目みたいですよ。

ここ

にありますようにSystemdが邪魔して起動しなくなってしまうようです。
この件はまたあとで書くとして、まずはVMWareにて実験をしてみました。

 

まずはsudoとsshの設定

インストールしたてはまずはsudoとsshの設定ですね。

sudo

ルートになって作業します。

# vi /etc/sudoers
user ALL=(ALL:ALL) ALL

これでuserでsudoが使えるようになります。

ssh

$ sudo apt-get install ssh

$ sudo vi /etc/ssh/sshd_config

PermitRootLogin yes
↓
PermitRootLogin no

Port 22
↓(任意の番号に変更)
Port 9999

$ sudo service ssh restart

Debian7(wheezy)をDebian8(jessie)にアップグレード

1./etc/apt/sources.listを編集

もとにあったのはコメントにしてこれを追加します。

deb http://ftp.riken.jp/Linux/debian/debian/ jessie main
deb-src http://ftp.riken.jp/Linux/debian/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

# jessie-updates, previously known as ‘volatile’
deb http://ftp.riken.jp/Linux/debian/debian/ jessie-updates main
deb-src http://ftp.riken.jp/Linux/debian/debian/ jessie-updates main
# PHP 7
deb http://packages.dotdeb.org jessie all

ついでにPHP7をインストールするためのリポジトリも追加しておきます。

 

2.apt-get update

警告が出た場合

apt-get install debian-archive-keyring

を実行します。VMWareでは警告が出ませんでした。

3.apt-get dist-upgrade

 

で、結構時間がかかりますが、アップグレードされます。
serversman@vps錠では関係ありませんが、結構UIも変わりますね。

バージョンを確認するにはこうします。

$ cat /etc/issue
Debian GNU/Linux 8 \n \l

 

PHP7をインストール

Debian8(jessie)に無事アップグレードできたらPHP7をインストールします。

 

1.dotdebのリポジトリの鍵情報をダウンロードして追加

$ wget https://www.dotdeb.org/dotdeb.gpg
$ sudo apt-key add dotdeb.gpg

 

2.インストール確認

$ sudo apt-get update

-sオプションを使って、php7がインストールできるようになったか確認します。

$ sudo apt-get -s install php
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
php
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
Inst php (1:7.0+42-1~dotdeb+8.1 packages.dotdeb.org:jessie [all])
Conf php (1:7.0+42-1~dotdeb+8.1 packages.dotdeb.org:jessie [all])

 

3.インストール

php7を単独でインストールしようとするとapache2も入ってしまうそうです。
なので、こうします。ついでに、あとでwordpressをインストールするためのモジュールもいれてしまいましょう。

$ sudo apt-get install php7.0 php7.0-fpm php7.0-mysql php7.0-mbstring php7.0-xml php7.0-gd php7.0-curl

 

4.バージョン確認

バージョン確認して、おしまい!

$ php -v
PHP 7.0.25-1~dotdeb+8.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.25-1~dotdeb+8.1, Copyright (c) 1999-2017, by Zend Technologies

DTIのServersMan@VPSのDebian7ではPHP7がはいらないみたい

色々迷ってDebianだーときめて、とりあえずVMwareにインストールしてみたのだけど、
Debianってすでにバージョン9になっているのに、
提供されているのは7までなんですよね。

試しにVMWareに、Debian7(wheezy)をインストールしてみると、すぐに困ったことが起きました。
PHP7が上手くインストールできない!のです。

“Debian php7″のように検索するとDebian8(jessie)の情報が出てきてしまいます。

Debian8(jessie)のphp7のインストール方法を試す

以下を参考に・・・

ざっと以下の手順です。

1./etc/apt/sources.list に http://packages.dotdeb.org を追加

# PHP 7
deb http://packages.dotdeb.org jessie all

2. 鍵情報をダウンロードして追加

$ sudo wget https://www.dotdeb.org/dotdeb.gpg
$ sudo apt-key add dotdeb.gpg

3.?apt-get update

4.?apt-get install php

残念ながら、Debian7(wheezy)で行ってもinstallでエラーになってしまいます。
sources.listがjessieになっているのが問題かと思い、wheezyに変えてみましたが、そういう問題では無いようでNGでした。

Debian7(wheezy)をDebian8(jessie)にアップグレードしてしまえば?

どうやら、DTIのServersman@vpsをDebianで使っている方はDebian8(jessie)にアップグレードして使っている方が多いようです。ちなみに最新は9なのですが、サーバー構成に問題があるようでアップグレードは不可能なようです。

というわけで、まずはVMWareでDebian7(wheezy)をDebian8(jessie)にアップグレードの実験を行いました。

DTIのServersMan@VPS(Entryプラン)のOSをどうするか

昔はCentOS5の32bitしか選択肢はありませんでした。

今はこ?んなに選べるようになっています。

今まで通りCentOSにして最新版の7にしたいところですが、実はPHP7が上手くはいらないらしいです。
だとしたらUbuntuかDebianかなあ。

GUIで使うのならUbuntuも良いと思ったのですが、CUIでしか使いません(つかえない?)のでDebianが無駄がなさそうですね。

Debian7の64Bitで決まりかなあ?

 

CentOS

CentOSのダウンロードはこの辺から。

フル版でisoが4GB以上あるようです。

Debian

Debianのダウンロードはこの辺から。

最新の9.2.1しかダウンロードできないのかな・・・?

ちょっと調べているのだけど、古いバージョンが見つからない・・・。なんでかな??

Debian7発見。ここから

Debian6はここから

6を選ぶメリットはないかな?使うなら7の64ビットかなあ。
でも、ちょっと見てみたら、結構容量が大きいのですね・・・!ダントツかも。
DVDメディアでも3枚とかです。UbuntuはDVD1枚だったような気がしますが・・・。

ネットインストールというのなら小さいですけど、時間がかかりそうですね。
ちょっとおもしろそうなので、VMWareで試しインストールしてみようかな・・・?

 

DebianはMacOSみたいにコードネームがついているようですね。

Debian 9 (stretch)
Debian 8 (jessie)
Debian 7 (wheezy)
Debian 6.0 (squeeze)

8や9はまだServersMan@VPSではまだ選べないようですね。

Ubuntu

ダウンロード

ここが一番まとまってる印象。
実際には16.04が最新のようですけど、選択できるのは12と14です。

Ubuntu 12.04.1 – 2017年4月までサポートとなっていますので、今選ぶなら14かな??

 

とりあえず?

とりあえずまずはDebian7で行こうとおもいます。そのために1回ネットインストールを試してみようかと思っています。すんなり行くかな・・・?

 

DTIのServersMan@VPS(Entryプラン)をそろそろリストアしたい

DTIのServersMan@VPS(Entryプラン)を長年使っているのだけど、
HDDはラジコの録音でいっぱいだし、録音失敗するし、サポート切れのCentOS5(32ビット)だし、PHP7いれられないし、、、で、リストアしたいけどなかなかできずにいました。

でも死蔵していた3TBのHDDをPCにやっと接続したので、一旦データを吸い上げることが可能になった。というわけで、リストアを考えたいです。

ラジコデータの吸い上げ

一番必要なのはラジコの録音データ。もう聞かない(聞けない・・・)ほど溜まってしまっているが、やはり念のため・・・。

設定のバックアップ

いろいろな設定をしたけど全然覚えてない。いまつかっているCentOS5(32ビット)に戻すことはもう不可能になるので、設定そのものが今後使えるのかどうかわからない。と言うかいらないソフト入れないようにしたいけど。

Webmin

事あるごとにこれがはいっていたことによって助かった。SSHがログイン不能になってもこれは大丈夫だったんだよね。メールサーバーが襲われて応答不能になったりしたときも、WEBサーバーは強いんだね。Webminから怪しいプロセスをkillしまくることで何度となく復活したのです。というわけで、これは外せない。インストールは簡単だけど。

1.560を最後で以降に日本語化ができなくなっています。

日本語化可能最終バージョン
http://sourceforge.net/projects/webadmin/files/webmin/1.560/webmin-1.560-1.noarch.rpm/download

 

subversion(SVN)のリポジトリ

Git全盛だけど、どうせ自分ひとりでしか使わないのでSVNをそのまま使っています。
バージョン管理が簡単にできてほんとうに便利。ただ、以前からサーバー移転のときってどうするのか疑問だった。
設定ファイルはこのあたり
/etc/httpd/conf.d/subversion.conf

WordPress

まだあまり運用していないけど、いくつか設定済みなので移行しようと思う。

apache関連

Nginxに変更しようと思ってる。
けど、どんな設定してたかは保存しておこうと思う。

 

iptables、hosts.allow、hosts.deny

一時期あまりにも海外からの不正アクセスが多くて海外アクセスを遮断した。
/etc/sysconfig/iptables
設定コマンドもあるけど、このファイルを編集してしまったほうがわかりやすくて好み。

sshはアクセス元を厳しくしてる。
/etc/hosts.allow

ALL:*.eo.eaccess.ne.jp
ALL:*.sakura.ne.jp

な感じにして、
/etc/hosts.deny

ALL:ALL
でallow以外をすべて拒否してる。

 

ssl化の不都合

Let’s Encryptを簡単に適用させる新機能がさくらインターネットに追加されるということで、
新しいサイトを立ち上げてみました。
せっかくなので、初期状態からSSL化してみたのですが、思わぬ不都合がありました。

動画の貼り付けで不都合

実はパンドラTVにアップロードして、動画を貼り付けようと考えていました。
で、試してみると、何も表示されない・・・。
よくChromeのアドレスバーを見て見るとxマークが出ており、「このページは承認されていないソースからのスクリプトを読み込もうとしています」と表示しました。

アイコンをクリックして「安全でないスクリプトを読み込む」とすれば読み込めますが、
訪れてくれた方がそれをやってくれるとはとても思えません。

ソース

埋め込みソースはこのような感じです。

<object id=”movie” width=”400″ height=”327″ classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0″ align=”middle”> <param name=”quality” value=”high” /> <param name=”movie” value=”http://flvr.pandora.tv/flv2pan/flvmovie.dll/userid=radiolife&amp;prgid=55252446&amp;skin=1&amp;countryChk=jp” /> <param name=”allowScriptAccess” value=”always” /> <param name=”allowFullScreen” value=”true” /> <param name=”wmode” value=”transparent” /> <embed src=”http://flvr.pandora.tv/flv2pan/flvmovie.dll/userid=radiolife&amp;prgid=55252446&amp;skin=1&amp;countryChk=jp” type=”application/x-shockwave-flash” wmode=”transparent” allowscriptaccess=”always” allowfullscreen=”allowfullscreen” pluginspage=”http://www.macromedia.com/go/getflashplayer” width=”400″ height=”327″ /></object>

なるほど・・・。

ソースの中でhttpになってしまっています。pandraTVもmacromediaもSSL化していないことが原因のようです。

ここを試しにhttpsに書き換えますと警告は出なくなりました。
ところが再生も無理・・・。
macromediaはhttpsでも接続できるようですが、pandraTVが対応していません。

これはちょっと困りました。

 

 

ラズパイでSSL化(https)対応してみる

certbot-autoがインストールできたので、使用してみます。

実行する前にnginxを停止させてからでないとストップしてしまいます。
80番ポートを使うからですね。

$ sudo service nginx stop
$ sudo ./certbot-auto certonly --standalone -t
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): mlincyan@gmail.com

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c'
to cancel): m-ynko.azi2.com
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for m-ynko.azi2.com
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/m-ynko.azi2.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/m-ynko.azi2.com/privkey.pem
Your cert will expire on 2018-01-08. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

 

 

更新するのは簡単で「renew」すればいいだけです。
古い情報ではもっと色々オプションを追加しているのですけど、今は不要です。

$ sudo ./certbot-auto renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/m-ynko.azi2.com.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/mlin.ga.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

-------------------------------------------------------------------------------

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/m-ynko.azi2.com/fullchain.pem (skipped)
  /etc/letsencrypt/live/mlin.ga/fullchain.pem (skipped)
No renewals were attempted.
-------------------------------------------------------------------------------

実際にはSKIPされています。

で、実はこのままrenewするとstandaloneで実行されてしまうので、nginxを停止させる必要があります。
これだとちょっとあれなので、WEBROOTで実行するように変更しておきます。

$ ./certbot-auto certonly --webroot -w /home/mlin/www/html/m-ynko.azi2.com -d m-ynko.azi2.com --agree-tos --force-renewal -n
Requesting to rerun ./certbot-auto with root privileges...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for m-ynko.azi2.com
Using the webroot path /home/mlin/www/html/m-ynko.azi2.com for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Unable to clean up challenge directory /home/mlin/www/html/m-ynko.azi2.com/.well-known/acme-challenge

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/m-ynko.azi2.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/m-ynko.azi2.com/privkey.pem
   Your cert will expire on 2018-01-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

----

diffコマンドで何が変わったか見てみます。

/etc/letsencrypt $ diff renewal.def/m-ynko.azi2.com.conf renewal/m-ynko.azi2.com.conf
11c11
< authenticator = standalone --- > authenticator = webroot
13a14,16
> webroot_path = /home/mlin/www/html/m-ynko.azi2.com,
> [[webroot_map]]
> m-ynko.azi2.com = /home/mlin/www/html/m-ynko.azi2.com

ちなみに
standalone方式は自分自信でWEBサーバーを立てて認証をするのですけど、
WEBROOT方式は/.well-known/acme-challenge/というディレクトリに認証キーをおいて認証をします。

cronはこんな感じで。

0 4 1 * * /usr/local/certbot/certbot-auto renew && systemctl reload nginx

reloadしないと反映されないらしい。再起動は不要みたいです。
でもsystemctlはルートじゃないと駄目なのでルートのcrontabに設定しないと駄目です。

 

nginxの設定は最低限以下を追加すればOKです。
server{ の中に書きます。

listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/m-ynko.azi2.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/m-ynko.azi2.com/privkey.pem;

 

うまく起動しなくなったときには設定ファイルをテストします。

$ sudo nginx -t

 

起動しなくなると結構ハマることがあるので、できればバックアップを行ってから実行しましょう。

さくらインターネットでSSL化(https)してみる

2017/10/11 追記
こんなタイミングで、さくらインターネットでLet’s Encryptを簡単に適用させる新機能が追加されるようです。なんと自動更新!だそうです。10/17からということなので、楽しみです!

というわけで以下の情報は古い情報ということになります。

“さくらインターネットでSSL化(https)してみる” の続きを読む

[ラズパイ]一旦RAMディスクを解除する方法

急にSSL対応が気になりました。
証明書はお金がかかってしまうのですけど、
Let’s Encryptというのを使えば3ヶ月更新ではありますが無料で使えるそうです。
しかも、さくらインターネットのようなレンタルサーバーだと更新が面倒ですが、
ラズパイの場合はコマンド一発で更新までできるそうです。
これは使わない手はありません。

$ sudo git clone https://github.com/letsencrypt/letsencrypt
こうするとletsencryptというディレクトリにすべてコピーされてきます。

この中にある

  • letsencrypt-auto
  • certbot-auto

を使うのですけど、使ってみた感じどちらも同じようでした。
実際にはletsencryptがcertbotに変更になっているということで、letsencryptが名残なのでしょう。

sudo ./certbot-auto

のように実行しますと、必要なモジュールがインストールされます。

ところが・・・/tmpがいっぱいになってしまいどうしてもインストールが完了しませんでした。

RAMディスクを一旦無効にする

実はSDカードの延命の為に、tmpはRAMディスクに変更してあります。
ところがそのせいで容量が足りずエラーになっていました。

$ df -k
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 59388044 43522796 12825404 78% /
devtmpfs 468148 0 468148 0% /dev
tmpfs 472756 0 472756 0% /dev/shm
tmpfs 472756 6460 466296 2% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 472756 0 472756 0% /sys/fs/cgroup
tmpfs 32768 168 32600 1% /var/log
tmpfs 16384 0 16384 0% /var/tmp
tmpfs 32768 8 32760 1% /tmp
/dev/mmcblk0p1 57288 22288 35000 39% /boot
tmpfs 94552 4 94548 1% /run/user/1000
tmpfs 94552 0 94552 0% /run/user/1001

/tmpがtmpfsになっています。
以下のような確認方法でもいいです。

$ cd /tmp
$ df -k .
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
tmpfs 32768 8 32760 1% /tmp

これを変更するには/etc/fstabを編集します。

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
# 一時フォルダをRAMディスクにマウント
tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0
# /var/log をRAMディスクにマウント
tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0

とりあえず、tmpfsの行をコメントしてしまいます。
そうしたら、一旦再起動します。

$ df -k
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 59388044 43480152 12868048 78% /
devtmpfs 468148 0 468148 0% /dev
tmpfs 472756 0 472756 0% /dev/shm
tmpfs 472756 6448 466308 2% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 472756 0 472756 0% /sys/fs/cgroup
/dev/mmcblk0p1 57288 22288 35000 39% /boot
tmpfs 94552 4 94548 1% /run/user/1000
tmpfs 94552 0 94552 0% /run/user/1001

/tmpのマウントが消えました。
実際には1行目の/dev/rootに含まれるようになります。

$ cd /tmp
$ df -k .
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 59388044 43510900 12837300 78% /

この状態で

sudo ./certbot-auto

でやっとインストールが通りました。

インストールできたら、fstabを戻してまた再起動します。

ちゃんとRAMディスクに戻ったことも確認することを忘れることなく。