linuxcontainersでなくてcanonicalのページのほうが、Ubuntuを使う場合は 参考になるっぽい。 swapaccount=1を/etc/default/grubに追加した。 https://ubuntu.com/server/docs/containers-lxd いちどreboot sudo zfs create tank/zlxd sudo snap install lxd sudo lxd init 以下、途中で入力を誤ったら、Ctrl-Cで終了させればsudo lxd initからやり直すことができる。 Would you like to use LXD clustering? (yes/no) [default=no]: n Do you want to configure a new storage pool? (yes/no) [default=yes]: y Name of the new storage pool [default=default]: lxdpool0 Name of the storage backend to use (lvm, zfs, ceph, btrfs, dir) [default=zfs]: zfs Create a new ZFS pool? (yes/no) [default=yes]: n Name of the existing ZFS pool or dataset: tank/zlxd Would you like to connect to a MAAS server? (yes/no) [default=no]: n Would you like to create a new local network bridge? (yes/no) [default=yes]: y What should the new bridge be called? [default=lxdbr0]: What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: Would you like LXD to be available over the network? (yes/no) [default=no]: n Would you like stale cached images to be updated automatically? (yes/no) [default=yes] y Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: zfs list で、lxdのために tank/zlxdに作られたディレクトリ?が一覧できる。 lxcコマンドをフルパス指定なしで使いたい場合、 /snap/bin にパスを通すように .zprofile を編集する sudoできない一般ユーザでもlxcは実行可能(ただし、lxdグループにそのユーザを追加する必要あり) sudo adduser hogeuser lxd lxc launch ubuntu:bionic b1 lxc exec b1 -- bash でインスタンスにログインできる
コンテナ上(ただしCentOS)でのredmineデータベースのバックアップ
(cd /tmp && sudo -u postgres pg_dump redminedb -Fc) | xz -c > ~/redminedb.xz (cd /tmp && sudo -u postgres pg_dump gitbucketdb -Fc) | xz -c > ~/gitbucketdb.xz (cd /var/lib/redmine && sudo -u nginx tar cf - files) | xz -c > ~/redminefiles.tar.xz
lxc image info ubuntu:20.04 lxc launch ubuntu:20.04 websvr1 lxc exec websvr1 -- bash コンテナwebsvr1の中で ~/.lesskey設定 apt-get install zsh redmine4.1はruby2.7には非対応、自分で2.6を入れる snap install ruby --classic --channel=2.6/stable https://www.redmine.org/projects/redmine/wiki/RedmineInstall の手順に従いインストールを進める (ただし http://blog.redmine.jp/articles/3_4/install/ubuntu/ もごちゃまぜ) sudo locale-gen ja_JP.UTF-8 sudo gem install bundler --no-document apt-get install imagemagick gitは標準で入っていた git clone https://github.com/redmine/redmine.git cd redmine git checkout 4.1-stable postgresqlのセットアップ apt-get install postgresql
/etc/postgresql/12/main/pg_hba.confを編集
# IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
だったところを以下のように修正する
# IPv4 local connections: host gitbucketdb gitbucketuser 127.0.0.1/32 md5 host redminedb redmineuser 127.0.0.1/32 md5 host all all 127.0.0.1/32 md5 # IPv6 local connections: host gitbucketdb gitbucketuser ::1/128 md5 host redminedb redmineuser ::1/128 md5 host all all ::1/128 md5
confを変えたので systemctl reload postgresql ホスト側からコンテナへ、lxc file pushでredmineのバックアップファイルを送り込む cd /tmp sudo -u postgres createuser -P redmineuser (パスワードは適当に) sudo -u postgres createuser -P gitbucketuser (パスワードは適当に) sudo -u postgres createdb redminedb sudo -u postgres pg_restore -d redminedb <データベースをダンプしてできたファイル> ※「error: could not execute query: ERROR: schema "public" already exists」というメッセージが出るかもしれないが、特に問題はない sudo -u postgres psqlして、 \lで出てくる表示にredminedbがあればrestore成功している。 sudo -u postgres createdb gitbucketdb sudo -u postgres pg_restore -d gitbucketdb <データベースをダンプしてできたファイル>
nginxがコンテナ側にも必要なので apt-get install nginx cd /var/lib chown -R www-data. redmine cd /var/lib/redmine sudo -u www-data tar xf /tmp/redminefiles20200803.tar bundle installのコマンド実行は、www-dataとしてやったほうがよいらしい sudo -u www-data bundle install --without development test したら cannot create "/var/www/snap/ruby/180" と怒られたので mkdir /var/www/snap ; chown -R www-data. /var/www/snap してみた でもダメ、snapでrubyを使うのはあきらめる。 rm -rf /var/www/snap snap remove ruby curl -O https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.6.tar.gz tar xf ruby-2.6.6.tar.gz cd ruby-2.6.6 apt-get install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev apt-get install postgresql-server-dev-12 apt-get install libmagick++-dev fonts-takao-pgothic apt-get install libgdbm-dev libgdbm-compat-dev ./configure --disable-install-doc make -j4 (4のところは使っているPCの論理コア数に合わせる) make install chown -R www-data. /var/www sudo -u www-data gem install bundler 「You don't have write permissions for the /usr/local/lib/ruby/gems/2.6.0 directory.」と怒られるが、無視しても問題ない模様 sudo -u www-data gem list でbundlerがLOCAL GEMSに含まれていれば、bundlerのインストールは成功 bundle installより先にconfig/database.ymlを編集しろと怒られた。 /var/lib/redmine/config/database.yml を新規作成して編集
production: adapter: postgresql database: redminedb host: localhost username: redmineuser password: "XXXXXXX" encoding: utf8
config/configuration.ymlも作成 http://blog.redmine.jp/articles/3_4/install/ubuntu/ を参考 chmod 600 database.yml configuration.yml chown www-data. database.yml configuration.yml cd /var/lib/redmine sudo -u www-data bundle install --path vendor/bundle --without development test 「HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.」という警告が出たので、 /var/lib/redmine/config/application.rb の「config.i18n.fallbacks = true」を「config.i18n.fallbacks = [I18n.default_locale]」に直して再度 sudo -u www-data bundle install --path vendor/bundle --without development test sudo -u www-data bundle exec rake generate_secret_token sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate