« 2019年12月 | トップページ | 2020年2月 »
試行錯誤中のホームページのタイトルをWeekly CaptureからIn and Outに変更した。
なかなかテーマを設定するってことは難しい。いろいろと試している中で、やはり原点はマクロレンズかもしれないと考えに至った。マクロレンズで撮った題材は花。それに標準レンズで撮った風景を混ぜることで、In and Outとテーマを設定した次第。
風景はそこから得られるイメージや撮影した時の気持ち(もう覚えていないけれど)でフリータイトルとする。マクロは花が中心で、タイトルをどうしようか試行錯誤してきたけれど、今日それを花言葉に設定することにしてみた。花言葉には全くの素人だけれど、由来なんかも調べてみたりして、なかなか奥が深そうな予感。
とりあえず暫くこの路線で行ってみようと思う。
本番用ホームページからもリンクを張った。
GPFS HDFS Transparencyって何なのか知りたくてHadoopをインストールした。参考にさせていただいたのは以下のリンク。
CentOS7でApache Hadoopの疑似分散モードを使ってみる
完全分散モードは以下
https://blog.amedama.jp/entry/2017/06/06/040651
インストール先の環境は以下の通り。
GPFS Client Node (SMB Protocol Nodeで構成済み)
GPFS Server Node x 2(共有ディスクの上に構成)
VMWare Player上のESXi上に構成している。
今回は上記GPFS ClientにHadoopを疑似分散モードで構成して、HadoopのHDFSをGPFSに置き換える作業をしてみる。参考資料等は以下のリンク。
GPFS HDFS Transparency導入ガイド
GPFS HDFS Transparencyダウンロード
インストールしたhadoopは2.10.0。
# wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz
既にGPFS Client Nodeにはopenjdk 1.8.0がインストール済だった。
# java -version
openjdk version "1.8.0_222"
けれども後からjpsが入っていない事が判明し、以下の通りdevelをインストールし直した。develにはjpsが含まれている。
# yum -y insall hava-1.8.0-openjdk-devel
# jps
19936 Jps
28841 NameNode
28817 SecondaryNameNode
29071 DataNode
ガイド通りに構成したら疑似分散モードはちゃんと動いているみたい。サンプルプログラムも動作した(みたい)。
ここまででGPFS HDFS Transparencyをインストールするベースが出来た(と思う)。
インストールするHDFS Transparencyは3.1.0とした(とりあえず最新バージョン)。
gpfs.hdfs-protocol-3.1.0-3.x86_64.rpm
上記ダウンロード先からpart1とpart2をダウンロードして、catで連結してrpmを作成(ガイド通り)。
ちなみにインストール済みのGPFSは5.0.3。
ここまでの過程で重要なのがcore-site.xmlの編集。core-site.xmlはHadoopが使用するhdfsを設定する。ここでは素のhdfsを設定するけれど、後からそれをgpfs hdfs transparencyに設定しなおすことで、hadoopが気が付くことなくhdfsを入れ替える。
hadoop-2.10.0/etc/hadoop/core-site.xmlの最後に以下の行を追記する。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
これでDefaultのファイルシステムがlocalhostのhdfsになる。ここで指定するlocalhostはNameNodeの意味。ここで?。疑似分散モードだからlocalhost指定は納得だけれどもポート番号9000はどこで分かるのだろう。ということでググってみた結果、いかにポート番号が掲載されていた。
Apache Hadoop HDFSのポート番号
ここを読むとDefault Portとして8020と9000の二つが記載されている。Defaultはどっち?以下を読むとHadoopのリリースに依存するみたい。
8020/9000?
少なくともApache Hadoop 2.10.0では9000で動いているのは事実。
もう一つ重要なのはhadoop-2.10.0/etc/hadoop/hdfs-site.xml。ここではReplicaの数を設定する。Defaultは3だけれども疑似分散モードはDataNodeが1NodeだけだからReplicaの数は1。以下の行をhdfs-site.xmlに追記する。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
ここの実験では疑似分散モードのlocalhostのストレージをGPFSに置き換えることを試みているので、DataNode数は1のまま。なのでGPFS HDFS Transparencyを入れた後もReplicationは1のまま。
以下、行った作業:
以下の行を /etc/security/limits.conf fileに追記した。
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
/var/mmfs/hadoop/etc/hadoop/core-site.xmlのサーバー名のみをlocalhostに変更。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>
もし、HDFS NameNodeとHDFS Transparency NameNodeが異なるのならhadoop側のcore-site.xmlを修正せよ、とのこと。HDFS Transparency側のNameNodeのポート番号が8020だったので、HDFS側の9000を8020に変更。
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
/var/mmfs/hadoop/etc/hadoop/gpfs-siteの以下を変更:
<property>
<name>gpfs.mnt.dir</name>
<value>/gpfs/gpfsfs01/hdfs01</value>
</property>
<property>
<name>gpfs.data.dir</name>
<value>data_dir</value>
</property>
/gpfs/gpfsfs01/hdfs01/data_dirは事前に作成しておく。
/var/mmfs/hadoop/etc/hadoop/workersにlocalhostが登録されていることを確認。
/var/mmfs/hadoop/etc/hadoop/hadoop-env.shに以下を設定(この設定がないとmmhadoopctlがJAVA_HOMEが未設定と言ってくる)。
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
/usr/lpp/mmfs/bin/mmhadoopctl connector syncconfを実行してNode間の設定同期。
/usr/lpp/mmfs/bin/mmhadoopctl connector startを実行
Starting namenodes on [localhost]
Starting datanodes
/usr/lpp/mmfs/bin/mmhadoopctl connector getstateを実行
localhost: namenode pid is 26128
localhost: datanode pid is 22378
この状態で以下を実行
# bin/hdfs dfs -ls -R
うぅーーーー、上記作業をしても、HDFS Transparency構成前の素のファイルシステムのls結果が表示されてしまう。
そもそも、上記操作はどいう意味をもっているのだろう。mmfs配下のcore-site.xmlで以下をセットしている。
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
一方、素のhadoop配下のcore-site.xmlには以下をセットしている。
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
ポート番号を8020に統一しても結果は同じ。
そもそも、HDFS Transparencyって何なんだろう?この答えは以下にあると思う。
If your native HDFS NameNodes are different than HDFS Transparency NameNodes, you need to update
fs.defaultFS in your Hadoop configuration (for HortonWorks HDP it is located under /etc/Hadoop/conf.
If it is open source Apache Hadoop, it is located under $YOUR_HADOOP_PREFIX/etc/hadoop/.):
<property>
<name>fs.defaultFS</name>
<value>hdfs://hs22n44:8020</value>
</property>
もしも、素のNameNodeがHDFS TransparencyのNameNodeと異なるのであれば、素のNameNodeの記載を変更せよ、とある。つまり、素のNameNodeをHDFS TransparencyのNameNodeで置き換えることを意味している。同じNameNodeノードならば、HDFS Transparencyが素のNodeNameノードをオーバーライドしていることになる。このオーバーライドが上手くいっていないってこのなんだろうか。。。
実際手順として、素のHDFSが止まっている状態(sbin/stop-dfs.sh実行後)ではmmhadoopctl connector startは以下を出力する。
[localhost] namenode is dead, previous pid is xxxxx
HDFS Transparencyを再起動(mmhadoopctl connector stopしてからstart)してからhdfs dfs -lsを実行するとfailed on connection exceptionが発生する。
ガイド通りの操作は、素のHDFSが立ち上がっているところで、mmhadoopctl connector startを実行すること。つまり、動作中の素のHDFSのNameNodeをmmhadoopctlでオーバーライドすること、なのだろう。
原因判明
以下の/gpfs_mount_pointの解釈を間違っていた。ここにはGPFSがマウントされているディレクトリを記載しないといけなかった。
対象システムではGPFSは/gpfs/gpfsfs01にマウントしていたので、以下に修正。またdata_dirはその下に作成してあるfilesetのfs01を設定した。ちなみにgpfs.data.dirはブランクでも良いみたい。
<property>
<name>gpfs.mnt.dir</name>
<value>/gpfs/gpfsfs01t</value>
</property>
<property>
<name>gpfs.data.dir</name>
<value>fs01</value>
</property>
これで、Native HDFSからGPFSへの切り替えが成功した。しかし、、、
mkdirを実行するとNullPointerExceptionが発生。
# bin/hdfs dfs -mkdir -p /user
mkdir: java.lang.NullPointerException
/var/log/transparencyにあるnamenode logを見ると以下がログられている。
2020-01-18 19:02:56,600 WARN org.apache.hadoop.hdfs.server.namenode.GPFSNative: @get_file:408 /gpfs/gpfsfs01/fs01
2020-01-18 19:02:56,793 WARN org.apache.hadoop.hdfs.server.namenode.GPFSNative: @get_file:408 /gpfs/gpfsfs01/fs01
2020-01-18 19:02:56,813 WARN org.apache.hadoop.ipc.Server: IPC Server handler 518 on 9000, call Call#1 Retry#0 org.apache.hadoop.hdfs.protocol.ClientProtocol.mkdirs from 127.0.0.1:37474
java.lang.NullPointerException
at org.apache.hadoop.hdfs.server.namenode.FSDirMkdirOp.createParentDirectories(FSDirMkdirOp.java:134)
at org.apache.hadoop.hdfs.server.namenode.FSDirMkdirOp.mkdirs(FSDirMkdirOp.java:75)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:3074)
at org.apache.hadoop.hdfs.server.namenode.GPFSNamesystem.mkdirs(GPFSNamesystem.java:433)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.mkdirs(NameNodeRpcServer.java:1115)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.mkdirs(ClientNamenodeProtocolServerSideTranslatorPB.java:695)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:523)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:991)
at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:869)
at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:815)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1682)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2675)
#
何か設定が足りないみたい。
Logを見るとSecurity絡みでNullPointerExceptionが起きているみたいなので、セキュリティ関係を調整してみた。
/gpfs/gpfsfs01/fs01のACL変更ー>効果なし
# mmgetacl /gpfs/gpfsfs01/fs01 -o acl.01 -k native
# cat acl.01
#NFSv4 ACL
#owner:root
#group:root
special:owner@:rwxc:allow
(X)READ/LIST (X)WRITE/CREATE (X)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL (X)READ_ATTR (X)READ_NAMED
(-)DELETE (X)DELETE_CHILD (X)CHOWN (X)EXEC/SEARCH (X)WRITE_ACL (X)WRITE_ATTR (X)WRITE_NAMED
special:group@:----:allow
(-)READ/LIST (-)WRITE/CREATE (-)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL (X)READ_ATTR (X)READ_NAMED
(-)DELETE (-)DELETE_CHILD (-)CHOWN (-)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED
special:everyone@:----:allow
(-)READ/LIST (-)WRITE/CREATE (-)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL (X)READ_ATTR (X)READ_NAMED
(-)DELETE (-)DELETE_CHILD (-)CHOWN (-)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED
# mmeditacl /gpfs/gpfsfs01/fs01, where I gave group and everyone READ/LIST, WRITE/CREAET and APPEND/MKDIR privilege.
# mmgetacl /gpfs/gpfsfs01/fs01 -o acl.02
# cat acl.02
以下、acl.02#の中身
#NFSv4 ACL
#owner:root
#group:root
special:owner@:rwxc:allow
(X)READ/LIST (X)WRITE/CREATE (X)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL (X)READ_ATTR (X)READ_NAMED
(-)DELETE (X)DELETE_CHILD (X)CHOWN (X)EXEC/SEARCH (X)WRITE_ACL (X)WRITE_ATTR (X)WRITE_NAMED
special:group@:rw--:allow
(X)READ/LIST (X)WRITE/CREATE (X)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL (X)READ_ATTR (X)READ_NAMED
(-)DELETE (-)DELETE_CHILD (-)CHOWN (-)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED
special:everyone@:rw--:allow
(X)READ/LIST (X)WRITE/CREATE (X)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL (X)READ_ATTR (X)READ_NAMED
(-)DELETE (-)DELETE_CHILD (-)CHOWN (-)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED
Unfortunately, nothing has been changed but still failed with NullPointerException.
Filesystem Attributeの変更ー>効果なし
# mmlsfs all -k
File system attributes for /dev/gpfsfs01:
=========================================
flag value description
------------------- ------------------------ -----------------------------------
-k nfs4 ACL semantics in effect
# mmchfs /dev/gpfsfs01 -k all
# mmlsfs all -k
File system attributes for /dev/gpfsfs01:
=========================================
flag value description
------------------- ------------------------ -----------------------------------
-k all ACL semantics in effect
#
Native HDFSでは問題ないのにHDFS TransparencyではExceptionが起きる。。。。
MacとWindows10とのファイル共有方法のメモ。両マシーンは同一ローカルネットワーク上にあるという前提。
Windows側
Mac側
CentOS側
以上
dockerでWordPressを試してみた。
以下を参照させていただいた。
初めてのDocker~公式イメージで簡単にWordPressサイトを作る方法
以下実行結果
まずはDockerのインストールから。ここでは以下を参照させていただいた。
Install Docker on CentOS 7
# yum install -y yum-utils device-mapper-persistent-data lvm2
中略
完了しました!
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
読み込んだプラグイン:fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
# yum install -y docker-ce docker-ce-cli containerd.io
中略
完了しました!
# systemctl start docker
# docker --version
Docker version 19.03.5, build 633a0ea
#
Dockerのインストール完了。次にWordpressとmysqlのPull。
# docker pull docker.io/wordpress
Using default tag: latest
latest: Pulling from library/wordpress
中略
Status: Downloaded newer image for wordpress:latest
docker.io/library/wordpress:latest
#
# docker pull docker.io/mysql
Using default tag: latest
latest: Pulling from library/mysql
中略
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
#
mysqlとWordPressのRun。
# sudo docker run --name mysite_db -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=mysite -d mysql
cdbb6dcc1293f16aaf8fa455972e9669e90613fbd1265c7cd0ef9273580f9c8
# sudo docker run --name mysite --link mysite_db:mysql -p 80:80 -e WORDPRESS_DB_PASSWORD=password -d wordpress
e547ad16ef7140380431aaeb14b47023dbfae3efb00d75d9120c0748102335ea
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e547ad16ef71 wordpress "docker-entrypoint.s…" 24 seconds ago Up 23 seconds 0.0.0.0:80->80/tcp mysite
cdbb6dcc1293 mysql "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 3306/tcp, 33060/tcp mysite_db
しかしながら、WordPressはDatabaseにConnectionできないとな、、、、
想定される原因は以下だと言っている:
そもそも、WordPressコンテナからMysqlコンテナにどうやって接続するのだろう。
今一度runsの際のパラメータを見てみる。
sudo docker run --name mysite_db -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=mysite -d mysql
mysqlに設定されるパラメータはrootのパスワードとデータベース名
sudo docker run --name mysite --link mysite_db:mysql -p 80:80 -e WORDPRESS_DB_PASSWORD=password -d wordpress
WordPressに設定されるのは--linkオプションのみ。
wordpress上のbashで環境変数を確認すると以下の通り。
root@e547ad16ef71:/var/www/html# env
MYSQL_PORT_33060_TCP_ADDR=172.17.0.2
MYSQL_PORT=tcp://172.17.0.2:3306
MYSQL_PORT_3306_TCP_ADDR=172.17.0.2
MYSQL_NAME=/mysite/mysql
MYSQL_ENV_MYSQL_ROOT_PASSWORD=password
MYSQL_PORT_3306_TCP_PORT=3306
HOSTNAME=e547ad16ef71
PHP_VERSION=7.3.13
APACHE_CONFDIR=/etc/apache2
PHP_MD5=
PHP_INI_DIR=/usr/local/etc/php
WORDPRESS_VERSION=5.3.2
GPG_KEYS=CBAF69F173A0FEA4B537F470D66C9593118BCCB6 F38252826ACD957EF380D39F2F7956BC5DA04B5D
MYSQL_ENV_MYSQL_MAJOR=8.0
PHP_LDFLAGS=-Wl,-O1 -Wl,--hash-style=both -pie
MYSQL_PORT_3306_TCP=tcp://172.17.0.2:3306
PWD=/var/www/html
HOME=/root
MYSQL_ENV_GOSU_VERSION=1.7
MYSQL_PORT_33060_TCP_PROTO=tcp
WORDPRESS_SHA1=fded476f112dbab14e3b5acddd2bcfa550e7b01b
PHP_SHA256=57ac55fe442d2da650abeb9e6fa161bd3a98ba6528c029f076f8bba43dd5c228
PHPIZE_DEPS=autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c
TERM=xterm
PHP_URL=https://www.php.net/get/php-7.3.13.tar.xz/from/this/mirror
MYSQL_PORT_33060_TCP_PORT=33060
PHP_EXTRA_CONFIGURE_ARGS=--with-apxs2 --disable-cgi
MYSQL_PORT_3306_TCP_PROTO=tcp
SHLVL=1
PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
MYSQL_PORT_33060_TCP=tcp://172.17.0.2:33060
WORDPRESS_DB_PASSWORD=password
APACHE_ENVVARS=/etc/apache2/envvars
MYSQL_ENV_MYSQL_DATABASE=mysite
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PHP_EXTRA_BUILD_DEPS=apache2-dev
PHP_ASC_URL=https://www.php.net/get/php-7.3.13.tar.xz.asc/from/this/mirror
PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
MYSQL_ENV_MYSQL_VERSION=8.0.18-1debian9
_=/usr/bin/env
root@e547ad16ef71:/var/www/html#
/etc/hostsを確認すると以下の通り。mysqlは172.17.0.2でホストマッピングされている。
root@e547ad16ef71:/var/www/html# env | grep mysql
MYSQL_NAME=/mysite/mysql
root@e547ad16ef71:/var/www/html# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 mysql cdbb6dcc1293 mysite_db
172.17.0.3 e547ad16ef71
root@e547ad16ef71:/var/www/html#
ポート番号等はデフォルトの値が入っている。mysqlに到達できないのか?と思ってping実行を試みるもそんなん知らんと言われた。最小構成ではpingも省かれるみたい。代わりにcurlを使ってみる。
root@e547ad16ef71:/var/www/html# curl mysql
curl: (7) Failed to connect to mysql port 80: Connection refused
どうやら到達はしているみたい。
次にwp-config.phpを覗いてみる。
root@e547ad16ef71:/var/www/html# cat wp-config.php
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don't have to use the web site, you can
* copy this file to "wp-config.php" and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://codex.wordpress.org/Editing_wp-config.php
*
* @package WordPress
*/
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'mysite');
/** MySQL database username */
define( 'DB_USER', 'root');
/** MySQL database password */
define( 'DB_PASSWORD', 'password');
/** MySQL hostname */
define( 'DB_HOST', 'mysql');
/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '');
/**#@+
中略
root@e547ad16ef71:/var/www/html#
なんだか良い感じ。
困ったなぁ、、、、
某製品のインストールガイドを見たらインストールサーバーの導入がpodman前提となっていたので早速実験。
$ sudo yum install -y podman
これで無事にpodmanがインストールできた。
$ sudo podman version
Version: 1.4.4
RemoteAPI Version: 1
Go Version: go1.10.3
OS/Arch: linux/amd64
お決まりのHello Worldで確認。
$ sudo podman run docker.io/hello-world:latest
Trying to pull docker.io/hello-world:latest...Getting image source signatures
Copying blob 1b930d010525 done
Copying config fce289e99e done
Writing manifest to image destination
Storing signatures
Hello from Docker!
以下省略。。。。
次にnginxをプルしてRun。
$ sudo podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e0db60d61ea docker.io/library/nginx:latest nginx -g daemon o... 5 hours ago Up 5 hours ago 0.0.0.0:8080->80/tcp elastic_panini
ef1a8cfc4fc8 docker.io/library/hello-world:latest /hello 5 hours ago Exited (0) 5 hours ago bold_moore
まずはめでたし、めでたし。
ここまでくるとpodmanでWordPressを動かしたくなった。WordPressとmysqlをPullしてみた。
$ sudo podman pull docker.io/wordpress:5.3.2
Trying to pull docker.io/wordpress:5.3.2...Getting image source signatures
Copying blob 8ec398bc0356 skipped: already exists
Copying blob 970dadf4ccb6 done
Copying blob d6b7434b63a2 done
Copying blob 8c04561117a4 done
Copying blob 83d8859e9744 done
Copying blob 9c3d824d0ad5 done
Copying blob 85cf4fc86478 done
Copying blob 578b40496c37 done
Copying blob 9e316fd5b3b3 done
Copying blob 4896fed78b6b done
Copying blob 814ae7711d3c done
Copying blob e74d71e9611d done
Copying blob 46017765526c done
Copying blob 280386098458 done
Copying blob f32eb0d8c540 done
Copying blob 5c47b9ea747a done
Copying blob ecda5b7aad12 done
Copying blob 84256a6b6b44 done
Copying blob 35d4f385efb7 done
Copying blob bf697c2ae701 done
Copying blob d054b015f084 done
Copying config 1b1624b634 done
Writing manifest to image destination
Storing signatures
1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600aa
$ sudo podman pull docker.io/mysql:latest
Trying to pull docker.io/mysql:latest...Getting image source signatures
Copying blob ca9d72777f90 done
Copying blob 6ddae009e760 done
Copying blob 2d7aad6cb96e done
Copying blob 804555ee0376 done
Copying blob 8d6ca35c7908 done
Copying blob c53bab458734 done
Copying blob 327ae67bbe7b done
Copying blob 0e26af624120 done
Copying blob 5e70feb9365d done
Copying blob f5595dde544e done
Copying blob 87399808d2ba done
Copying blob 7312ab6d79b5 done
Copying config ed1ffcb5ef done
Writing manifest to image destination
Storing signatures
ed1ffcb5eff39aed723a66ee895854a6417485f85629de7ba87610beb6bf39ed
無事Pullが成功。実際には途中でNetwork Resetが発生する事態に遭遇し、何度かPullをリトライしている。
$ sudo podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/nginx latest c7460dfcab50 2 days ago 130 MB
docker.io/library/wordpress 5.3.2 1b1624b63467 2 weeks ago 552 MB
docker.io/library/mysql latest ed1ffcb5eff3 2 weeks ago 461 MB
docker.io/library/hello-world latest fce289e99eb9 12 months ago 6.14 kB
$ sudo podman pull docker.io/mariadb:latest
まずはsqlをrunさせてみる。
$ sudo podman run --name mysite_db -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=mysite -d mysql docker.io/mysql
f30a28a0e117c0f4dba2bc4e1838014ac5a64f666ade8360272d1939cb9431e4
run成功。
ここで問題に遭遇。mysqlコンテナと同じネットワークにWordPressコンテナを配置するために--linkオプションを指定したところ、、、
$ sudo podman run --name mysite --link mysite_db:mysql -p 80:80 -e WORDPRESS_DB_PASSWORD=password -d wordpress docker.io/wordpress
Error: unknown flag: --link
linkオプションはサポートしていないとの返答。Dockerの資料を調べてみるとlinkオプションはレガシーで、代替にnetworkコマンドを使うとのアドバイスがネット上に幾つか載っていた。そこでpodman --helpを実行してみたがnetworkコマンドがない。
Redhatのホームページを見てみるとnetworkコマンドはサポートしていないとのこと。
第7章コンテナのコマンドライン参照
複数のコンテナを同一ネットワークに配置するにはどうすればよいのだろう???
Google Mapを投稿に埋め込む際にちょっと手間取ったのでメモ。
まず地図として埋め込みたい対象を選択。ここでは相模原公園グリーンハウスをターゲットに設定。
ダイアログ上の”地図を埋め込む”をクリック。その下左の中をプルダウンすると地図の大きさを選択できる。右側の”HTMLをコピー”クリックするとHTMLがクリップボードにコピーされる。
WordPressに戻って投稿を実行。ブロックとして段落などを選んで、とりあえずスペースを入力するとメニューが出てくる。この右端をクリックするとプルダウンメニューが表示される。ここでHTMLとして編集を選ぶ。これをしないと、先ほどクリップボードにコピーしたHTMLがここにペーストできなかった。
すると以下のpタグが表示される。このpタグをクリップボードにコピーしたHTMLをペーストする。
以下の感じになる。
このブロックからカーソルを移動させる(このブロックの編集を完了させる)と以下のダイアログが表示されるので、”HTMLに変換”ボタンをクリックする。
するとメニュー上の”HTML”がハイライトされる。
以上で完了。なんだか本当は正しい操作方法がありそうな気がするけれども、とりあえずこれで作業続行。
そんなに統計情報を使っているわけでは無いけれども、やっぱりココログのアクセス解析情報のような統計情報取得がWordPressでも出来ればうれしい。そんなわけで、Jetpackプラグインをインストールしてみた。
プラグインリストでJetpackを見てみると、今使っているWordPressバージョンはサポートしないと言っている。なのでまずはWordPressを最新版に更新。更新ボタンを押すと自動で完了し、最新版の5.3.2で立ち上がってきた。
Jetpackプラグインのインストールを行うと以下のページが表示された。早速”Jetpackを設定”ボタンをクリック。
これって有料なの?って思って画面スクロールしたら”無料プランでスタート”ボタンがる。これをクリック。
以下が表示されてた。”これが新しいWordPress.comのダッシュボードです。”とな?
”続ける”ボタンをクリックすると、ダッシュボードが新しくなっている。想定外でちょっとびっくり。
画面をスクロールすると無料ブランの機能がリストされている。とりあえずアクテビティは取得できるようだ。
統計情報を見るとそれらしきグラフが表示されている。インストールしたばかりで統計情報が蓄積されていないので、評価は今後のおたのしみ。
ちなみに画面左のメニューの一番下に”WordPress管理画面を表示”がある。これをクリックすると見慣れたダッシュボードに戻れた。
早速手持ちのWindows10、iPad、iPhone、Androidからアクセスしてみた。表示数宇はカウントアップされるけれどサイト訪問者は1のまま。一体なにを見て訪問者を識別しているのだろう。
WordPressのFlyMagにてウェブページの実験的作成を実施中。
投稿を繰り返してくると使い方には慣れてくるものの、だからどうなんだ?って感じもある。とりあえず自分が撮りためた写真を投稿しているが、軸がないとだんだんボヤけてくる気もする。写真を主に置いているからコメントが乏しいけれど、かと言って無理にいろいろ書いても返って鬱陶しいし面倒くさい。
情報量を増やそうと思うと、このブログで書いているように操作記録や作成記録のように自分自身の備忘録となるものが書きやすいし、後から見たくもなる。
仮に不特定多数の人に見てもらうとするのならば、頻繁な更新(ニュースサイトのように)を行うか、または人を引き付ける魅力を備えるか、役に立つ情報を提供するか(食べログのように)が必要なんだろうと思う。
まぁ、そうは言っても自分は掲載する素材として撮りためた写真があるから、当面はそれをアップしていくことで運用を考えてみるのもよいだろうとは思う。なかなか難しいね。
ホームページに画像を張り付ける際、アイキャッチ画像を設定している。このアイキャッチ画像はカルーセルでの表示や投稿の一覧表示で使用している。
そのアイキャッチ画像は450x300がFlyMagではよい感じ。では、その画像をどうやって作るか。私は、元画像(横:4096がメイン)から、450x300部分だけを部分的に切り取る方法を選んでみた。選ぶ箇所は基本的にピントを合わせている場所を想定。
フリーソフトで使えそうなものがないか探してみたところ、以下のpictcutterが良いみたい。
予め切り出しサイズを設定しておいて、対象画像ファイルをドラッグ&ドロップする。すると、その切り出しサイズ枠が元画像に現れる。この枠を画像上でドラッグして切り出し場所を決定。枠内保存ボタンをクリックすると、選択したファイル名末尾ルールに沿って切り出し画像が保存される。あっという間に切り出し作業完了。
他のツールは試していないけれども、このツールはとても作業効率が良い。
本日新たなドメインを取得。目的は自分のWebを開設するため。
すでにこのブログのための独自ドメインは持っているものの、このブログサービスの公開用に使用している。ちなみにこのブログはNiftyのブログサービスを利用している。つまり、自分のWebサーバーを持っているわけではない。
このブログはこのドメインのまま残しておきたいので、レンタルサーバーとセットで取得した。
レンタルサーバーとドメイン取得は12月22日に書いたWordPressでも紹介した”できるWordPress”に載っていたLoliPopとMuuMuu Domainを利用。LoliPopはWordPressインストールサービスを前面に出したレンタルサーバーサイトになっている。
まずはLoliPopで無料10日間お試しでサーバーを取得した。初期ドメインを設定する。以下の例ではドメイン名がcheap.jpになっている。流石にこれは嬉しくないが、設定後にドメイン変更ができるので(ただし1回だけ)、この場は何とか許せる。
ユーザー登録が終われば以下のメニューが利用可能となる。WordPressをインストールをクリックすれば、WordPressにログオンするアカウント情報を入れるだけでWordPressがインストールされるので便利だ。
ここで独自ドメインを設定するをクリックするとMuuMuu Domainに飛ぶ。
欲しいドメイン名を入れると、.com、.net等で取得可能な組み合わせが表示される。既に誰かに取得されていると”取得できません”と表示される。自分の欲しいドメイン名を選ぶと、利用者情報とともに決済情報の設定画面に移り、すべて設定で取得完了となる。
ここで設定する公開フォルダーにWordPressがインストールされる。LolipopのドメインにインストールされるWordPressとは別インストールとなるので要注意というか、それぞれのドメインにWordPressがインストールされる。空白にするとLoliPopドメインの公開フォルダーが独自ドメインの公開フォルダーとなる。WordPressはインストールしなくてもLoliPopドメインにインストールしたWordPressが動く(みたいだ)が、当然のことながらWordPressページ上の各リンクはLoliPopドメインのリンクになっているので、独自ドメインでのアクセスではなくなる。
SSLが有効化された後は独自ドメインのWordPressアクセスがhttpsで行うことが出来る。
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |