记录创建《intra-mart实践入门》#010 用于撰写的intra-mart环境构建
intra-mart环境快速指南
虽然想要说“三分钟就可以做完~”,但实在是不太可能,所以我们用“快捷”这样抽象的词语来搪塞吧。如果熟悉操作,没有迷茫的话大约30分钟就能完成。我们要做的是基于以下三点。虽然在书籍中会包括,但在这里不会描述与安全措施等运营所需功能有关的内容。
-
- CentOS 7 minimal安装完成
IM-Juggling设置完成
具备文件传输功能的SSH客户端设置完成
战争文件准备
创建一个新的PJ
在选择应用程序时,您可以选择以下三个选项。
-
- IM-formaDesinger for Accel Platform
-
- IM-BIS for Accel Platform
- IM-Workflow アプリケーション汎用アーカイブ
修改WAR文件的设置
请在resin-web.xml文件中输入数据库连接字符串的数据库名称、用户名和密码。
<database jndi-name="jdbc/default">
<driver>
<type>org.postgresql.Driver</type>
<url>jdbc:postgresql://localhost:5432/your_db_name</url>
<user>your_db_user_name</user>
<password>your_db_user_password</password>
<init-param>
<param-name>preparedStatementCacheQueries</param-name>
<param-value>20</param-value>
</init-param>
</driver>
<max-connections>20</max-connections>
<prepared-statement-cache-size>8</prepared-statement-cache-size>
</database>
修改storage-config.xml中的“root-path-name”。
<storage-info>
<root-path-name>/your/intra-mart/storage</root-path-name>
<system-directory-name>system</system-directory-name>
<public-directory-name>public</public-directory-name>
<group-directory-name>groups</group-directory-name>
<configuration-directory-name>conf</configuration-directory-name>
<conpatible-directory-name>public</conpatible-directory-name>
<storage-directory-name>storage</storage-directory-name>
<temporary-directory-name>temp</temporary-directory-name>
</storage-info>
构建WAR文件
将生成的文件传输到设置intra-mart的服务器上,可以使用SCP等方式进行传输。这样,WAR文件的准备工作就完成了。
中文翻译:准备中间件
如果安装操作系统已经完成,下一步只需要运行命令。我会像往常一样用类似Shell脚本的方式给出示例。复制粘贴之后,你可以喝杯茶坐下等待。
#!/bin/bash
# SELinuxの無効化
setenforce 0
sed -i.bak -e "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# パスワードなしsudo可能な管理ユーザーの追加
useradd admin_user_name -g wheel -c "管理ユーザー"
sed -i -e "$ a %wheel ALL=NOPASSWD: ALL" /etc/sudoers
sed -i -e "$ a Defaults:admin_user_name \!requiretty" /etc/sudoers
# 管理ユーザーでログイン
su admin_user_name -l
# intra-martで使用するポートのFirewall設定変更
sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
sudo firewall-cmd --zone=public --permanent --add-port=6600/tcp
sudo firewall-cmd --zone=public --permanent --add-port=5432/tcp
sudo firewall-cmd --reload
# PostgreSQLのインストール
sudo sed -i -e "$ a export PGDATA='/var/lib/pgsql/10/data'" /etc/profile
sudo rpm -ivh https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
sudo yum -y install postgresql10-server-10.1 postgresql10-devel-10.1 postgresql10-contrib-10.1
sudo su -l postgres -c "/usr/pgsql-10/bin/initdb -D /var/lib/pgsql/10/data --encoding=UTF8 --locale=ja_JP.utf8"
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
# PostgreSQLの設定
sudo su -l postgres -c "sed -i.bak -e \"s|^#listen_addresses *= *'localhost'|listen_addresses = '*'|g\" /var/lib/pgsql/10/data/postgresql.conf"
sudo su -l postgres -c "sed -i.bak -e \"$ a host all all 0.0.0.0/0 md5\" /var/lib/pgsql/10/data/pg_hba.conf"
# JDKのインストール
sudo yum -y install wget
sudo wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -q -O /tmp/jdk.rpm "http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.rpm"
sudo rpm -ivh /tmp/jdk.rpm
sudo rm -f /tmp/jdk.rpm
sudo sed -i -e "$ a export JAVA_HOME='/usr/java/jdk1.8.0_162'" /etc/profile
sudo sed -i -e "$ a export PATH=\$JAVA_HOME/bin:\$PATH" /etc/profile
# Resinのインストール
sudo yum -y install wget openssl-devel gcc make
mkdir /tmp/resin
sudo wget -q -O - http://caucho.com/download/resin-pro-4.0.55.tar.gz | tar zxv -C /tmp/resin --strip-components=1
cd /tmp/resin
sudo ./configure --prefix=/usr/resin --enable-64bit --enable-ssl
sudo make
sudo make install
cd ~/
sudo rm -r -f /tmp/resin
sudo sed -i -e "$ a export RESIN_HOME='/usr/resin'" /etc/profile
# Resinの設定
sudo wget -q -P /usr/resin/lib "https://jdbc.postgresql.org/download/postgresql-42.2.1.jre6.jar"
sudo mkdir -p /var/resin-tmp
sudo sed -i.bak -e "s|^app.http *:.*$|app.http : 80|g" /usr/resin/conf/resin.properties
sudo sed -i -e "s|^# app.https *:.*$|app.https : 443|g" /usr/resin/conf/resin.properties
sudo sed -i -e "s|^web.http *:.*$|web.http : 80|g" /usr/resin/conf/resin.properties
sudo sed -i -e "s|^# web.https *:.*$|web.https : 443|g" /usr/resin/conf/resin.properties
sudo sed -i -e "s|^# log_level *: *.*$|log_level : info|g" /usr/resin/conf/resin.properties
sudo sed -i -e "s|^dev_mode *: *.*$|dev_mode : false|g" /usr/resin/conf/resin.properties
sudo sed -i -e "s|^# dependency_check_interval *:.*$|dependency_check_interval : 10s|g" /usr/resin/conf/resin.properties
jvm_args="-Xms2048m -Xmx2048m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/var/resin-tmp"
sudo sed -i -e "s|^# jvm_args *: *.*$|jvm_args : ${jvm_args}|g" /usr/resin/conf/resin.properties
sudo sed -i -e "s|^#JAVA_HOME=.*$|source /etc/profile|g" /etc/init.d/resin
sudo systemctl daemon-reload
sudo systemctl start resin
sudo systemctl enable resin
进行intra-mart系统初始化
如果到这一步了,只剩一步了。让我们轻松部署WAR文件。
#!/bin/bash
# intra-martで使うストレージの初期化
sudo rm -r -f /your/intra-mart/storage
sudo mkdir -p /your/intra-mart/storage
# intra-martで使うDBの作成
sudo su -l postgres -c "psql -c \"CREATE ROLE your_db_user_name WITH LOGIN SUPERUSER CREATEDB PASSWORD 'your_db_user_password';\""
sudo su -l postgres -c "createdb -O your_db_user_name -U postgres your_db_name"
# WARファイルのデプロイ
sudo /usr/resin/bin/resinctl deploy /your/managed/directory/context_root_name.war
终于准备好了。
Intra-mart的设置变得困难,不仅仅是因为AP服务器和DBMS的难度很高,还因为跟随官方提供的设置指南会试图设置Apache Cassandra和Apache Solr导致的。只是在5.1.4.模块选择中写得很简单,更加让人困惑…。→习惯了一段时间后,我会想要直接排除数据库并调查依赖关系,所以如果有不必要的数据会更加混乱。→过去已经建立了100多个租户,但失败的占了3至5成。