ラベル Wiki の投稿を表示しています。 すべての投稿を表示
ラベル Wiki の投稿を表示しています。 すべての投稿を表示

2022年5月17日火曜日

Ubuntu 22.04にZimをインストールする

Zim はデスクトップWikiアプリです。ローカルで自分だけのwikiページを作成して情報を整理することができます。

〇Zimの画面

Ubuntu Softwareによるインストール方法

1. Ubuntu Softwareを起動して、zimを検索します。

2.zimのインストールボタンをクリックします

コマンドによるインストール方法

シェルから以下のコマンド実行します
sudo apt-get update

sudo apt-get -y install zim

関連情報

・Zimに関する他の記事はこちらを参照してください。

2022年2月14日月曜日

Microk8sでlocal永続ボリュームを使用するDokuwikiをデプロイする

Microk8sでlocal永続ボリュームを使用するDokuwikiをデプロイするには、以下の手順を実行します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
Microk8sホスト上で、以下のコマンドを実行してlocal永続ボリュームで使用するディレクトリを作成します。
sudo mkdir -p /var/dokuwiki

sudo chown 1001:1001 /var/dokuwiki

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
cat << EOF > local-dokuwiki-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-dokuwiki-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/dokuwiki
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-dokuwiki-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF > local-dokuwiki-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-dokuwiki-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-dokuwiki-pv
EOF

microk8s kubectl apply -f ./local-dokuwiki-pvc.yml

4. Deploymentの作成
以下のコマンドでbitnami/dokuwikiのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > dokuwiki-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: dokuwiki-deployment
  labels:
    app: mydokuwiki
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mydokuwiki
  template:
    metadata:
      labels:
        app: mydokuwiki
    spec:
      containers:
      - name: mydokuwiki
        image: bitnami/dokuwiki:latest
        ports:
        - containerPort: 8080
        env:
        - name: DOKUWIKI_USERNAME
          value: "dokuwiki"
        - name: DOKUWIKI_FULL_NAME
          value: "テストユーザ"
        - name: DOKUWIKI_PASSWORD
          value: "mydokuwiki"
        - name: DOKUWIKI_WIKI_NAME
          value: "テストDokuwiki"
        - name: DOKUWIKI_EMAIL
          value: "dokuwiki@localhost.localdomain"
        volumeMounts:
        - name: documentroot
          mountPath: /bitnami/dokuwiki
      volumes:
      - name: documentroot
        persistentVolumeClaim:
          claimName: local-dokuwiki-pvc
EOF

microk8s kubectl apply -f ./dokuwiki-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > dokuwiki-service.yml
apiVersion: v1
kind: Service
metadata:
  name: dokuwiki-service
spec:
  selector:
    app: mydokuwiki
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8080
EOF

microk8s kubectl apply -f ./dokuwiki-service.yml
ブラウザからhttp://<Microk8sホスト名またはIP>:8080/ にアクセスします

〇DokuWikiの画面

2020年4月26日日曜日

Ubuntu Desktop 20.04にZimをインストールする

Zim はデスクトップWikiアプリです。ローカルで自分の知識を記録・管理することが出来ます。

〇Zimの画面


〇インストール方法
シェルから以下のコマンド実行します
sudo apt-get -y install zim

○関連情報
・Zimに関する他の記事はこちらを参照してください。

2020年3月28日土曜日

Raspberry Pi(Raspbian Buster)にZimをインストールする

Zim はデスクトップWikiアプリです。

〇Zimの画面

〇インストール方法
シェルから以下のコマンド実行します
sudo apt-get -y install zim

○関連情報
・Zimに関する他の記事はこちらを参照してください。

2019年9月21日土曜日

VagrantでDokuWikiをインストールした仮想マシン(Debian Buster/10)を構築する

DokuWikiはデータベースを必要としないWikiソフトウェアです。

○DokuWikiの画面


○構築方法
以下のVagrantfileを使用して、DokuWikiをインストールした仮想マシンを構築できます。
ブラウザからhttp://192.168.1.103/dokuwiki/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-10"
  config.vm.hostname = "db10dokuwiki"
config.vm.network "public_network", ip:"192.168.1.103", :netmask => "255.255.255.0"
config.vm.network "private_network", ip: "192.168.55.103", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db10dokuwiki"
     vbox.gui = true
     vbox.cpus = 2
     vbox.memory = 2048
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install task-japanese gawk
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
timedatectl set-timezone Asia/Tokyo

# install apache2 dokuwiki
apt-get -y install php7.3 libapache2-mod-php7.3 apache2 php7.3-mbstring php7.3-xml

# install dokuwiki
wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar xvfz dokuwiki-stable.tgz
mv dokuwiki-2018-04-22b /var/www/html/dokuwiki
chown -R www-data:www-data /var/www/html/dokuwiki

systemctl restart apache2

echo 'access http://192.168.55.103/dokuwiki/'

SHELL
end

2018年8月15日水曜日

VagrantでZim、Xfce Desktop環境、XRDPがインストールされた仮想マシン(Ubuntu18.04)を構築する

Zim はデスクトップWikiアプリです。

〇Zimの画面


〇構築方法
以下のVagrantfileを使用して、Zim 、Xfce Desktop環境、XRDPをインストールした仮想マシン(Ubuntu18.04)を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はvagrant、パスワードもvagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.hostname = "ub1804xfceziml"
config.vm.network :public_network, ip:"192.168.1.117"
config.vm.network "private_network", ip: "192.168.55.117", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = " ub1804xfceziml"
     vbox.gui = true
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get -y install language-pack-ja
sed -i.bak -e "s#http://archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g" /etc/apt/sources.list
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
apt-get -y install xrdp=0.9.5-2 fcitx-mozc xubuntu-desktop language-pack-ja language-pack-ja
im-config -n fcitx

