2017年11月6日月曜日

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

PyCharmはPython用の統合開発環境です。

仮想マシンの構築方法

以下のVagrantfileを使用して、PyCharmとGnome Desktop環境、XRDPをインストールした仮想マシンを構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。
PyCharmを起動するには、デスクトップにあるPyCharmという名称のアイコンをダブルクリックします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74pycharm"
  config.vm.network :public_network, ip:"192.168.1.111"
  config.vm.network "private_network", ip: "192.168.55.111", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74pycharm"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
    vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  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 yum -y groupinstall "GNOME Desktop"
# 不要なダイアログを表示されないようにする
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

# PyCharm community editionのダウンロード
wget https://download.jetbrains.com/python/pycharm-community-2017.2.3.tar.gz
tar xvfz pycharm-community-2017.2.3.tar.gz
mv pycharm-community-2017.2.3 /opt/pycharm-community

# PyCharmのショートカットを作成
mkdir -p /home/vagrant/デスクトップ/
chown vagrant:vagrant /home/vagrant/デスクトップ/
cat << EOF > /home/vagrant/デスクトップ/pycharm.desktop
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=sh -c "setxkbmap jp -model jp106 && /opt/pycharm-community/bin/pycharm.sh"
Name=PyCharm
Icon=/opt/pycharm-community/bin/pycharm.png
EOF
chmod +x /home/vagrant/デスクトップ/pycharm.desktop
chown vagrant:vagrant /home/vagrant/デスクトップ/pycharm.desktop

SHELL
end

○デスクトップ画面


○PyCharmの画面


関連情報

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

2017年11月5日日曜日

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

より新しいバージョンの記事はこちら(VagrantでCockroachDB2.0.0をインストールした仮想マシン(CentOS7.4)を構築する)です。

以下のVagrantfileを使用して、CockroachDBをインストールした仮想マシンを構築することができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74cockroach"
  config.vm.network :public_network, ip:"192.168.1.116"
  config.vm.network "private_network", ip: "192.168.55.116", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
    vbox.name = "co74cockroach"
    vbox.cpus = 4
    vbox.memory = 4096
    vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.provision "shell", inline: <<-SHELL
wget https://binaries.cockroachdb.com/cockroach-v1.1.0.linux-amd64.tgz
tar xvfz cockroach-v1.1.0.linux-amd64.tgz
mv cockroach-v1.1.0.linux-amd64 /opt/cockroach
#mkdir -p /opt/cockroach/data

cat << EOF > /etc/systemd/system/cockroachdb.service
[Unit]
Description=cockroachdb
Requires=network.target
After=zookeepepr.service

[Service]
Type=forking
WorkingDirectory=/opt/cockroach
ExecStart=/opt/cockroach/cockroach start --insecure --host=192.168.55.116 --background
ExecStop=/opt/cockroach/cockroach quit

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

# サンプル実行
/opt/cockroach/cockroach sql --insecure --host=192.168.55.116 << EOF
CREATE DATABASE test;
CREATE TABLE test.messages (id INT PRIMARY KEY, message varchar(100));
INSERT INTO test.messages VALUES (1, 'hello world.');
select * from test.messages;
EOF

echo 'access to http://192.168.55.116:8080/';
SHELL
end

○CockroachDBのWebコンソール



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

2017年11月4日土曜日

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

以下のVagrantfileを使用してjoomlaを使用した仮想マシンを構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604joomla"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604joomla"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.105", :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 mysql
echo "mysql-server-5.7 mysql-server/root_password password root" | sudo debconf-set-selections
echo "mysql-server-5.7 mysql-server/root_password_again password root" | sudo debconf-set-selections
apt-get -y install mysql-server-5.7
mysql -uroot -proot -e "CREATE DATABASE joomla DEFAULT CHARACTER SET utf8;"
mysql -uroot -proot -e "CREATE USER joomla@localhost IDENTIFIED BY 'joomla';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON joomla.* TO 'joomla'@'localhost';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON joomla.* TO 'joomla'@'%';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"
apt-get -y install apache2 libapache2-mod-php7.0 php7.0-cgi  php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xml

