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

2022年10月10日月曜日

Debian 11(Bullseye)/Ubuntu 22.04にgobasicをインストールする

gobasicはGo言語で実装されたbasicです。

インストール方法

以下のコマンドを実行します。
sudo mkdir -p /opt/gobasic

cd /opt/gobasic

sudo wget https://github.com/skx/gobasic/releases/download/release-2.0.1/gobasic-linux-amd64

sudo chmod +x gobasic-linux-amd64

sudo ln -s /opt/gobasic/gobasic-linux-amd64 /usr/local/bin/gobasic

テスト実行

cd

cat << EOF > hello.bas
print "Hello, World!\n"
EOF

gobasic hello.bas

関連情報

・gobasicのgithubリポジトリ
https://github.com/skx/gobasic

2021年8月24日火曜日

Rocky Linux 8.4/AlmaLinux 8にgobasicをインストールする

gobasicはGo言語で実装されたbasicです。

インストール方法

以下のコマンドを実行します。
sudo mkdir -p /opt/gobasic

cd /opt/gobasic

sudo wget https://github.com/skx/gobasic/releases/download/release-1.9/gobasic-linux-amd64

sudo chmod +x gobasic-linux-amd64

sudo ln -s /opt/gobasic/gobasic-linux-amd64 /usr/local/bin/gobasic

テスト実行

cd

cat << EOF > hello.bas
print "Hello, World!\n"
EOF

gobasic hello.bas

関連情報

・gobasicのgithubリポジトリ
https://github.com/skx/gobasic

2021年8月14日土曜日

Rocky Linux 8.4/AlmaLinux 8でAWKのgo言語実装のGoAWKをインストールする

GoAWKはGo言語実装のAWKです。

GoAWKのインストール方法

以下のコマンドを実行します。
sudo mkdir -p /opt/goawk

cd /opt/goawk

sudo wget https://github.com/benhoyt/goawk/releases/download/v1.7.0/goawk_v1.7.0_linux_amd64.tar.gz

sudo tar xvfz goawk_v1.7.0_linux_amd64.tar.gz

sudo ln -s /opt/goawk/goawk /usr/local/bin/goawk

サンプル実行

cat << EOF | goawk '{ print $1, $3 }'
col1 col2 col3
Hello - World!
1 2 3
EOF

関連情報

・プロジェクトGithubリポジトリ
https://github.com/benhoyt/goawk

2020年6月2日火曜日

Debian 10(Buster)/Ubuntu 20.04/CentOS8.2にgobasicをインストールする

gobasicはGo言語で実装されたbasicです。

〇インストール方法
以下のコマンドを実行します。
sudo mkdir -p /opt/gobasic

cd /opt/gobasic

sudo wget https://github.com/skx/gobasic/releases/download/release-1.9/gobasic-linux-amd64

sudo chmod +x gobasic-linux-amd64

sudo ln -s /opt/gobasic/gobasic-linux-amd64 /usr/local/bin/gobasic

〇テスト実行
cd 

cat << EOF > hello.bas
print "Hello, World!\n"
EOF

gobasic hello.bas

〇関連情報
・gobasicのgithubリポジトリ
https://github.com/skx/gobasic

※2020/11/15: CentOS8.2での動作を確認し追記。

2020年6月1日月曜日

Debian 10(Buster)/Ubuntu 20.04/CentOS8.2にAWKをgo言語で実装したGoAWKをインストールする

GoAWKはGo言語実装のAWKです。

〇GoAWKのインストール方法
以下のコマンドを実行します。
sudo mkdir -p /opt/goawk

cd /opt/goawk

sudo wget https://github.com/benhoyt/goawk/releases/download/v1.6.1/goawk_v1.6.1_linux_amd64.tar.gz

sudo tar xvfz goawk_v1.6.1_linux_amd64.tar.gz

sudo ln -s /opt/goawk/goawk /usr/local/bin/goawk

〇サンプル実行
cat << EOF | goawk '{ print $1, $3 }'
col1 col2 col3
Hello - World!
1 2 3
EOF

〇関連情報
・プロジェクトGithubリポジトリ
https://github.com/benhoyt/goawk

○変更履歴
2020/11/30: CentOS8.2を追記。

2020年4月30日木曜日

Debian 10(Buster)/Ubuntu 20.04にetcdをインストールする

etcdはgo言語で作成された分散key-valueストアです。

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

sudo apt-get -y install etcd

sudo systemctl enable etcd

sudo systemctl start etcd

〇テスト実行
etcdctl mkdir test

etcdctl set test/key1 value1

etcdctl get test/key1

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

2020年4月27日月曜日

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

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面


〇インストール方法
1. もし、接続可能なPostgreSQLが無ければ、以下の記事のPostgreSQLのインストール手順を実行します。
Ubuntu 20.04にPostgreSQL12(OS標準)をインストールして、testデータベース・testユーザを作成する

2. 以下のコマンドを実行してpgwebをインストールします。
wget https://github.com/sosedoff/pgweb/releases/download/v0.11.6/pgweb_linux_amd64.zip

sudo apt-get -y install unzip

unzip pgweb_linux_amd64.zip

sudo mkdir -p /opt/pgweb

sudo mv pgweb_linux_amd64 /opt/pgweb

cat << EOF | sudo tee /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb
[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable pgweb

sudo systemctl start pgweb

3. ブラウザからhttp://<pgwebをインストールしたホストまたはIPアドレス>:8080/ にアクセスします

〇関連情報
pgwebに関する他の情報はこちらを参照してください。

2020年4月26日日曜日

Ubuntu 20.04にMiniflux2とPostgreSQL12をインストールする

Miniflux2はGo製のfeed readerです。登録したウェブサイトの記事をRSSを通して読むことができます。

〇Minifulx2の画面


〇インストール方法
1. PostgreSQLのインストール
sudo localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8
  ※ locale -aでja_JP.UTF-8が表示されれば実行する必要なし

sudo apt-get update

sudo apt-get -y install postgresql-12

echo "listen_addresses='*'" | sudo tee -a /etc/postgresql/12/main/postgresql.conf

echo "host    all         all         127.0.0.1/32          password" | sudo tee -a /etc/postgresql/12/main/pg_hba.conf

echo "host    all         all         192.168.1.0/24          password" | sudo tee -a /etc/postgresql/12/main/pg_hba.conf

sudo systemctl restart postgresql.service

sudo su - postgres << EOF
psql -c "
alter user postgres with password 'postgres';
create user miniflux2 with password 'miniflux2';
"
psql -c "
create database miniflux2 owner miniflux2 encoding 'UTF8' lc_collate 'ja_JP.UTF-8' lc_ctype 'ja_JP.UTF-8' template 'template0';
"
EOF

2. minifulx2のインストールする
wget https://github.com/miniflux/miniflux/releases/download/2.0.21/miniflux_2.0.21_amd64.deb

sudo dpkg -i miniflux_2.0.21_amd64.deb

echo "DATABSE_URL=postgres://miniflux2:miniflux2@localhost/miniflux2?sslmode=disable" | sudo tee -a /etc/miniflux.conf

miniflux -migrate

sudo apt-get -y install expect

/usr/bin/expect << EOF
spawn miniflux -create-admin
expect "Enter Username:"
send "admin\\r"
expect "Enter Password:"
send "admin123\\r"
expect eof
exit
EOF

sudo systemctl enable miniflux

sudo systemctl start miniflux

3. ブラウザからhttp://<サーバ名またはIPアドレス>:8080/ にアクセスします
ユーザ名はadmin、パスワードはadmin123です。
サンプルのRSS http://serverarekore.blogspot.com/feeds/posts/default

〇関連情報
・Minifluxに関する情報はこちらを参照してください。

2019年2月10日日曜日

VagrantでMiniflux2がインストールされた仮想マシン(Debian Stretch/9.6)を構築する

Miniflux2はGo製のfeed readerです。

○Miniflux2の画面


〇構築方法
以下のVagrantfileを使用して、Miniflux2とPostgreSQL11がインストールされた仮想マシン(Debian Stretch/9.6)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.6"
  config.vm.hostname = "db96miniflux"
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 = "db96miniflux"
     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 postgresql
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
apt-get -y install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get upgrade
apt-get -y install postgresql-11

echo "listen_addresses='*'" >> /etc/postgresql/11/main/postgresql.conf

echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/11/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/11/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/11/main/pg_hba.conf

systemctl restart postgresql.service
su - postgres << EOF
createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 miniflux2
psql -c "
alter user postgres with password 'postgres';
create user miniflux with password 'miniflux';
grant all privileges on database miniflux2 to miniflux;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

wget https://github.com/miniflux/miniflux/releases/download/2.0.14/miniflux_2.0.14_amd64.deb
dpkg -i miniflux_2.0.14_amd64.deb

echo "DATABSE_URL=postgres://miniflux:miniflux@localhost/miniflux2?sslmode=disable" >> /etc/miniflux.conf

miniflux -migrate

apt-get -y install expect
/usr/bin/expect << EOF
spawn miniflux -create-admin
expect "Enter Username:"
send "admin\\r"
expect "Enter Password:"
send "admin123\\r"
expect eof
exit
EOF
systemctl enable miniflux
systemctl start miniflux

echo 'access http://192.168.55.103:8080/'
echo 'user: admin  password: admin123'
echo 'sample feed: http://serverarekore.blogspot.com/feeds/posts/default'

SHELL
end


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


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

2019年2月3日日曜日

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

influxDBはオープンソースの時系列データベースです。
以下のVagrantfileを使用して、influxDBをインストールした仮想マシン(Debian Stretch/9.6)を構築する事ができます。

Vagrantflie
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.6"
  config.vm.hostname = "db96influxdb"
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 = "db96influxdb"
     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

# downloadd and install influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.7.3_amd64.deb
dpkg -i influxdb_1.7.3_amd64.deb

systemctl enable influxdb.service
systemctl start influxdb.service

# wait until 8086 port is opened
while netstat -lnt | awk '$4 ~ /:8086$/ {exit 1}'; do sleep 10; done
sleep 10

# text execution
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE DATABASE mydb"
curl -XPOST "http://localhost:8086/write?db=mydb" -d 'messages,tag=test value=100'
curl -XPOST "http://localhost:8086/write?db=mydb" -d 'messages,tag=hello,target=world value=200'
curl -G "http://localhost:8086/query?pretty=true" --data-urlencode "db=mydb" --data-urlencode "q=select * from messages"

SHELL
end


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

2019年1月28日月曜日

VagrantでinfluxDBをインストールした仮想マシン(Ubuntu18.04)を構築する

influxDBはオープンソースの時系列データベースです。
以下のVagrantfileを使用して、influxDBをインストールした仮想マシン(Ubuntu18.04)を構築する事ができます。

Vagrantflie
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.hostname = "ub1804influxdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1804influxdb"
     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
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
timedatectl set-timezone Asia/Tokyo

# downloadd and install influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.7.3_amd64.deb
dpkg -i influxdb_1.7.3_amd64.deb

systemctl enable influxdb.service
systemctl start influxdb.service

# wait until 8086 port is opened
while netstat -lnt | awk '$4 ~ /:8086$/ {exit 1}'; do sleep 10; done
sleep 10

# text execution
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE DATABASE mydb"
curl -XPOST "http://localhost:8086/write?db=mydb" -d 'messages,tag=test value=100'
curl -XPOST "http://localhost:8086/write?db=mydb" -d 'messages,tag=hello,target=world value=200'
curl -G "http://localhost:8086/query?pretty=true" --data-urlencode "db=mydb" --data-urlencode "q=select * from messages"

SHELL
end


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

Vagrantでetcdをインストールした仮想マシン(Ubuntu18.04)を構築する

etcdはgo言語で作成された分散key-valueストアです。
以下のVagrantfileを使用して、etcdをインストールした仮想マシン(Ubuntu18.04)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.hostname = "ub1804etcd"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1804etcd"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.107", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.107", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get -y install language-pack-ja
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
timedatectl set-timezone Asia/Tokyo

# install etcd
apt-get -y install etcd
systemctl enable etcd
systemctl start etcd
sleep 10

# test execution
etcdctl mkdir test
etcdctl set test/key1 value1
etcdctl get test/key1

SHELL
end


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

2018年8月7日火曜日

VagrantでPrometheusをインストールした仮想マシン(Ubuntu16.04)を構築する

Prometheusでサーバーの各種情報を監視する事ができます。

〇Prometheusの画面

ブラウザからhttp://192.168.1.108:9090/にアクセスします。

〇構築方法
以下のVagrantfileを使用して、Prometheusをインストールした仮想マシン(Ubuntu16.04)を構築します。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604prometheus"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604prometheus"
     vbox.cpus = 4
     vbox.memory = 4096
     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 update
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# download and install prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.3.2/prometheus-2.3.2.linux-amd64.tar.gz
tar xvfz prometheus-2.3.2.linux-amd64.tar.gz
mv prometheus-2.3.2.linux-amd64 /opt

cat << EOF > /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Requires=network.target

[Service]
Restart=always
WorkingDirectory=/opt/prometheus-2.3.2.linux-amd64
ExecStart=/opt/prometheus-2.3.2.linux-amd64/prometheus --config.file=prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
EOF
systemctl enable prometheus
systemctl start prometheus

echo 'access -> http://192.168.1.108:9090/'
SHELL
end

2018年7月18日水曜日

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

pgwebはPostgreSQLに対応するwebフロントエンドです。

○pgwebの画面

○構築方法
以下の手順で、pgwebとPostgreSQL 10.4のコンテナを構築・実行します。
1. pgwebイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t pgweb .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache unzip \
  && rm -rf /var/cache/apk/* \
  && wget https://github.com/sosedoff/pgweb/releases/download/v0.9.12/pgweb_linux_amd64.zip \
  && unzip pgweb_linux_amd64.zip \
  && rm -f pgweb_linux_amd64.zip \
  && mkdir -p /opt/pgweb \
  && cp /pgweb_linux_amd64 /opt/pgweb \
  && rm /pgweb_linux_amd64
EXPOSE 8080
VOLUME /opt/pgweb
CMD ["/opt/pgweb/pgweb_linux_amd64", "--sessions", "--bind=0.0.0.0", "--listen=8080"]

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

docker-compose.yml
version: "2"
services:
  pgweb:
    image: pgweb
    container_name: "pgweb"
    volumes:
      - "pgweb-data:/opt/pgweb"
    ports:
      - "8080:8080"
    depends_on:
      - db
  db:
    image: postgres:10.4-alpine
    environment:
      POSTGRES_USER: pgweb
      POSTGRES_PASSWORD: pgweb
    ports:
      - "5432:5432"
    container_name: postgres
    volumes:
      - "postgres-data:/var/lib/postgresql/data"
volumes:
  postgres-data:
    driver: local
  pgweb-data:
    driver: local

3. ブラウザからhttp://<Dockerホスト名またはIP>:8080/にアクセス
ユーザ名pgweb、パスワードpgwebを指定します。


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

2018年7月13日金曜日

VagrantでpgwebとPostgreSQL10がインストールされた仮想マシン(Ubuntu18.04)を構築する

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面


〇構築方法
以下のVagrantfileを使用して、pgwebとPostgreSQL10をインストールした仮想マシン(Ubuntu18.04)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.109:8080/にアクセスします。

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

# install postgresql
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
apt-get -y install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get upgrade
apt-get -y install postgresql-10

echo "listen_addresses='*'" >> /etc/postgresql/10/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/10/main/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf

su - postgres << EOF
createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 dwh
psql -c "
alter user postgres with password 'postgres';
create user dwh with password 'dwh';
grant all privileges on database dwh to dwh;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

# install pgweb
apt-get -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.12/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb

cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb

[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.109:8080/'
echo 'user: postgres, password: postgres'
SHELL
end


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

2018年7月12日木曜日

Dockerでminio、awscliをインストールしたコンテナを構築する

minioはAWS S3互換のAPIを持つオブジェクトストレージです。

〇minioの画面


構築方法

1.以下のコマンドで、awscliがインストールされたイメージを作成します。
docker build -t awscli .

Dockerfile
FROM python:3.6-alpine3.7

RUN mkdir /work \
  && pip install awscli
VOLUME /work
WORKDIR /work
CMD ["/bin/sh"]

2.以下のコマンドで、minioを起動しawscliが実行可能なコンテナに入ります。
docker-compose run awscli

docker-compose.yml
version: "2"
services:
  storage:
    image: minio/minio
    container_name: "storage"
    ports:
      - "9000:9000"
    volumes:
      - "storage-data:/data"
    environment:
      MINIO_ACCESS_KEY_FILE: test_access_key
      MINIO_SECRET_KEY_FILE: test_secret_key
  awscli:
    image: awscli
    container_name: "awscli"
    command: /bin/sh
    stdin_open: true
    tty: true
    volumes:
      - ".:/work"
    depends_on:
      - storage
volumes:
  storage-data:
    driver: local

3.awscliコンテナ内でのコマンド実行例

〇awsコマンド実行前に以下を実行
export AWS_ACCESS_KEY_ID=test_access_key
export AWS_SECRET_ACCESS_KEY=test_secret_key

〇バケットの作成
aws --endpoint-url http://<Dockerホスト名またはIP>:9000/ s3 mb s3://testbucket1

〇ローカルファイルをminioにコピー
aws --endpoint-url http://<Dockerホスト名またはIP>:9000/ s3 cp ファイル名 s3://testbucket1

〇バケット内の一覧表示
aws --endpoint-url http://<Dockerホスト名またはIP>:9000/ s3 ls s3://testbucket1


関連情報

・Minioのgithubリポジトリ
https://github.com/minio/minio

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

2018年7月8日日曜日

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

documizeは、go言語製のドキュメント管理アプリケーションです。

○documizeの画面


○構築方法
1.以下のVagrantfileを使用して、Documize Community EditionとMySQLをインストールした仮想マシン(Debian Stretch/9.4)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94docunize"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94docunize"
     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
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 mysql
wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb
export DEBIAN_FRONTEND=noninteractive
echo mysql-apt-config mysql-apt-config/enable-repo select mysql-5.7-dmr | sudo debconf-set-selections
dpkg -i mysql-apt-config_0.8.9-1_all.deb
apt-get update
apt-get -y install mysql-server
mysql -uroot -e "CREATE DATABASE documize DEFAULT CHARACTER SET utf8;"
mysql -uroot -e "CREATE USER documize@localhost IDENTIFIED BY 'documize';"
mysql -uroot -e "GRANT ALL PRIVILEGES ON documize.* TO 'documize'@'localhost';"
mysql -uroot -e "FLUSH PRIVILEGES;"


# install documize
mkdir -p /opt/documize
cd /opt/documize
wget https://github.com/documize/community/releases/download/v1.65.3/documize-community-linux-amd64
chmod +x /opt/documize/documize-community-linux-amd64

cat << EOF > /etc/systemd/system/documize.service
[Unit]
Description=documize
[Service]
Type=simple
ExecStart=/opt/documize/documize-community-linux-amd64 -port=5001 -db='documize:documize@tcp(localhost:3306)/documize' -dbtype=mysql -salt=1234567890acbdefg
WorkingDirectory=/opt/documize
[Install]
WantedBy=multi-user.target
EOF
systemctl enable documize.service
systemctl start documize.service

echo 'access http://192.168.1.106:5001/'
SHELL
end

2.ブラウザからhttp://192.168.1.106:5001/にアクセスして、セットアップ画面から管理者ユーザの情報を入力します。



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

VagrantでpgwebとPostgreSQL10がインストールされた仮想マシン(Ubuntu16.04)を構築する

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面


〇構築方法
以下のVagrantfileを使用して、pgwebとPostgreSQL10をインストールした仮想マシン(Ubuntu16.04)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.109:8080/にアクセスします。

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

# install postgresql
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
apt-get -y install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get upgrade
apt-get -y install postgresql-10

echo "listen_addresses='*'" >> /etc/postgresql/10/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/10/main/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf

su - postgres << EOF
createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 dwh
psql -c "
alter user postgres with password 'postgres';
create user dwh with password 'dwh';
grant all privileges on database dwh to dwh;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

# install pgweb
apt-get -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.12/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb

cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb

[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.109:8080/'
echo 'user: postgres, password: postgres'
SHELL
end


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

2018年7月3日火曜日

VagrantでpgwebとPostgreSQL10がインストールされた仮想マシン(Debian Stretch/9.4)を構築する

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面


〇構築方法
以下のVagrantfileを使用して、pgwebとPostgreSQL10をインストールした仮想マシン(Debian Stretch/9.4)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.109:8080/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94pgweb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94pgweb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.109", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.109", :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

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 postgresql
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
apt-get -y install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get upgrade
apt-get -y install postgresql-10

echo "listen_addresses='*'" >> /etc/postgresql/10/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/10/main/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf

su - postgres << EOF
createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 dwh
psql -c "
alter user postgres with password 'postgres';
create user dwh with password 'dwh';
grant all privileges on database dwh to dwh;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

# install pgweb
apt-get -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.12/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb

cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb

[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.109:8080/'
echo 'user: postgres, password: postgres'
SHELL
end


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

2018年6月23日土曜日

DockerでDocumize、MySQL5.7がインストールされたコンテナ(Alpine3.7)を構築する

DocumizeはGo言語製のドキュメント管理アプリケーションです。

〇Documizeの画面


○構築方法
以下の手順で、DocumizeとMySQL5.7のコンテナを構築・実行します。

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

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN wget https://github.com/documize/community/releases/download/v1.65.3/documize-community-linux-amd64 \
  && chmod +x /documize-community-linux-amd64
EXPOSE 5001
CMD sleep 10 && /documize-community-linux-amd64 -port=5001 -db='root:documize@tcp(db:3306)/documize' -dbtype=mysql -salt=1234567890acbdefg

2. JoomlaとPostgreSQL10.4コンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d db
少し間をおいてから
docker-compose up -d documize

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

3.ブラウザからhttp://<Dockerホスト名またはIP>:5001/にアクセスして、セットアップ画面から管理者ユーザの情報を入力します。



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