apt-get -y install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04
apt-get -y install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11

sed -i -e "s/allowed_users=console/allowed_users=anybody/" /etc/X11/Xwrapper.config

echo "xfce4-session" > /home/vagrant/.xsession
apt-get -y purge light-locker

# install zim
apt-get -y install python-cairo python-gobject-2 python-gtk2 python-xdg
wget http://zim-wiki.org/downloads/zim_0.68_all.deb
dpkg -i zim_0.68_all.deb


init 5
SHELL
end


○関連情報
・Zimに関する他の記事はこちらを参照してください。

2018年6月29日金曜日

PortainerでBookStackとMySQLスタックを作成する

BookStackはブックやページで管理できるPHP製のWikiです。Portainerで簡単にwebブラウザからBookStackとMySQLのスタックを作成する事ができます。

〇BookStackの画面

デフォルトユーザ/パスワードはadmin@admin.com/passwordです。

〇構築方法
1.Portainer画面横のImagesをクリックして、Image list画面からBuild a new imageボタンをクリック


2.Build image画面nameフィールドにbookstackを入力


3.Web editorのテキストエリアに以下を貼り付け
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7 php7-phar php7-simplexml php7-fileinfo php7-xmlwriter php7-tokenizer php7-ctype php7-apache2 php7-mysqli php7-mbstring php7-session php7-xml php7-dom php7-gd php7-zip php7-zip php7-json php7-pdo php7-pdo_mysql php7-tidy openssl openrc unzip git curl mysql-client \
  && rm -rf /var/cache/apk/* \
  && curl -s https://getcomposer.org/installer | php \
  && mv composer.phar /usr/local/bin/composer
WORKDIR /opt
RUN git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
WORKDIR /opt/BookStack
RUN /usr/local/bin/composer install \
  && mkdir -p /run/apache2 \
  && cp .env.example .env \
  && sed -i -e 's/DB_HOST=localhost/DB_HOST=bookstackdb/' /opt/BookStack/.env \
  && sed -i -e 's/DB_DATABASE=database_database/DB_DATABASE=bookstack/' /opt/BookStack/.env \
  && sed -i -e 's/DB_USERNAME=database_username/DB_USERNAME=root/' /opt/BookStack/.env \
  && sed -i -e 's/DB_PASSWORD=database_user_password/DB_PASSWORD=bookstack/' /opt/BookStack/.env \
  && chown -R apache:apache /opt/BookStack \
  && sed -i -e 's#DocumentRoot "/var/www/localhost/htdocs"#DocumentRoot "/opt/BookStack/public"#' /etc/apache2/httpd.conf \
  && echo $'<Directory /opt/BookStack/public>\n\
  AllowOverride All\n\
  Require all granted\n\
</Directory>' >> /etc/apache2/httpd.conf \
  && sed -i -e 's|#LoadModule rewrite_module modules/mod_rewrite.so|LoadModule rewrite_module modules/mod_rewrite.so|' /etc/apache2/httpd.conf \
  && echo $'#!/bin/sh \n\
if [ -f /opt/BookStack/cinit ]; then \n\
  echo "ok." \n\
else \n\
  php artisan key:generate --force  \n\
  until mysqladmin ping -h bookstackdb -P 3306 --silent; do echo -n "." && sleep 1; done \n\
  php artisan migrate --force  \n\
  touch /opt/BookStack/cinit \n\
fi \n\
/usr/sbin/httpd -D FOREGROUND' >> /opt/BookStack/init.sh \
  && chmod +x /opt/BookStack/init.sh
EXPOSE 80
VOLUME /opt/BookStack
CMD ["/opt/BookStack/init.sh"]

貼り付け後、build the image ボタンをクリックします。

4.画面横のStacksをクリック後、Stacks list画面でAdd a stackボタンをクリックします


5.Create stack画面で、Nameフィールドにbookstack-stack、Web editorに以下を張り付ける

version: "3"
services:
  bookstack:
    image: bookstack
    container_name: "bookstack"
    volumes:
      - "bookstack-data:/opt/BookStack"
    ports:
      - "13680:80"
    depends_on:
      - bookstackdb
  bookstackdb:
    image: mysql:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "bookstack-db"
    volumes:
      - "bookstackdb-data:/var/lib/mysql"
    ports:
      - "13606:3306"
    environment:
      MYSQL_DATABASE: bookstack
      MYSQL_ROOT_PASSWORD: bookstack
volumes:
  bookstackdb-data:
    driver: local
  bookstack-data:
    driver: local



貼り付け後、deploy stackボタンをクリックします。

6.ブラウザからhttp://<Dockerホスト名>:13680/にアクセスする


○関連情報
・BookStackに関する他の記事はこちらを参照してください。

・Portainerに関する他の記事はこちらを参照してください。

2018年6月26日火曜日

DockerでBookStack、Percona Serverがインストールされたコンテナ(Alpine 3.7)を構築する

BookStackはブックやページで管理できるPHP製のWikiです。

○BookStackの画面

ブラウザからhttp://<dokcerホスト>にアクセスします。デフォルトユーザ/パスワードはadmin@admin.com/passwordです。

○構築方法
以下の手順で、BookStack、Percona Serverのコンテナを構築・実行します。

1. BookStackイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t bookstack .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7 php7-phar php7-simplexml php7-fileinfo php7-xmlwriter php7-tokenizer php7-ctype php7-apache2 php7-mysqli php7-mbstring php7-session php7-xml php7-dom php7-gd php7-zip php7-zip php7-json php7-pdo php7-pdo_mysql php7-tidy openssl openrc unzip git curl mysql-client \
  && rm -rf /var/cache/apk/* \
  && curl -s https://getcomposer.org/installer | php \
  && mv composer.phar /usr/local/bin/composer
WORKDIR /opt
RUN git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
WORKDIR /opt/BookStack
RUN /usr/local/bin/composer install \
  && mkdir -p /run/apache2 \
  && cp .env.example .env \
  && sed -i -e 's/DB_HOST=localhost/DB_HOST=db/' /opt/BookStack/.env \
  && sed -i -e 's/DB_DATABASE=database_database/DB_DATABASE=bookstack/' /opt/BookStack/.env \
  && sed -i -e 's/DB_USERNAME=database_username/DB_USERNAME=root/' /opt/BookStack/.env \
  && sed -i -e 's/DB_PASSWORD=database_user_password/DB_PASSWORD=bookstack/' /opt/BookStack/.env \
  && chown -R apache:apache /opt/BookStack \
  && sed -i -e 's#DocumentRoot "/var/www/localhost/htdocs"#DocumentRoot "/opt/BookStack/public"#' /etc/apache2/httpd.conf \
  && echo $'<Directory /opt/BookStack/public>\n\
  AllowOverride All\n\
  Require all granted\n\
</Directory>' >> /etc/apache2/httpd.conf \
  && sed -i -e 's|#LoadModule rewrite_module modules/mod_rewrite.so|LoadModule rewrite_module modules/mod_rewrite.so|' /etc/apache2/httpd.conf \
  && echo $'#!/bin/sh \n\
if [ -f /opt/BookStack/cinit ]; then \n\
  echo "ok." \n\
else \n\
  php artisan key:generate --force  \n\
  until mysqladmin ping -h db -P 3306 --silent; do echo -n "." && sleep 1; done \n\
  php artisan migrate --force  \n\
  touch /opt/BookStack/cinit \n\
fi \n\
/usr/sbin/httpd -D FOREGROUND' >> /opt/BookStack/init.sh \
  && chmod +x /opt/BookStack/init.sh
EXPOSE 80
VOLUME /opt/BookStack
CMD ["/opt/BookStack/init.sh"]

2. BookStackとPercona Serverコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  db:
    image: percona:5.7
    container_name: db
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_DATABASE: bookstack
      MYSQL_ROOT_PASSWORD: bookstack
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql
      - db-log:/var/log/mysql
  bookstack:
    image: bookstack
    container_name: "bookstack"
    volumes:
      - "bookstack-data:/opt/BookStack"
    ports:
      - "80:80"
    depends_on:
      - db
volumes:
  db-data:
    driver: local
  db-log:
    driver: local
  bookstack-data:
    driver: local


○関連情報
・BookStackに関する他の記事はこちらを参照してください。

2018年6月22日金曜日

VagrantでBookStackとPercona Serverをインストールした仮想マシン(CentOS7.4)を構築する

BookStackはブック・ページといった単位で管理できるWikiソフトウェアです。

〇BookStackの画面

仮想マシン構築後、ブラウザからhttp://192.168.1.103/にアクセスします。デフォルトユーザ/パスワードはadmin@admin.com/passwordです。

〇構築方法
以下のVagrantfileを使用してBookStackとPercona Serverをインストールした仮想マシン(CentOS7.4)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74bookstackpercona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74bookstackpercona"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.103", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.103", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8

# install Percona Server
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum -y install Percona-Server-server-57
service mysql start

export MYSQL_ROOTPWD='Root123#'
export MYSQL_PWD=`cat /var/log/mysqld.log | awk '/temporary password/ {print $NF}'`
mysql -uroot -p$MYSQL_PWD --connect-expired-password -e "SET PASSWORD = PASSWORD('$MYSQL_ROOTPWD');"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "UNINSTALL PLUGIN validate_password;"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"
mysql -uroot -proot -e "CREATE DATABASE bookstack DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -proot -e "CREATE USER bookstack@localhost IDENTIFIED BY 'bookstack';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON bookstack.* TO 'bookstack'@'localhost';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"

# install apache2
yum -y install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php72 httpd php php-pdo php-mbstring php-mysql php-gd php-xml php-zip php-json php-zip php-tidy git

# install composer
curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

# install bookstack
cd /opt
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
cd /opt/BookStack
/usr/local/bin/composer install

cp .env.example .env
#DB_HOST=localhost
sed -i -e 's/DB_DATABASE=database_database/DB_DATABASE=bookstack/' /opt/BookStack/.env
sed -i -e 's/DB_USERNAME=database_username/DB_USERNAME=bookstack/' /opt/BookStack/.env
sed -i -e 's/DB_PASSWORD=database_user_password/DB_PASSWORD=bookstack/' /opt/BookStack/.env
php artisan key:generate --force
php artisan migrate --force


chown -R apache:apache /opt/BookStack
sed -i -e 's#DocumentRoot "/var/www/html"#DocumentRoot "/opt/BookStack/public"#' /etc/httpd/conf/httpd.conf
cat << EOF >> /etc/httpd/conf/httpd.conf
<Directory /opt/BookStack/public>
  AllowOverride All
  Require all granted
</Directory>
EOF

systemctl restart httpd

echo 'access to http://192.168.1.103/'
echo 'default account : admin@admin.com/password'

SHELL
end


○関連情報
・BookStackに関する他の記事はこちらを参照してください。

2018年6月21日木曜日

DockerでBookStack、MariaDBがインストールされたコンテナ(Alpine 3.7)を構築する

BookStackはブックやページで管理できるPHP製のWikiです。

○BookStackの画面

ブラウザからhttp://<dokcerホスト>にアクセスします。デフォルトユーザ/パスワードはadmin@admin.com/passwordです。

○構築方法
以下の手順で、BookStack、MariaDBのコンテナを構築・実行します。

1. BookStackイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t bookstack .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7 php7-phar php7-simplexml php7-fileinfo php7-xmlwriter php7-tokenizer php7-ctype php7-apache2 php7-mysqli php7-mbstring php7-session php7-xml php7-dom php7-gd php7-zip php7-zip php7-json php7-pdo php7-pdo_mysql php7-tidy openssl openrc unzip git curl mysql-client \
  && rm -rf /var/cache/apk/* \
  && curl -s https://getcomposer.org/installer | php \
  && mv composer.phar /usr/local/bin/composer
WORKDIR /opt
RUN git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
WORKDIR /opt/BookStack
RUN /usr/local/bin/composer install \
  && mkdir -p /run/apache2 \
  && cp .env.example .env \
  && sed -i -e 's/DB_HOST=localhost/DB_HOST=db/' /opt/BookStack/.env \
  && sed -i -e 's/DB_DATABASE=database_database/DB_DATABASE=bookstack/' /opt/BookStack/.env \
  && sed -i -e 's/DB_USERNAME=database_username/DB_USERNAME=root/' /opt/BookStack/.env \
  && sed -i -e 's/DB_PASSWORD=database_user_password/DB_PASSWORD=bookstack/' /opt/BookStack/.env \
  && chown -R apache:apache /opt/BookStack \
  && sed -i -e 's#DocumentRoot "/var/www/localhost/htdocs"#DocumentRoot "/opt/BookStack/public"#' /etc/apache2/httpd.conf \
  && echo $'<Directory /opt/BookStack/public>\n\
  AllowOverride All\n\
  Require all granted\n\
</Directory>' >> /etc/apache2/httpd.conf \
  && sed -i -e 's|#LoadModule rewrite_module modules/mod_rewrite.so|LoadModule rewrite_module modules/mod_rewrite.so|' /etc/apache2/httpd.conf \
  && echo $'#!/bin/sh \n\
if [ -f /opt/BookStack/cinit ]; then \n\
  echo "ok." \n\
else \n\
  php artisan key:generate --force  \n\
  until mysqladmin ping -h db -P 3306 --silent; do echo -n "." && sleep 1; done \n\
  php artisan migrate --force  \n\
  touch /opt/BookStack/cinit \n\
fi \n\
/usr/sbin/httpd -D FOREGROUND' >> /opt/BookStack/init.sh \
  && chmod +x /opt/BookStack/init.sh
EXPOSE 80
VOLUME /opt/BookStack
CMD ["/opt/BookStack/init.sh"]

2. BookStackとMariaDBコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  db:
    image: mariadb:10.3
    container_name: db
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_DATABASE: bookstack
      MYSQL_ROOT_PASSWORD: bookstack
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql
  bookstack:
    image: bookstack
    container_name: "bookstack"
    volumes:
      - "bookstack-data:/opt/BookStack"
    ports:
      - "80:80"
    depends_on:
      - db
volumes:
  db-data:
    driver: local
  bookstack-data:
    driver: local


○関連情報
・BookStackに関する他の記事はこちらを参照してください。

2018年6月13日水曜日

VagrantでBookStackとMariaDBをインストールした仮想マシン(Debian Stretch/9.4)を構築する

BookStackはブック・ページといった単位で管理できるWikiソフトウェアです。

〇BookStackの画面

仮想マシン構築後、ブラウザからhttp://192.168.1.108/にアクセスします。

〇構築方法
以下のVagrantfileを使用してBookStackとMariaDBをインストールした仮想マシン(Ubuntu16.04)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94bookstackmariadb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94bookstackmariadb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.108", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.108", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade




# install apache2 
apt-get -y install php7.0 libapache2-mod-php7.0 apache2 php7.0-mbstring php7.0-pdo php7.0-mysqlnd php7.0-simplexml php7.0-mcrypt php7.0-gd php7.0-dom unzip

# install mariadb
echo "mariadb-server-10.3 mysql-server/root_password password root" | sudo debconf-set-selections
echo "mariadb-server-10.3 mysql-server/root_password_again password root" | sudo debconf-set-selections
apt-get -y install mariadb-server
mysql -uroot -e "CREATE DATABASE bookstack DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -e "CREATE USER bookstack@localhost IDENTIFIED BY 'bookstack';"
mysql -uroot -e "GRANT ALL PRIVILEGES ON bookstack.* TO 'bookstack'@'localhost';"
mysql -uroot -e "FLUSH PRIVILEGES;"

# install php
apt-get -y install apache2 libapache2-mod-php7.0 php7.0 php7.0-mysqlnd php7.0-pdo php7.0-mbstring php7.0-curl php7.0-mcrypt php7.0-xml php7.0-gd php7.0-zip php7.0-tidy unzip curl git

# install composer
curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

# install bookstack
cd /opt
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
cd /opt/BookStack
composer install

cp .env.example .env
#DB_HOST=localhost
sed -i -e 's/DB_DATABASE=database_database/DB_DATABASE=bookstack/' /opt/BookStack/.env
sed -i -e 's/DB_USERNAME=database_username/DB_USERNAME=bookstack/' /opt/BookStack/.env
sed -i -e 's/DB_PASSWORD=database_user_password/DB_PASSWORD=bookstack/' /opt/BookStack/.env
php artisan key:generate --force
php artisan migrate --force

chown -R www-data:www-data /opt/BookStack
cat << EOF > /etc/apache2/sites-available/bookstack.conf
<VirtualHost *:80>
    ServerName 192.168.1.108
    DocumentRoot /opt/BookStack/public
    <Directory /opt/BookStack/public>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
EOF
a2enmod rewrite
a2ensite bookstack.conf
a2dissite 000-default.conf
systemctl restart apache2.service

echo 'access to http://192.168.1.108/'
echo 'default account : admin@admin.com/password'
SHELL
end

○関連情報
・BookStackに関する他の記事はこちらを参照してください。

2018年6月1日金曜日

VagrantでDokuWikiをインストールした仮想マシン(Debian Stretch/9.4)を構築する

DokuWikiはデータベースを必要としないWikiソフトウェアです。

○DokuWikiの画面


○構築方法
以下のVagrantfileを使用して、DokuWikiをインストールした仮想マシンを構築できます。
ブラウザからhttp://192.168.55.106/dokuwiki/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94docuwiki"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94docuwiki"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.106", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.106", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# update packages
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install apache2 dokuwiki
apt-get -y install php7.0 libapache2-mod-php7.0 apache2 php7.0-mbstring php7.0-xml

# install dokuwiki
wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar xvfz dokuwiki-stable.tgz
mv dokuwiki-2018-04-22 /var/www/html/dokuwiki
chown -R www-data:www-data /var/www/html/dokuwiki

systemctl restart apache2

echo 'access http://192.168.55.106/dokuwiki/'
SHELL
end


○関連情報
・DokuWikiに関する他の記事はこちらを参照してください。

Zimというデスクトップアプリケーションで自分だけのWikiを作成することもできます。

2018年5月31日木曜日

DockerでBookStack、MySQLがインストールされたコンテナ(Alpine 3.7)を構築する

BookStackはブック単位でページで管理できるPHP製のWikiです。

○BookStackの画面

ブラウザからhttp://<dokcerホスト>にアクセスします。デフォルトユーザ/パスワードはadmin@admin.com/passwordです。

○構築方法
以下の手順で、BookStack、MySQLのコンテナを構築・実行します。

1. BookStackイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t bookstack .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7 php7-phar php7-simplexml php7-fileinfo php7-xmlwriter php7-tokenizer php7-ctype php7-apache2 php7-mysqli php7-mbstring php7-session php7-xml php7-dom php7-gd php7-zip php7-zip php7-json php7-pdo php7-pdo_mysql php7-tidy openssl openrc unzip git curl mysql-client \
  && rm -rf /var/cache/apk/* \
  && curl -s https://getcomposer.org/installer | php \
  && mv composer.phar /usr/local/bin/composer
WORKDIR /opt
RUN git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
WORKDIR /opt/BookStack
RUN /usr/local/bin/composer install \
  && mkdir -p /run/apache2 \
  && cp .env.example .env \
  && sed -i -e 's/DB_HOST=localhost/DB_HOST=db/' /opt/BookStack/.env \
  && sed -i -e 's/DB_DATABASE=database_database/DB_DATABASE=bookstack/' /opt/BookStack/.env \
  && sed -i -e 's/DB_USERNAME=database_username/DB_USERNAME=root/' /opt/BookStack/.env \
  && sed -i -e 's/DB_PASSWORD=database_user_password/DB_PASSWORD=bookstack/' /opt/BookStack/.env \
  && chown -R apache:apache /opt/BookStack \
  && sed -i -e 's#DocumentRoot "/var/www/localhost/htdocs"#DocumentRoot "/opt/BookStack/public"#' /etc/apache2/httpd.conf \
  && echo $'<Directory /opt/BookStack/public>\n\
  AllowOverride All\n\
  Require all granted\n\
</Directory>' >> /etc/apache2/httpd.conf \
  && sed -i -e 's|#LoadModule rewrite_module modules/mod_rewrite.so|LoadModule rewrite_module modules/mod_rewrite.so|' /etc/apache2/httpd.conf \
  && echo $'#!/bin/sh \n\
if [ -f /opt/BookStack/cinit ]; then \n\
  echo "ok." \n\
else \n\
  php artisan key:generate --force  \n\
  until mysqladmin ping -h db -P 3306 --silent; do echo -n "." && sleep 1; done \n\
  php artisan migrate --force  \n\
  touch /opt/BookStack/cinit \n\
fi \n\
/usr/sbin/httpd -D FOREGROUND' >> /opt/BookStack/init.sh \
  && chmod +x /opt/BookStack/init.sh
EXPOSE 80
VOLUME /opt/BookStack
CMD ["/opt/BookStack/init.sh"]

2. BookStackとMySQLコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  db:
    image: mysql:5.7
    container_name: db
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_DATABASE: bookstack
      MYSQL_ROOT_PASSWORD: bookstack
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql
  bookstack:
    image: bookstack
    container_name: "bookstack"
    volumes:
      - "bookstack-data:/opt/BookStack"
    ports:
      - "80:80"
    depends_on:
      - db
volumes:
  db-data:
    driver: local
  bookstack-data:
    driver: local


○関連情報
・BookStackに関する他の記事はこちらを参照してください。

2018年5月13日日曜日

LXDでDokuWikiをインストールしたコンテナ(Ubuntu18.04)を構築する

DokuWikiはPHP製のWikiアプリケーションです。

〇DokuWikiの画面


〇コンテナの構築
LXDで以下のコマンドを実行して、DokuWikiがインストールされたコンテナを構築します。
lxc init ubuntu:18.04 ub1804dokuwiki
lxc config set ub1804dokuwiki user.user-data - < config.yml
lxc start ub1804dokuwiki

config.yml
#cloud-config

package_upgrade: true

hostname: ub1804dokuwiki
manage_etc_hosts: true

runcmd:
  - "apt-get update"
  - "apt-get -y install php7.2 libapache2-mod-php7.2 apache2 php7.2-mbstring php7.2-xml"
  - "wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz"
  - "tar xvfz dokuwiki-stable.tgz"
  - "mv dokuwiki-2018-04-22a /var/www/html/dokuwiki"
  - "chown -R www-data:www-data /var/www/html/dokuwiki"
  - "systemctl restart apache2"

final_message: "completed."

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=80 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

コンテナ構築後、ブラウザからhttp://<ホストのIP>/dokuwiki/にアクセスします。

〇コンテナに入る
lxc exec ub1804dokuwiki /bin/bash

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇コンテナの停止
lxc stop ub1804dokuwiki

〇コンテナの削除
lxc delete ub1804dokuwiki


○関連情報
・DokuWikiに関する他の記事はこちらを参照してください。

Zimというデスクトップアプリケーションで自分だけのWikiを作成することもできます。

2018年5月11日金曜日

VagrantでBookStackとMySQLをインストールした仮想マシン(CentOS7.4)を構築する

BookStackはブック・ページといった単位で管理できるWikiソフトウェアです。

〇BookStackの画面

仮想マシン構築後、ブラウザからhttp://192.168.1.103/にアクセスします。デフォルトユーザ/パスワードはadmin@admin.com/passwordです。

〇構築方法
以下のVagrantfileを使用してBookStackとMySQLをインストールした仮想マシン(CentOS7.4)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74bookstackmysql"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74bookstackmysql"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.103", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.103", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8

# install mysql
sudo yum -y remove mariadb-libs
yum -y localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum -y install yum-utils
yum -y install mysql mysql-devel mysql-server mysql-utilities
sudo systemctl enable mysqld.service
sudo systemctl start mysqld.service
# change password and create users and databases.
chkconfig mysqld on
service mysqld start
export MYSQL_ROOTPWD='Root123#'
export MYSQL_PWD=`cat /var/log/mysqld.log | awk '/temporary password/ {print $NF}'`
mysql -uroot --connect-expired-password -e "SET PASSWORD = PASSWORD('$MYSQL_ROOTPWD');"
export MYSQL_PWD=$MYSQL_ROOTPWD
export MYSQL_ROOTPWD='root'
mysql -uroot --connect-expired-password -e "UNINSTALL PLUGIN validate_password;"
mysql -uroot --connect-expired-password -e "SET PASSWORD = PASSWORD('$MYSQL_ROOTPWD'); FLUSH PRIVILEGES;"
mysql -uroot -proot -e "CREATE DATABASE bookstack DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -proot -e "CREATE USER bookstack@localhost IDENTIFIED BY 'bookstack';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON bookstack.* TO 'bookstack'@'localhost';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"

# install apache2
yum -y install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php72 httpd php php-pdo php-mbstring php-mysql php-gd php-xml php-zip php-json php-zip php-tidy git

# install composer
curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

# install bookstack
cd /opt
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
cd /opt/BookStack
/usr/local/bin/composer install

cp .env.example .env
#DB_HOST=localhost
sed -i -e 's/DB_DATABASE=database_database/DB_DATABASE=bookstack/' /opt/BookStack/.env
sed -i -e 's/DB_USERNAME=database_username/DB_USERNAME=bookstack/' /opt/BookStack/.env
sed -i -e 's/DB_PASSWORD=database_user_password/DB_PASSWORD=bookstack/' /opt/BookStack/.env
php artisan key:generate --force
php artisan migrate --force


chown -R apache:apache /opt/BookStack
sed -i -e 's#DocumentRoot "/var/www/html"#DocumentRoot "/opt/BookStack/public"#' /etc/httpd/conf/httpd.conf
cat << EOF >> /etc/httpd/conf/httpd.conf
<Directory /opt/BookStack/public>
  AllowOverride All
  Require all granted
</Directory>
EOF

systemctl restart httpd

echo 'access to http://192.168.1.103/'
echo 'default account : admin@admin.com/password'

SHELL
end


○関連情報
・BookStackに関する他の記事はこちらを参照してください。

2018年4月29日日曜日

LXDでDokuWikiをインストールしたコンテナを構築する

DokuWikiはPHP製のWikiアプリケーションです。

〇DokuWikiの画面


〇コンテナの構築
LXDで以下のコマンドを実行して、DokuWikiがインストールされたコンテナを構築します。
lxc init ubuntu:16.04 dokuwiki
lxc config set dokuwiki user.user-data - < config.yml
lxc start dokuwiki

config.yml
#cloud-config

package_upgrade: true

hostname: dokuwiki
manage_etc_hosts: true

write_files:
  - path: /tmp/dokuwiki.conf
    content: |
      <Directory /usr/share/dokuwiki>
        Order allow,deny
        Allow from all
      </Directory>

runcmd:
  - "apt-get update"
  - "apt-get -y install php7.0 libapache2-mod-php7.0 apache2 php7.0-mbstring php7.0-xml"
  - 'echo "dokuwiki        dokuwiki/system/purgepages      boolean false" | debconf-set-selections'
  - 'echo "dokuwiki        dokuwiki/wiki/password  password admin" | debconf-set-selections'
  - 'echo "dokuwiki        dokuwiki/wiki/confirm   password admin" | debconf-set-selections'
  - "apt-get -y install dokuwiki"
  - "ln -s /usr/share/dokuwiki /var/www/html/"
  - "chown -R www-data:www-data /usr/share/dokuwiki"
  - "mv /tmp/dokuwiki.conf /etc/apache2/sites-available/"
  - "a2ensite dokuwiki"
  - "systemctl restart apache2"

final_message: "completed."

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=80 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

コンテナ構築後、ブラウザからhttp://<ホストのIP>/dokuwiki/にアクセスします。

〇コンテナに入る
lxc exec dokuwiki /bin/bash

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇コンテナの停止
lxc stop dokuwiki

〇コンテナの削除
lxc delete dokuwiki


○関連情報
・DokuWikiに関する他の記事はこちらを参照してください。

Zimというデスクトップアプリケーションで自分だけのWikiを作成することもできます。

2018年4月14日土曜日

DockerでZimとXfce、XRDPがインストールされたイメージ(Ubuntu16.04)を作成する

以下のDockerfileを使用して、ZunとXfce、XRDPをインストールしたイメージ(Ubuntu16.04)を作成する事ができます。
XRDPもインストールされているので、リモートデスクトップクライアントからDockerホストにアクセスすることでコンテナ内のデスクトップ環境を利用できます。
ログイン時にユーザ名にubuntu、パスワードにubuntuを指定します。

Dockerfile
from ubuntu:16.04
run sed -i.bak -e "s#http://archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g" /etc/apt/sources.list \
  && apt-get update \
  && apt-get -y install software-properties-common \
  && add-apt-repository ppa:hermlnx/xrdp \
  && apt-get update \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run DEBIAN_FRONTEND=noninteractive apt-get -y install \
      xubuntu-desktop \
      xrdp \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      python-xdg \
      python-gtk2 \
  && wget http://zim-wiki.org/downloads/zim_0.67_all.deb \
  && dpkg -i zim_0.67_all.deb \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'sed -i -e "s/^EnabledIMList.*$/EnabledIMList=fcitx-keyboard-jp:True,mozc:True,fcitx-keyboard-us:False/" /home/ubuntu/.config/fcitx/profile' >> /home/ubuntu/.xsessionrc \
  && chown ubuntu:ubuntu /home/ubuntu/.xsessionrc \
  && mkdir -p /home/ubuntu/Notebooks \
  && chown -R ubuntu:ubuntu /home/ubuntu/Notebooks \
  && echo $'#!/bin/bash\n\
export GTK_IM_MODULE=fcitx\n\
export QT_IM_MODULE=fcitx\n\
export XMODIFIERS="@im=fcitx"\n\
startxfce4\n\
sudo /etc/init.d/xrdp start\n\
sudo /etc/init.d/dbus start\n\
fcitx -r -d &\n\
/bin/bash' >> /start.sh \
  && chmod +x /start.sh
expose 3389
volume ["/home/ubuntu/Notebooks"]
cmd /start.sh

○イメージのビルド
Dockerfileと同じディレクトリで以下のコマンドを実行します。
docker build -t cub1604xfcezim .

○コンテナの実行
docker run -it -v `pwd`:/home/ubuntu/Notebooks -p 3389:3389 -u ubuntu cub1604xfcezim

○Zimの画面


○関連情報
・Zimに関する他の記事はこちらを参照してください。

2018年4月9日月曜日

VagrantでZim、Xfce Desktop環境、XRDPがインストールされた仮想マシン(CentOS7.4)を構築する

Zim はデスクトップWikiアプリです。
以下のVagrantfileを使用して、Zim、Xfce Desktop環境、XRDPをインストールした仮想マシン(CentOS7.4) を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74xfcezim"
config.vm.network :public_network, ip:"192.168.1.117"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74xfcezim"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
yum -y install wget

# 日本語のロケールを設定
localectl set-locale LANG=ja_JP.UTF-8

# GUIに関連するパッケージをインストール
sudo yum -y groupinstall "Server with GUI"
# 不要なダイアログを表示されないようにする
sudo sh -c "echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gnome-welcome-tour.desktop"
sudo sh -c "echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gnome-software-service.desktop"
sudo sh -c "echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gnome-settings-daemon.desktop"
sudo systemctl disable initial-setup-graphical.service
sudo systemctl disable initial-setup-text.service

sudo systemctl set-default graphical.target

# いったんAutomatic Loginモードに変更
cp /etc/gdm/custom.conf /etc/gdm/custom.conf.org
cat << EOF > /etc/gdm/custom.conf
# GDM configuration storage

[daemon]
AutomaticLogin=vagrant
AutomaticLoginEnable=True
[security]

[xdmcp]

[chooser]

[debug]
# Uncomment the line below to turn on debugging
#Enable=true
EOF
cat << EOF >> /home/vagrant/.bashrc
if [[ -v DISPLAY ]]; then
   setxkbmap jp -model jp106
fi
EOF
service gdm restart
sleep 10
sudo -u vagrant sh -c "export DISPLAY=:0 && gsettings set org.gnome.desktop.input-sources sources \\"[('ibus', 'kkc'), ('xkb', 'us')]\\""
sudo -u vagrant sh -c "export DISPLAY=:0 && gsettings set org.gnome.desktop.wm.keybindings switch-input-source \\"['space']\\""
sudo -u vagrant sh -c "export DISPLAY=:0 && gsettings set org.gnome.settings-daemon.plugins.keyboard active false"

# Automatic Loginモード終了
cp -f /etc/gdm/custom.conf.org /etc/gdm/custom.conf
service gdm restart


# XRDPをインストールして、リモートデスクトップでログインできるようにする。
yum -y install epel-release
yum -y install xrdp tigervnc-server

chcon -t bin_t /usr/sbin/xrdp
chcon -t bin_t /usr/sbin/xrdp-sesman
sed -i "s/max_bpp=32/max_bpp=24/" /etc/xrdp/xrdp.ini
systemctl start xrdp.service
systemctl enable xrdp.service


# install zim
yum -y install Zim


telinit 5
SHELL
end

〇Zim


○関連情報
・Zimに関する他の記事はこちらを参照してください。

2018年4月4日水曜日

VagrantでZim、Cinnamon Desktop環境、XRDPがインストールされた仮想マシン(Debian Stretch/9.3)を構築する

Zim はデスクトップWikiアプリです。
以下のVagrantfileを使用して、Zim、Cinnamon Desktop環境、XRDPをインストールした仮想マシン(Debian Stretch/9.3)を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93cinnamonzim"
config.vm.network "public_network", ip:"192.168.1.116", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93cinnamonzim"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
cat << EOF > /etc/default/keyboard
XKBMODEL="pc106"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
EOF
cat << EOF > /home/vagrant/.xsessionrc
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
sed -i -e "s/^EnabledIMList.*$/EnabledIMList=fcitx-keyboard-jp:True,mozc:True,fcitx-keyboard-us:False/" /home/vagrant/.config/fcitx/profile
fcitx-remote -r
fcitx -r -d
EOF
chown vagrant:vagrant .xsessionrc
apt-get -y install  xrdp fcitx-mozc task-cinnamon-desktop tigervnc-standalone-server

apt-get -y install build-essential module-assistant dkms
wget http://download.virtualbox.org/virtualbox/5.2.6/VBoxGuestAdditions_5.2.6.iso
mount -o loop -t iso9660 VBoxGuestAdditions_5.2.6.iso /media/
/media/VBoxLinuxAdditions.run


im-config -n fcitx
sudo -u vagrant bash -i -c "export DISPLAY=:0.0 && fcitx -r"

cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.org
cat /etc/xrdp/xrdp.ini.org | gawk '/\\[Globals\\]/,/\\[Xorg\\]/' | sed -e 's/\\[Xorg\\]//' > /etc/xrdp/xrdp.ini
cat << EOF >> /etc/xrdp/xrdp.ini
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
EOF
systemctl restart xrdp
systemctl enable xrdp


# install zim
apt-get -y install python-xdg
wget http://zim-wiki.org/downloads/zim_0.67_all.deb
dpkg -i zim_0.67_all.deb

init 5
SHELL
end

〇Zimの画面


○関連情報
・Zimに関する他の記事はこちらを参照してください。

2018年3月30日金曜日

VagrantでZim、Gnome Desktop環境、XRDPがインストールされた仮想マシン(Debian Stretch/9.3)を構築する

Zim はデスクトップWikiアプリです。
以下のVagrantfileを使用して、Zim、Gnome Desktop環境、XRDPをインストールした仮想マシン(Debian Stretch/9.3)を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93gnomezim"
config.vm.network "public_network", ip:"192.168.1.114", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93gnomezim"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
cat << EOF > /etc/default/keyboard
XKBMODEL="pc106"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
EOF
cat << EOF > /home/vagrant/.xprofile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
sed -i -e "s/^EnabledIMList.*$/EnabledIMList=fcitx-keyboard-jp:True,mozc:True,fcitx-keyboard-us:False/" /home/vagrant/.config/fcitx/profile
fcitx-remote -r
fcitx -r -d
EOF
chown vagrant:vagrant .xprofile
apt-get -y install  xrdp fcitx-mozc task-gnome-desktop tigervnc-standalone-server

apt-get -y install build-essential module-assistant dkms
wget http://download.virtualbox.org/virtualbox/5.2.6/VBoxGuestAdditions_5.2.6.iso
mount -o loop -t iso9660 VBoxGuestAdditions_5.2.6.iso /media/
/media/VBoxLinuxAdditions.run

export DISPLAY=:0.0
im-config -n fcitx
sudo -u vagrant bash -i -c "export DISPLAY=:0.0 && fcitx -r"
cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.org
cat /etc/xrdp/xrdp.ini.org | gawk '/\\[Globals\\]/,/\\[Xorg\\]/' | sed -e 's/\\[Xorg\\]//' > /etc/xrdp/xrdp.ini
cat << EOF >> /etc/xrdp/xrdp.ini
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
EOF
systemctl restart xrdp
systemctl enable xrdp


# install zim
apt-get -y install python-xdg
wget http://zim-wiki.org/downloads/zim_0.67_all.deb
dpkg -i zim_0.67_all.deb

init 5
SHELL
end

〇Zimの画面


○関連情報
・Zimに関する他の記事はこちらを参照してください。