apt-get -y install unzip
# install joomla
mkdir joomla
cd joomla
wget -O joomla.zip https://downloads.joomla.org/cms/joomla3/3-8-1/joomla_3-8-1-stable-full_package-zip?format=zip
unzip joomla.zip
mv ~vagrant/joomla /opt/joomla
chown -R www-data:www-data /opt/joomla
ln -s  /opt/joomla /var/www/html
service apache2 restart
echo 'access http://192.168.1.105/joomla/';;
echo 'user: joomla  password:joomla  db:joomla'

SHELL
end

1.初期設定画面1


2.初期設定画面2


3.初期設定画面3


4.初期設定画面4


5.初期設定画面5


6.ログイン画面


7.ログイン後の画面



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

2017年11月3日金曜日

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

PyCharmはPython用の統合開発環境です。

仮想マシンの構築方法

以下のVagrantfileを使用して、PyCharmとLXDE Desktop環境、XRDPをインストールした仮想マシンを構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。
PyCharmを起動するには、デスクトップにあるPyCharmという名称のアイコンをダブルクリックします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604lxdepycharm"
  config.vm.network :public_network, ip:"192.168.1.113"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604lxdepycharm"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
apt-get -y install xrdp fcitx-mozc lubuntu-desktop language-pack-ja
im-config -n fcitx

# PyCharm community editionのダウンロード
wget https://download.jetbrains.com/python/pycharm-community-2017.2.3.tar.gz
tar xvfz pycharm-community-2017.2.3.tar.gz
mv pycharm-community-2017.2.3 /opt/pycharm-community

# PyCharmのショートカットを作成
mkdir -p /home/vagrant/デスクトップ/
chown vagrant:vagrant /home/vagrant/デスクトップ/
cat << EOF > /home/vagrant/デスクトップ/pycharm.desktop
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=sh -c "setxkbmap jp -model jp106 && /opt/pycharm-community/bin/pycharm.sh"
Name=PyCharm
Icon=/opt/pycharm-community/bin/pycharm.png
EOF
chmod +x /home/vagrant/デスクトップ/pycharm.desktop
chown vagrant:vagrant /home/vagrant/デスクトップ/pycharm.desktop

init 5
SHELL
end

〇PyCharmの画面


関連情報

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

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

以下のVagrantfileを使用して、nextcloudがインストールされた仮想マシンを構築できます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604nextcloud"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604nextcloud"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.105", :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 mysql
echo "mysql-server-5.7 mysql-server/root_password password root" | sudo debconf-set-selections
echo "mysql-server-5.7 mysql-server/root_password_again password root" | sudo debconf-set-selections
apt-get -y install mysql-server-5.7
mysql -uroot -proot -e "CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8;"
mysql -uroot -proot -e "CREATE USER nextcloud@localhost IDENTIFIED BY 'nextcloud';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'%';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"
apt-get -y install apache2 libapache2-mod-php7.0
apt-get -y install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring
apt-get -y install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip
apt-get -y install unzip
# install nextcloud
wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.zip
unzip nextcloud-12.0.3.zip
mv nextcloud /opt/nextcloud
chown -R www-data:www-data /opt/nextcloud
ln -s  /opt/nextcloud /var/www/html
service apache2 restart
echo 'access http://192.168.1.105/nextcloud/';
echo 'user: nextcloud  password:nextcloud  db:nextcloud:3306'
SHELL
end

nextcloudの初期設定画面


nextcloudのログオン後の画面


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

2017年11月2日木曜日

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

より新しいバージョンのApache Ignite2.3.0の情報は以下のエントリにあります。
VagrantでApache Ignite2.3.0をインストールした仮想マシン(CentOS7.4)を構築する

以下のVagrantfileを使用してApache Ignite2.2.0をインストールした仮想マシンを構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74ignite"
  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 = "co74ignite"
    vbox.cpus = 2
    vbox.memory = 2048
    vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.provision "shell", inline: <<-SHELL

# install OpenJDK8
yum -y install java-1.8.0-openjdk

# install ignite
yum -y install unzip
wget https://dist.apache.org/repos/dist/release/ignite/2.2.0/apache-ignite-fabric-2.2.0-bin.zip
unzip apache-ignite-fabric-2.2.0-bin.zip
mv apache-ignite-fabric-2.2.0-bin /opt/ignite

cat << EOF > /etc/systemd/system/ignite.service
[Unit]
Description=Apache Ignite

[Service]
ExecStart=/opt/ignite/bin/ignite.sh
WorkingDirectory=/opt/ignite
KillMode=process
PrivateTmp=true

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

# サンプルSQLの実行
wget http://wiki.metawerx.net/attach/SJSQL/sjsql.java
wget http://wiki.metawerx.net/attach/SJSQL/sjsql.class

cat << EOF >> /home/vagrant/test.sql
create table test1 (test_id integer primary key, test_desc varchar(100));
insert into test1 (test_id, test_desc) values (1, 'test_id_001');
select * from test1;
EOF
java -cp .:/opt/ignite/libs/ignite-core-2.2.0.jar sjsql org.apache.ignite.IgniteJdbcThinDriver jdbc:ignite:thin://127.0.0.1/ test test /home/vagrant/test.sql

SHELL
end

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

2017年11月1日水曜日

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

以下のVagrantfileを使用して、seafileがインストールされた仮想マシンを構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.103:8000/にアクセスします。

Vagratfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74seafile"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74seafile"
     vbox.cpus = 4
     vbox.memory = 4096
     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
# 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 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');"
export MYSQL_PWD=$MYSQL_ROOTPWD

mysql -uroot --connect-expired-password -e "CREATE USER seafile@localhost IDENTIFIED BY 'seafile';"
mysql -uroot --connect-expired-password -e "GRANT ALL PRIVILEGES ON *.* TO 'seafile'@'localhost';"

cp /etc/my.cnf /etc/my.cnf.org
cat << EOF > /etc/my.cnf
[client]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
bind-address = 0.0.0.0
port            = 3306
key_buffer_size = 256M
max_allowed_packet = 16M
table_open_cache = 16
innodb_buffer_pool_size = 512M
innodb_log_file_size = 32M
sort_buffer_size = 8M
read_buffer_size = 8M
read_rnd_buffer_size = 8M
join_buffer_size = 8M
thread_stack = 4M
character-set-server=utf8
lower_case_table_names = 1
innodb_lock_wait_timeout=120
skip-innodb-doublewrite

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EOF

sudo systemctl stop mysqld.service
sudo cp /vagrant/my.cnf /etc

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
sudo systemctl start mysqld.service

# ダウンロードとインストール
wget https://download.seadrive.org/seafile-server_6.2.2_x86-64.tar.gz
tar xvfz seafile-server_6.2.2_x86-64.tar.gz
mv seafile-server-6.2.2/ /opt/seafile

yum -y install python-distribute python-imaging MySQL-python
/opt/seafile/setup-seafile-mysql.sh auto -n `hostname` -i 192.168.55.103 -p 8082 -d /opt/seafile/data -e 0 -o localhost -t 3306 -r root -u seafile -w seafile -q 192.168.55.103 -c ccnetdb -s seafiledb -b seahubdb

cat << EOF > /etc/systemd/system/seafile.service
[Unit]
Description=seafile
Requires=network.target
After=zookeepepr.service

[Service]
Type=forking
ExecStart=/opt/seafile/seafile.sh start
ExecStop=/opt/seafile/seafile.sh stop

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

cat << EOF > /etc/systemd/system/seahub.service
[Unit]
Description=seahub
Requires=network.target
After=zookeepepr.service

[Service]
Type=forking
ExecStart=/opt/seafile/seahub.sh start
ExecStop=/opt/seafile/seahub.sh stop

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

cat << EOF | /opt/seafile/reset-admin.sh
admin@example.com
admin
admin
EOF

echo 'access to http://192.168.55.103:8000/';
echo 'user: admin@example.com    password: admin'
SHELL
end

○seafileのログイン画面


○seafileのログイン後の画面