変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

Docker

Docker を使えばバカみたいに簡単になる。
と誰かが云っていたのを観たが・・・
実際に使ってみると、Dockerの環境依存度は半端ない。
Dockerが起動するのは1プロセスなのでsendmail も httpd も サービスと云えるものは何も動いていない。
プロセスのスプーラーを用意するのが常套手段の様だが・・・それは大甘。どうしても消えないプロセスが出たら、ホストをrebootするしかない。これは怖い。
さらにCentOS7になって service や chkconfig が systemctl になっただけでも、さっぱり動かない。
と云う日記を観た。
しかし、centos:centos7 のイメージを使うと hostname すら動かない。
強いて言えば、LXCの頃は、
何度何度もインストし。絶対大丈夫と確信した手順が手に入った後にスクリプトを作っていたのだろう。
で、あれば対話モードで
RUN sudo  yum -y install  xxxxxxxxxxxxxxxxxxxxxx
RUN sudo  yum -y install  xxxxxxxxxxxxxxxxxxxxxx
RUN sudo  yum -y install  xxxxxxxxxxxxxxxxxxxxxx

で、イメージを作り、さらにひな形にして・・・していけば・・・
本当に「バカみたいに簡単になる。」様に思える。
しかし、全てを完璧に作り終え夢のような花畑が出来た後に・・・

「mcrypt 拡張をロードできません。PHP の設定を確認してください」

のようなアップデートが後付けでたった1つ挟まるだけで、夢のような花畑は全滅するのだ。
※なぜかCentOS6.6になっても直ってないっぽい。

それ以上に確実にたまにやって来る『セキュリティ・緊急パッチ』が一番の曲者。

全てがやり直しになる。※検証し直すという意味で・・・

例のBASHのアップデートも大抵は問題ないが使っていた機能を削られてたりしたら・・・(涙

単純にCentOSのインストーラーの後、ひたすらコマンドを撃ち続けるのは
滅多に無いけど、クリティカルなタイミングで下手なアップデートが混ざる確率は非常に高いので
変になっていないかどうか、人の目で確認するためなのだ。
そんな必要が無ければ、皆、長いシェル・スクリプトを流して済んでいる。
仮想化が必要な理由は、

  1. SSDの寿命は短いが、スピンドルを回しっぱなしのHDDの寿命もあっけない。
  2. 時間がかかりすぎ単調な手作業になるインストールはヒューマンエラーを引き起こしやすい。
  3. そもそも用意した手順が正しいとは誰も云えない。※去年は去年。今年は今年。

に尽きるので、Dockerの最大の功績は Core OS をリリースしていることだと思う。
これをホストにして、Git HUB から いけそうな奴を 片っ端から流して、出来が良かったものをコミットして残す。
というのが本来のやり方だろう。
つまり、Dockerが定着するかどうかは、今後のGit HUB の中身次第ということだ。
多分、LXCの二の前だろうと思う。そうそう良いものには巡り会えないのだから。
 
また、たくさんのWARファイルを飲ませ、サーバー・プロセスの起動時間が長くなってしまったJava系WEBアプリにはほとんどメリットが無いが、aufsのおかげで、ログやjavaキャッシュでゴミだらけになっているサーバーの中を綺麗に消すことができる。大したことではないように思えるが、壊れたキャッシュが挟まったWEBサーバーは再インストールする以外に手段ないのだ。デリゲーターのおかげで組み換えが便利になっている代償としてキャッシュの保存先がサーバーのあちこちに分散していることが多いのだ。ある意味、未来のDockerサーバーが同様な状況になっていないとは断言できない。
 
そして、出来上がったイメージが想定通りなのかどうか?
テストする手順は、完全に手探りでしかない。
 
【所感】
Dockerで作ったものをテストする全自動テスターNocker君が欲しい。



メール転送設定

ここでやっているのは
ブログの監視メールをパソコンで読める様にすること
rootのメールの転送先を登録

# vi /etc/aliases
root:       ****@***.*** な感じで
# newaliases

postfixの設定を若干変更

# vi /etc/postfix/main.cf
mydomain = **ドメイン名**
 myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
 inet_interfaces = all
 home_mailbox = Maildir/
 message_size_limit = 10485760
に変更
# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod -R 700 /etc/skel/Maildir/

rootのメールを転送するアカウントを作成

# adduser  *********
# passwd   *********
ユーザー ********* のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

postfix再起動

# systemctl restart postfix

dobecotをインスト

# yum -y install dovecot
# cd /etc/dovecot/conf.d/
# vi 10-mail.conf
mail_location = maildir:~/Maildir
に変更
# vi 10-auth.conf
disable_plaintext_auth = no
に変更
# systemctl start dovecot
# systemctl enable dovecot

ファイアーウォールの設定を変更 smtp pop3 imap

# firewall-cmd –state
running
# firewall-cmd –list-services
dhcpv6-client http ssh
# firewall-cmd –add-service=smtp –permanent
# firewall-cmd –add-port=110/tcp  –permanent
# firewall-cmd –add-port=143/tcp  –permanent
# firewall-cmd –reload
success
# firewall-cmd –list-services
dhcpv6-client http smtp ssh
# firewall-cmd –list-ports
110/tcp 143/tcp

テスト

# echo test | mail root

※cyrus saslがsaslpasswd でアカウントとパスワードを登録しないと認証しなくなっていたらしいので、cyrus saslのインストと/etc/postfix/main.cfに

smtpd_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination

の設定は最初のインスト時は見送ったが、後で追加してみたら、支障なかった。

# yum -y install cyrus-sasl
パッケージ cyrus-sasl-2.1.26-17.el7.x86_64 はインストール済みか最新バージョンです
何もしません
# systemctl start saslauthd
# systemctl enable saslauthd
ln -s '/usr/lib/systemd/system/saslauthd.service' '/etc/systemd/system/multi-user.target.wants/saslauthd.service

 
しかし、インストの手順が重要なのかもしれない。



ntfsのSSDをマウント

exFATの方がいいらしけど、まだCentOS7は未対応らしいので、NTFSでSSDをマウント・・・
できなかったので、rpmforgeリポジトリーからntfsprogsパッケージを追加
※RPMforgは 2016年7月20日頃から使用不可
# yum install ntfsprogs
# dmesg で観ると・・・
[ 4123.496919]  sdb: sdb1 sdb2 sdb3 sdb4
候補4つ

# mount -t ntfs /dev/sdb1 /mnt
# ls -l

Recovery  System Volume Information

多分違う。

# mount -t ntfs /dev/sdb2 /mnt

NTFS signature is missing.
Failed to mount ‘/dev/sdb2’: 無効な引数です
The device ‘/dev/sdb2’ doesn’t seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

多分違う。

# mount -t ntfs /dev/sdb3 /mnt

NTFS signature is missing.
Failed to mount ‘/dev/sdb3’: 無効な引数です
The device ‘/dev/sdb3’ doesn’t seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

多分違う。

# mount -t ntfs /dev/sdb4 /mnt
# ls -l /mnt

合計 0
drwxrwxrwx 1 root root 0 11月  3 07:37 System Volume Information

正解らしい。
# umount /mnt
# mkdir /mnt/usbSSD
# mount -t ntfs /dev/sdb4 /mnt/usbSSD
# df -H
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    41G   32G  8.3G   80% /
devtmpfs                  1.7G     0  1.7G    0% /dev
tmpfs                     1.8G  4.1k  1.8G    1% /dev/shm
tmpfs                     1.8G  9.0M  1.7G    1% /run
tmpfs                     1.8G     0  1.8G    0% /sys/fs/cgroup
/dev/sda2                 521M  126M  396M   25% /boot
/dev/sda1                 210M   10M  200M    5% /boot/efi
/dev/mapper/centos-home    20G   34M   20G    1% /home
/dev/sdb4                  64G  102M   64G    1% /mnt/usbSSD
# umount /mnt
# mount -t ntfs -o umask=0666 /dev/sdb4 /mnt/usbSSD
# mount
・・・
/dev/sdb4 on /mnt/usbSSD type fuseblk (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)
# vi /etc/ftab
/dev/sdb4               /mnt/usbSSD             ntfs    umask=0666      1 1
これで何とか・・・

あ、ファイルが全部root権限!

fdiskでパーテーションを作り直し、mkfs でext3にフォーマットしなおしてfstabも書き換えて・・・
chmod 0777
chown qemu.qemu
してやっと virsh start Windows してくれました。
 
何と云ってもこのnucで、Windows10とCentOS7(このブログ)を両方同時に動くのが凄いですね。
ゲームPCもCentOS7ベースのKVMでマルチできないかな? (笑
 



【失敗】 CentOS7でKVM(仮想化)Windoesのゲストを作る

※成功例のページはココ
# vi create_kvm_windows_guest.sh

# 元ネタ http://www.server-world.info/query?os=CentOS_6&p=kvm&f=8
#ISOイメージのパス指定
ISOIMG=/tmp/9841.0.140912-1613.FBL_RELEASE_CLIENTENTERPRISE_VOL_X64FRE_EN-US.ISO
#KVM上での名前を指定
  # KVM DOMAIN NAME
  IMAGE_NAME=Win10
  # VIRTUAL DISK FILEPATH
  IMG_PATH=/var/lib/libvirt/images
  # SPICE CLIENT PASSWORD
  PASSWORD=password
  # USE MEMORY SIZE (MB)
  RAM=3096
  # VIRTUAL DISK SIZE (GB)
  DISK=15
virt-install \
  --name ${IMAGE_NAME} \
  --ram ${RAM} \
  --disk path=${IMG_PATH}/${IMAGE_NAME}.qcow2,size=${DISK},format=qcow2 \
  --vcpus=1 \
  --os-type windows \
  --os-variant=win2k8 \
  --network bridge=br0 \
  --graphics spice,port=5900,listen=0.0.0.0,password=${PASSWORD} \
  --video qxl \
  --cdrom ${ISOIMG}
※nucの容量上の問題からメモリやボリュームの量はかなり少な目にしています。
port=5900を指定するとTLS指定になってしまうらしいので ハズした。

portを指定する場合は /etc/libvirt/qemu.conf の
  • spice_listen = “0.0.0.0”
  • spice_tls = 1
  • spice_tls_x509_cert_dir = “/etc/pki/libvirt-spice”

のコメントを解除し、かつ電子署名を作成しないといけないだろう。

# ./create_kvm_windows_guest.sh
ISOイメージファイルはkvmからのアクセス制限のため /tmpに配置。
SPICEにポート:5900  パスワードはpasswordで接続でき、インストまでは進んだけど・・・
ディスクの空き容量が15GBしかなかったので頓挫しそうになった。
インスト終わった時点で8GBにまで増えた。
と云う訳で古いSSDを用意。
・・・
[ 3083.007029] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[ 3083.022819]  sdb: sdb1 sdb2 sdb3 sdb4
[ 3083.027416] sd 6:0:0:0: [sdb] No Caching mode page found
[ 3083.027478] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[ 3083.027536] sd 6:0:0:0: [sdb] Attached SCSI disk
しかしexFATもNTFSでもroot権限になってしまうので、ext3にフォーマットしなおさないとダメだった。
ps.
書かなかったので自分で引っかかってしまった。
firewall-cmdが有効なら、

firewall-cmd –zone=public –add-port=5900/tcp
※ Windowsが安定したら --permanent を付けた方がいい。再起動したら設定が消えるから・・・

iptablesが有効なら、EJECTの前に
-A INPUT -p tcp -m tcp –dport 5900-j ACCEPT
を事前に登録すること。 orz
そして、操作が遅くリブートしてしまったらCD-ROMが認識できないしBIOS画面も開かず
NO BOOTABLE DEVICE
と表示されるだけなので、
以下の方法で残骸を消す。
virsh destroy Win10
virsh undefine Win10
rm /var/lib/libvirt/images/Win10.qcow2
そして、ゲストを作り直す。
やっと間に合ったと思ったら、ブルースクリーン【終了】。
今回のプレビューはJ1900だとダメなのかな?割り当てたDISK:13GBとRAM:2GBでは足りなかったかな?


CentOS7のKVM(仮想化)のCentOS7ゲストの雛型からブログ・サーバを作る

  1. ひな形からブログ鯖のゲストOSを作成
  2. ゲストを複製
    1. # virt-clone -o CentOS7.0 -n *ブログ鯖* -f /var/lib/libvirt/images/*ブログ鯖*.qcow2
      • 割り当て中 *ブログ鯖*.qcow2′ | 20 GB 00:31
      • *ブログ鯖*‘のクローニングに成功しました。
  3. クローン(複製)なのでユニークなハズのUUID、MACアドレス、マシン名までひな形と同じでは都合が悪すぎるのでオフライン(virt-edit)で書き換える
    1. 作成したゲストのMACアドレス確認
      1. # virsh domiflist *ブログ鯖*
        • インターフェース 種類 ソース モデル MAC
        • ——————————————————-
        • – bridge br0 virtio *MACアドレス*
  4. UUID生成
    1. # uuidgen
      • *****-**-*UUID*-**-******
  5. 作成したゲストのネットワークを設定
    1. # virt-edit -d *ブログ鯖* /etc/sysconfig/network-scripts/ifcfg-eth0
      • UUID=*****-**-*UUID*-**-******
      • HWADDR=”*MACアドレス*
  6. 作成したゲストのUDEV設定(MACアドレス変更)
    1. ※無かったけど環境次第かもしれない
      • # virt-edit -d *ブログ鯖* /etc/udev/rules.d/70-persistent-net.rules
        • SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”*MACアドレス*“, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
  7. ホスト名変更
    1. 作成したゲストのホスト名設定
    2. # virt-edit -d *ブログ鯖* /etc/hostname
      • *ホスト名*
    3. 作成したゲストを起動
      1. # virsh start *ブログ鯖*
      2. ドメイン *ブログ鯖* が起動されました
    4. ルータで*MACアドレス*192.168.*.*が割り当てられていた。
  8. ひな形のMACアドレスが残っていないか確認。
    1. grep *MACアドレス* -r
    2. /etc /lib にはなかった
  9. スナップショット作成
    1. # virsh snapshot-create-as *ブログ鯖* *スナップショット名* ”*コメント*
      • ドメインのスナップショット LAMP が作成されました
  10. LAMP(Apache+MariaDB(MySQL)+PHP)をインストールする
  11. phpをインストールする。 ※元ネタ http://server-setting.info/blog/lamp-wordpress-centos7.html
    1. # yum -y install php-mysql php php-gd php-mbstring
    2. # php –version
      • PHP 5.4.16 (cli) (built: Oct 31 2014 12:59:36)
      • Copyright (c) 1997-2013 The PHP Group
      • Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
  12. mariadb(mysql)をインストールする。
    1. # yum -y install mariadb mariadb-server
    2. # mysql –version
      • mysql Ver 15.1 Distrib 5.5.37-MariaDB, for Linux (x86_64) using readline 5.1
  13. DB起動
  14. # systemctl list-units |grep mariadb
  15. # systemctl list-unit-files |grep mariadb
    • mariadb.service disabled
  16. # systemctl start mariadb.service
  17. # systemctl list-units |grep mariadb
    • mariadb.service
    • loaded active running MariaDB database server
  18. # systemctl list-unit-files |grep mariadb
    • mariadb.service disabled
  19. # systemctl enable mariadb.service
    • ln -s ‘/usr/lib/systemd/system/mariadb.service’ ‘/etc/systemd/system/multi-user.target.wants/mariadb.service’
  20. # systemctl list-unit-files |grep mariadb
    • mariadb.service enabled
  21. データベースのrootのパスワードを設定
    • # mysql_secure_installation
  22. ブログのDBとアカウントを作成 ※なぜかこの方法で作成したアカウントは不調なのでphpMyAdminから作り直し
    1. # mysql -u*管理ユーザー* -p*管理ユーザーのパスワード* -Dmysql < ブログ1用DB作成シェル.sql
    2. # mysql -u*管理ユーザー* -p*管理ユーザーのパスワード* -Dmysql < ブログ2用DB作成シェル.sql
      • DB作成シェル参考
        /* ユーザを新規に作成します。パスワードも設定します。 */
        insert into user set user=”*ブログのDBユーザ*“, password=password(“*ブログのDBユーザのパスワード*“), host=”localhost”;
        /* wordpress用にデータベースを作成します。 */
        create database *ブログのデータベース*;
        /* データベースにユーザが常にアクセスできるようにします。 */
        grant all on *ブログのDBユーザのパスワード*.* to *ブログのDBユーザ*;
        /* 最新に更新 */
        FLUSH PRIVILEGES;
  23. ブログのDBとアカウントを確認
    1. # mysql -uroot -p*rootのパスワード*
    2. # mysql -u*ブログ1用ユーザ* -p*ブログ1用ユーザのパスワード* -D*ブログ1用データベース*
    3. # mysql -u*ブログ2用ユーザ* -p*ブログ2用ユーザのパスワード* -D*ブログ2用データベース*
  24. Apacheをインストールする。
    1. # yum -y install httpd 済みだった
  25. Apacheの設定を変更
    1. # vi /etc/httpd/conf/httpd.conf
      • ServerName *実際のマシン名*
  26. Apacheの起動
    1. # systemctl start httpd.service
    2. # systemctl list-units |grep httpd
      • httpd.service
      • loaded active running The Apache HTTP Server
    3. # systemctl list-unit-files |grep httpd
      • httpd.service disabled
    4. # systemctl enable httpd.service
      • ln -s ‘/usr/lib/systemd/system/httpd.service’ ‘/etc/systemd/system/multi-user.target.wants/httpd.service’
    5. # systemctl list-unit-files |grep httpd
      • httpd.service enabled
  27. iptablesは使わずfirewallをそのまま使うのでファイアーウォール設定
    1. # firewall-cmd –state
      • running
    2. # firewall-cmd –list-services
      • dhcpv6-client ssh
    3. # firewall-cmd –add-service=http –permanent
      • success
    4. # firewall-cmd –list-services
      1. dhcpv6-client http ssh
  28. /var/wwwにブログのバックアップを展開
    1. /etc/httpd/conf.dにブログ1用マルチドメイン設定.confをコピー
    2. /etc/httpd/conf.dにブログ2用マルチドメイン設定.confをコピー
      • マルチドメイン設定参考
        • #NameVirtualHost *:80 ←1つめのマルチドメインのみ#を取る
          <VirtualHost *:80>
              ServerName        *ブログのURL*
              DocumentRoot    “ブログのWordPressの展開先フォルダのフルパス名
              <Directory “ブログのWordPressの展開先フォルダのフルパス名“>
                  Options Includes ExecCGI FollowSymLinks
                  AllowOverride All
                  Order allow,deny
                  Allow from all
              </Directory>
              ErrorLog logs/ブログのエラ-ログ*
              CustomLog logs/*ブログのアクセスログ* combined env=!no_log
          </VirtualHost>
  29. 再起動
    1. # systemctl restart httpd
  30. とりあえずwordpressの設定画面 適当にインストしてテーブルを作る。
  31. phpmyadminをインスト
    1. # yum –enablerepo=epel install -y phpMyAdmin php-mysql php-mcrypt
    2. PC(Windows)からphpMyAdminを使える様に変更
    3. # vi /etc/httpd/conf.d/phpMyAdmin.conf
      • Require ip 127.0.0.1 *PCのIPアドレス*
      • Require ip ::1
  32.  PHPのアップデートサイズを拡張
    1. # vi php.ini
      • post_max_size = 8M ⇒ 16M
      • upload_max_filesize = 2M ⇒ 16M
    2. # systemctl restart httpd
  33. phpmyadminからDBのバックアップをリストアする。
    1. ブラウザ(http://192.168.*.*/phpmyadmin/index.php)からDBバックアップファイルをアップロードしリストア
  34. バックアップ中に白画面になったら・・・処理時間を大幅に拡張
    1. # vi /usr/share/phpMyAdmin/libraries/config.default.php
      • $cfg[‘ExecTimeLimit’] = 300; ⇒ 3600;
  35. WordPressからバックアップファイル付きのメールがうまく送信できない場合は、ブログのURLに対応するように内部?IPアドレスをhostsに追記
    1. # vi /etc/hosts
      • *.*.*.* ブログ1URL
      • *.*.*.* ブログ2URL
  36. クライアント側をシャットダウンし、ゲスト側からブログのスナップショットを作成 ※動作中でも可能だけど、非常に重い。
    1. # virsh snapshot-create-as *ブログ鯖* *スナップ名* “**コメント**”
  37. KVMホスト起動時に一緒に起動させる場合
    1. virsh autostart *ブログ鯖*


CentOS7でKVM(仮想化)のCentOS7ゲストのひな形を作る

  1. CentOS7ネットワークインストールする方法でクライアントを作成する
  2. qcow2形式のイメージファイルを使いファイルサイズを使った分だけにする
  3. ゲストOS作成シェルファイルを作る
    1. # vi create_kvm_centos7_guest.sh
      • # CentOS7のネットワークインストールのURL
      • REPOS=http://ftp.riken.jp/Linux/centos/7/os/x86_64/
      • # KVM上での名前
      • IMAGE_NAME=CentOS7.0
      • #virt-installでインストールする
      • virt-install \
          --name ${IMAGE_NAME} \
          --ram 1024 \
          --disk path=/var/lib/libvirt/images/${IMAGE_NAME}.qcow2,size=20,format=qcow2 \
          --vcpus=1 \
          --os-type linux \
          --os-variant=rhel7 \
          --nographics \
          --location="$REPOS" \
          --bridge=br0 \ ※追記 virbr0を削除しbr0で接続している場合
          --extra-args='console=tty0 console=ttyS0,115200n8 serial'
      • ※ディスク容量を20GBに指定するオプション(size=20, )が抜けていた。
  4. ゲストOS作成
    1. # sh ./create_kvm_centos7_guest.sh
    2. — nographicsでは都合が悪いらしく、
      途中で1:vncか2:テキスモードとか聞いてくるので1:vncを選択。
      パスワードは空。
    3. vncクライアントを起動し、
    4. VNC Server:に
      画面に表示されていたIP:画面番号(192.168.*.*:*)を入力して【Connect】ボタンを押す。
      普通にインストール再起動。ここでvnc終わり
    5. 再びコンソールモード
    6. ホストrootでログイン
      # ip addr

      • 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

        2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
        inet 192.168.*.*/24 brd 192.168.*.255 scope global dynamic eth0
    7. クライアント側をシャットダウン
      # shutdown -h now
    8. ホスト側からゲストを起動
      # virsh start CentOS7.0
  5. クライアント側に変わり
  6. 全般的な更新+α
    # yum -y update
    # yum -y install yum-cron
    # systemctl start yum-cron
    # systemctl enable yum-cron
  7. selinuxをオフ
    # setenforce 0
    # getenforce

    • Permitive
  8. # cd /etc/selinux
    # mv config config.org : cp config.org config
    # sudo sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
    # reboot
    # getenforce

    • Disabled ※うまくいかない場合はココ参照
  9. とりあえずツールの類一式
    • # yum -y groupinstall base “開発ツール”
  10. nkfをインスト
    • # wget “http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-2.1.3.tar.gz” -O nkf-2.1.3.tar.gz
    • # tar zxvf nkf-2.1.3.tar.gz
    • # cd nkf-2.1.3
    • # make && make install
    • # cd
    • # rm -rf nkf-2.1.3*
    • # ln -s /usr/local/bin/nkf /usr/bin/nkf
  11. chkrootkitインストール
    1. ※元ネタ: http://centossrv.com/chkrootkit.shtml
    2. #chkrootkitダウンロード
      1. # wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
      2. # tar zxvf chkrootkit.tar.gz
    3. chkrootkitを移動
      1. # mkdir -p ~/bin && mv chkrootkit-0.50/chkrootkit ~/bin
      2. # rm -rf chkrootkit*
      3. # chkrootkit | grep INFECTED
        • Searching for Suckit rootkit… Warning: /sbin/init INFECTED
    4. chkrootkit実行スクリプトを毎日自動実行されるディレクトリへ作成
    5. # vi /etc/cron.daily/chkrootkit
      • #!/bin/bash
      • PATH=/usr/bin:/bin:/root/bin
      • TMPLOG=`mktemp`
      • # chkrootkit実行
      • chkrootkit > $TMPLOG
      • # ログ出力
      • cat $TMPLOG | logger -t chkrootkit
      • # SMTPSのbindshell誤検知対応
      • if [ ! -z “$(grep 465 $TMPLOG)” ] && \
        • [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
      • sed -i ‘/465/d’ $TMPLOG
      • fi
      • # upstartパッケージ更新時のSuckit誤検知対応
      • if [ ! -z “$(grep Suckit $TMPLOG)” ] && \
        • [ -z $(rpm -V `rpm -qf /sbin/init`) ]; then
      • sed -i ‘/Suckit/d’ $TMPLOG
      • fi
      • # rootkit検知時のみroot宛メール送信
      • [ ! -z “$(grep INFECTED $TMPLOG)” ] && \
        • grep INFECTED $TMPLOG | mail -s “chkrootkit report in `hostname`” root
      • rm -f $TMPLOG
    6. # chmod 700 /etc/cron.daily/chkrootkit
  12. chkrootkitで使用する安全なコマンドの確保
    1. chkrootkit使用コマンド退避先ディレクトリ作成
      • # mkdir chkrootkitcmd
    2. chkrootkit使用コマンドを退避先ディレクトリへコピー
      • # cp `which –skip-alias awk cut echo egrep find head id ls netstat ps strings sed ssh uname` chkrootkitcmd/
    3. 試してみる
      1. # chkrootkit -p /root/chkrootkitcmd|grep INFECTED
        • Searching for Suckit rootkit… Warning: /sbin/init INFECTED
    4. 使ったコマンド圧縮して保存
      1. # zip -r chkrootkitcmd.zip chkrootkitcmd/
      2. # rm -rf chkrootkitcmd
    5. FTPでchkrootkitcmd.zipをバックアップし消す
      1. # rm -f chkrootkitcmd.zip
  13. yum-prioritiesプラグイン導入
    1. # yum -y install yum-plugin-priorities
    2. # vi /etc/yum.repos.d/CentOS-Base.repo
      • enabled=1
      • を追記
  14. RPMforgeリポジトリ導入 ← 2016年7月20日頃から使用不可
    1. # wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
    2. # rpm -ivh rpmforge-release-*.rpm
    3. # rm -f rpmforge-release-*.rpm
    4. # yum -y update rpmforge-release
  15. EPELリポジトリ導入
    1. # yum install epel-release
    2. # cd /etc/yum.repos.d
    3. # ls
    4. # vi epel.repo
      • enabled=1 -> enabled=0
    5. # yum –enablerepo=epel list
  16. Clam AntiVirusインストール
    1. # yum -y install clamd
    2. # chkconfig clamd on
    3. # sed -i ‘s/^Example/#Example/g’ /etc/freshclam.conf
    4. # freshclam
    5. # clamscan –infected –remove –recursive
  17. NTPサーバーインストール
    1. # yum -y install chrony ※不要
    2. # vi /etc/chrony.conf
      • server 0.centos.pool.ntp.org iburst
      • ・・・
      • server 3.centos.pool.ntp.org iburst
    3. ↓ 時刻同期先NTPサーバーを変更
      • # 日本標準時を提供しているNTPサーバー
      • server ntp.nict.jp iburst
      • # 上記サーバーと直接同期しているNTPサーバー
      • server ntp.jst.mfeed.ad.jp iburst
      • # プロバイダのNTPサーバー※無ければ設定不要
      • server プロバイダのNTPサーバー名 iburst
    4. 手動で時刻を補正(2回)
      1. # ntpdate ntp.nict.jp
      2. # ntpdate ntp.nict.jp
    5. サービスを登録
      1. # systemctl start chronyd
      2. # systemctl enable chronyd


CentOS7でKVM(仮想化)ホストを作る

※現在は微熱nucから平熱mini-ITx へ移行。ネット系の設定を大幅に簡素化。

  1. CentOS7( CentOS-7-x86_64-DVD-1503-01.iso )をダウンロード。
  2. Win32DiskImagerでUSBメモリに書き込む。
  3. nucにUSBメモリを挿し電源ON、【F2】でUEFIを呼び出しUSBメモリから起動。
  4. ブート画面でInstall CentOS 7を選択。
  5. インストーラー画面での設定
    1. WELCOM TO CENTOS7 画面
      1. 左のリストから【日本語】を選択。 ※スライダーが中央にくるあたり。
      2. 【続行】ボタンを押す。
    2. ネットワークとホスト名を選択。
      1. 画面右上のオフ⇒オン
      2. ハードウェアアドレスをメモる。
      3. eno1 ※nucの有線LANのインタフェース名、CentOS6までのeth0だった
        1. 表示されたIP(192.168.*.*)をメモる。
        2. 全般:この接続が利用可能になった時に自動的に接続するにチェック。
        3. IPv6のセッティング:方式 無視を選択
      4. wlp2s0 ※無線LANのインタフェース名、CentOS6までのwlan0だった
        1. ネットワーク名は未入力。
        2. ▼を押し無線ルータSSIDを選択しパス入力、接続できればIPアドレスが表示される
        3. 表示されたIP(192.168.*.*)をメモる。
        4. IPv6のセッティング:方式 無視を選択
      5. 【保存】ボタンを押す。
      6. 画面左下:local.host.local になっているホスト名を正しい名前に変える。
      7. 【完了】を押す。
    3. ソフトウェア の インストールソース に【!】が付いていたら、選択。
      1. http://の後に ftp.riken.jp/Linux/centos/7/os/x86_64/ と入力し【完了】
      2. 入力が正しければ先の【!】にURLが表記。
    4.  システム の インストール先に【!】が付いていたら、選択。
      1. HDDの絵に【!】を付け、空容量が十分なら、画面左上の【完了】を押す。
      2. 空容量は足りないが、HDDを全部書き換えていいのなら
        1. 【領域を確保する(R)】ボタンを押す。
        2. 【すべて削除】ボタンを押し、アクションの列が保存から削除に変わったのを確認。
        3. 【領域を確保する(R)】ボタンを押す。
        4. ●パーテーション構成を行いたい を選択し、【完了】を押す。
        5. 既存LMの名前を選択し「-」を押し、一旦パーテーションを全消。
        6. 自動のリンクを押し、パーテーションを作り直し。
    5. ソフトウェアの選択が 未選択なら、選択。
      1. 最小構成にチェックが入っていることを確認し、【完了】を押す。
    6. KDUMPが 無効 になっていたら、選択。
      1. 手動を選択し、【完了】を押す。
    7. 【インストールを開始】を押す。
    8. インスト中に
      1. rootのパスワードを設定  安易なパスワードの場合は【完了】ボタンを2度押して抜ける。
      2. ユーザを作成        システムのメールを受け取るユーザを作っておく。
    9. ・・・インスト・・・
    10. 【再起動】ボタンを押し、その前にUSBメモリは外す。
  6. yumリポジトリィを更新
    1. # yum -y update
  7. yum-cronをインスト
    1. # yum -y install yum-cron
    2. # systemctl start yum-cron
    3. # systemctl enable yum-cron
  8. SeLinuxを外す
    1. # setenforce 0
    2. # getenforce
      • Permissive
    3. # sudo sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
      • /etc/sysconfig/selinuxのリンク先/etc/selinux/configを修正する。
    4. # reboot
    5. # getenforce
      • Disabled になっていないなら上の3.のコマンドを見直すこと。
  9. 開発ツールなどをまとめてインスト
    1. # yum -y groupinstall base “開発ツール”
      • パッケージ:222個
  10. nkfをインスト
    1. # cd
    2. # wget “http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-2.1.3.tar.gz” -O nkf-2.1.3.tar.gz
      • # wget “https://ja.osdn.net/projects/nkf/downloads/64158/nkf-2.1.4.tar.gz” -O nkf-2.1.4.tar.gz
    3. # tar zxvf nkf-2.1.3.tar.gz
      • # tar zxvf nkf-2.1.4.tar.gz
    4. # cd nkf-2.1.3
      1. # cd nkf-2.1.4
    5. # make && make install
      • mkdir: ディレクトリ `/usr/local/bin’ を作成できません: ファイルが存在します は見なかったことにする
    6. # cd
    7. # rm -rf nkf*
    8. # ln -s /usr/local/bin/nkf /usr/bin/nkf
  11. rootのメールを転送
    1. # echo “root: ******” >> /etc/aliases
    2. # newaliases
    3. # echo “aliases test” | mail root
  12. ブリッジ接続用のファイルを作成 ※参考程度環境依存高め(起動時にFAIL発生)
    • # vi /etc/sysconfig/network-scripts/ifcfg-br0 ※新規に作成する
    • 当初の設定(DHCPでやってみた)
      • DEVICE=br0
        TYPE=Bridge
        BOOTPROTO=dhcp
        DEFROUTE=yes
        IPV4_FAILURE_FATAL=no
        IPV6INIT=no
        ONBOOT=yes
        PEERDNS=yes
        PEERROUTES=yes
    • 現在の設定(DHCPを諦めた)
      • DEVICE=br0
        TYPE=Bridge
        DEFROUTE=yes
        IPV4_FAILURE_FATAL=no
        IPV6INIT=no
        ONBOOT=yes
        PEERDNS=yes
        PEERROUTES=yes
        NM_CONTROLLED=no
        DELAY=0
        BOOTPROTO=static
        IPADDR=*.*.*.* *1
        NETMASK=255.255.255.0
        GATEWAY=*.*.*.* *2
        DNS1=*.*.*.* *2
      • *1 *2 大抵はルータのIPアドレス。192.168.1.1であることが多い。
      • *2   *1    ルータがDHCPで割り当てたものをそのまま流用。
  13. eno1をブリッジ接続に変える ※参考程度環境依存高め
    • vi /etc/sysconfig/network-scripts/ifcfg-eno1 *3 既存のものを修正
    • 当初の設定(DHCPでやってみた)
      • DEVICE=eno1 *3
        TYPE=Ethernet
        ONBOOT=yes
        BRIDGE=br0
    • 現在の設定(DHCPを諦めた)
      • DEVICE=eno1 *3
        TYPE=Ethernet
        ONBOOT=yes
        BRIDGE=br0
        HWADDR=*:*:*:*:*:* *4
        BOOTPROTO=none
        NM_CONTROLLED=no
      • *3 ip a で表示されたネットデバイス名を設定する。2番目の eno1 や enp3s0。
      • *4 ip aコマンドで、br0のlink/etherに表示されたものを設定。
  14. NetworkManagerは ブリッジ接続に対応していないようなので外す
    1. # systemctl stop NetworkManager
    2. # systemctl disable NetworkManager
    3. # systemctl restart network
      • Job for network.service failed. See ‘systemctl status network.service’ and ‘journalctl -xn’ for details.
      • ここでハングアップ※何か変!(未解決)
    4. # reboot
    5. 電源ボタンでリブート。
    6. とりあえず、/etc/sysconfig/network-scriptsで、おまじない。 ifup br0  とか ifup   *3のデバイス名
  15. なかなかつながらないのでコンソールからログインするとTeraTermからログインできた ※何か変!(未解決)
    1. # systemctl -l status network で確認するとまだ問題が残っているかもしれない。
      • [root@slanirish ~]# systemctl -l status network
        ● network.service – LSB: Bring up/down networking
        Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
        Active: active (running) since 水 2018-08-01 00:52:18 JST; 4min 21s ago
        Docs: man:systemd-sysv-generator(8)
        Process: 757 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)
        CGroup: /system.slice/network.service
        mq1089 /sbin/dhclient -1 -q -lf /var/lib/dhclient/dhclient-acfc891e-d71c-4bb6-a394-b9ea39267c87-enp3s0.lease -pf /var/run/dhclient-enp3s0.pid -H slanirish enp3s08月 01 00:52:08 slanirish.warlander.local network[757]: ループバックインターフェイスを呼び込み中 [ OK ]
        8月 01 00:52:08 slanirish.warlander.local network[757]: インターフェース enp3s0 を活性化中: [ OK ]
        8月 01 00:52:08 slanirish.warlander.local network[757]: インターフェース enp3s0.org を活性化中:
        8月 01 00:52:11 slanirish.warlander.local dhclient[1036]: DHCPREQUEST on enp3s0 to 255.255.255.255 port 67 (xid=0x374e4cd8)
        8月 01 00:52:11 slanirish.warlander.local dhclient[1036]: DHCPACK from 192.168.1.1 (xid=0x374e4cd8)
        8月 01 00:52:13 slanirish.warlander.local dhclient[1036]: bound to 192.168.1.11 — renewal in 6231 seconds.
        8月 01 00:52:13 slanirish.warlander.local network[757]: enp3s0 のIP情報を検出中… 完了。
        8月 01 00:52:14 slanirish.warlander.local network[757]: [ OK ]
        8月 01 00:52:18 slanirish.warlander.local network[757]: インターフェース br0 を活性化中: [ OK ]
        8月 01 00:52:18 slanirish.warlander.local systemd[1]: Started LSB: Bring up/down networking.
    2. IPアドレスを確認
      1. # ip addr
        • 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
        • link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        • inet 127.0.0.1/8 scope host lo
        • valid_lft forever preferred_lft forever
        • inet6 ::1/128 scope host
        • valid_lft forever preferred_lft forever
        • 2: wlp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
        • link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
        • 3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
        • link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
        • inet6 fe80::**:**:**:**/64 scope link
        • valid_lft forever preferred_lft forever
        • 4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
        • link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
        • inet 192.168.*.*/24 brd 192.168.*.255 scope global dynamic br0
        • valid_lft 14317sec preferred_lft 14317sec
        • inet6 **:**:**:**:**:**:**:**/64 scope global dynamic
        • valid_lft 14318sec preferred_lft 12518sec
        • inet6 **:**:**:**:**/64 scope link
        • valid_lft forever preferred_lft forever
  16. 仮想化パッケージ一式 インスト
    • # yum -y groupinstall “Virtualization” “Virtualization Client” “Virtualization Platform” “Virtualization Tools”
      • パッケージ:221個
    • # yum -y install ‘*guestf*’
      • パッケージ:54個
  17. 仮想化ゲスト用に設定
    1. # cd /etc/sysconfig
    2. # vi libvirt-guests
      • ON_SHUTDOWN=shutdown
        • #ON_SHUTDOWN=suspend を有効化すると、DBなどファイルが壊れやすいみたいだ。
      • SHUTDOWN_TIMEOUT=300
      • を設定し、サービスを再起動
    3. # systemctl start libvirtd
    4. # systemctl enable libvirtd
  18. 仮想化ゲストのインスト時にQEMUからSPICEがTLSが未設定とか言い出す場合は、専用に電子証明書を作成(現在は動作不安定というか繋がらない)
    1. # cd
    2. 手打ちミス不可なのでスクリプトを作成
    3. # vi create_for_qemu_cr.sh
      • # 元ネタ http://www.spice-space.org/page/SSLConnection
      • #!/bin/bash
      • PASS_PHRASE=**電子署名のパスフレーズ**
      • echo “Enter pass phrase for ca-key.pem=> ${PASS_PHRASE}”
      • SERVER_KEY=server-key.pem
      • COUNTRY=**国(JP etc.)**
      • LOCALITY_NAME=**市町村名**
      • ORGANIZATION_NAME=**ドメイン名**
      • COMMON_NAME=**マシン名**
      • # creating a key for our ca
      • if [ ! -e ca-key.pem ]; then
        • openssl genrsa -des3 -out ca-key.pem 1024
      • fi
      • # creating a ca
      • if [ ! -e ca-cert.pem ]; then
        • openssl req -new -x509 -days 1095 -key ca-key.pem -out ca-cert.pem -utf8 -subj “/C=${COUNTRY}/L=${LOCALITY_NAME}/O=${ORGANIZATION_NAME}/CN=${COMMON_NAME}”
      • fi
      • # create server key
      • if [ ! -e $SERVER_KEY ]; then
        • openssl genrsa -out ${SERVER_KEY} 1024
      • fi
      • # create a certificate signing request (csr)
      • if [ ! -e server-key.csr ]; then
        • openssl req -new -key ${SERVER_KEY} -out server-key.csr -utf8 -subj “/C=${COUNTRY}/L=${LOCALITY_NAME}/O=${ORGANIZATION_NAME}/CN=${COMMON_NAME}”
      • fi
      • # signing our server certificate with this ca
      • if [ ! -e server-cert.pem ]; then
        • openssl x509 -req -days 1095 -in server-key.csr -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
      • fi
    4. # sh ./create_for_qemu_cr.sh
      • ※パスフレーズを3回入力した後にもう1回入力するので注意!
    5. # mkdir /etc/pki/libvirt-spice
  19. 出来上がった電子証明書(*.pemのみ)を/etc/pki/libvirt-spiceへコピー
  20. qemuの設定(現在は動作不安定というか繋がらない)
    1. # vi /etc/libvirt/qemu.conf で以下をコメントを解除
      • spice_listen = “0.0.0.0”
      • spice_tls = 1
      • spice_tls_x509_cert_dir = “/etc/pki/libvirt-spice”
  21. KVMを再起動
    1. # systemctl restart libvirtd
  22. 仮想化ゲストを作成
  23. yum-prioritiesプラグイン導入
    1. # yum -y install yum-plugin-priorities
    2. # vi /etc/yum.repos.d/CentOS-Base.repo
      • enabled=1
      • を追記
  24. RPMforgeリポジトリ導入 ← 2016年7月20日頃から使用不可
    1. # wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
    2. # rpm -ivh rpmforge-release-*.rpm
    3. # rm -f rpmforge-release-*.rpm
    4. # yum -y update rpmforge-release
  25. EPELリポジトリ導入
    1. # yum install epel-release
    2. # cd /etc/yum.repos.d
    3. # ls
    4. # vi epel.repo
      • enabled=1 -> enabled=0
    5. # yum –enablerepo=epel list

SSLの設定はやりなおすとうまく動作しなくなる傾向にある。
※現在はSPICEで接続に失敗中。
下記をじっくり読んでやる気が起きたら、やり直す予定。
参考 http://www.asahi-net.or.jp/~aa4t-nngk/kvm4.html



メジャーパッチをあててみた

FFXIVもメジャーパッチあたったし、
こっちもCentOS6から7にアップデ・・・orz
 
まず、yumのリポジトリィが一部がCentOS6のままだった。
コリジョンしまくり。
つまり、中身は正しいが、依存関係はゴチャ。もうダメダ~。orz
作り直し。
(数時間後)
CentOS7で、コマンドがすっかり変わっていた。
それでいて一部は未対応なのでchkconfigでやってね・・・とかメッセージが出たり、機能が微妙に困った方向に変わってたり・・・
(数日後)
やっと終わった。

  1. CentOS7でKVM(仮想化)ホストを作る。
  2. CentOS7のKVM(仮想化)ゲストのひな形を作る。
  3. ひな形のクローンから変奏現実とFFXIVのブログのKVM(仮想化)を作る。
  4. ルータから自宅鯖を繋ぐ。

現状でブログ・サーバーのイメージファイルは5GMちょっとなので、そのままバックアップを取っておくのも良さそう
イメージファイルと設定ファイルをバックアップしておく。
# vi kvmbkup.sh

date
HOST=$1
BACKUP_DIR=/bkup/kvm
KVM_IMG_DIR=/var/lib/libvirt/images
EXT=qcow2
virsh dumpxml ${HOST} >${BACKUP_DIR}/${HOST}.xml
cp -rp ${KVM_IMG_DIR}/${HOST}.${EXT}  ${BACKUP_DIR}/
date
echo COMPILE.

# ./kvmbkup.sh
※EXTがimgではなくqcom2なのは、virt-installでformat=qcow2 を指定しているせい。



SafeはSafe。FailはFail。

かつて側溝には蓋も柵も無かった。
危ないんだから近づくな。近づかないのだから、蓋も柵はいらない。この考えでは歩いている最中にヨロめいたら、側溝に落ちてしまう。
今では側溝の蓋は当然、歩道の脇が下り坂になっていれば柵が付いている。危ないから先に手を打っておくという考えだ。これをフェイル・セーフ(転ばぬ先の杖)という。
今は、付近の住人が十分気を付けた結果、事故が起きていないなら、柵も蓋も不要と云う考えだ。これを泥縄(泥棒を捕まえた後に泥棒の手を縛る縄を編むという逸話)という。
なぜ、そうなったのかと云えば、今まで散々無駄使いしたので、必要なところまで、予算が回って来なくなったせいだ。
さらに 泥縄=泥だらけの縄 というイメージから、そんなモノは使いたくないもの。そこから転じて、「泥縄=使い物ならないモノや考え」という風に意味も変わってしまっているようだ。
こうなると、日本語は難しい。
今のいろんなデジタルガシェットのUIは、そんな感じ。
3Dぽかったデザインをフラット風にしたのはクールだからではない、3Dぽいデザインのコントロール(あるいはビュー)は周囲にアニメーションするための十分な余白が必要だが、小さい画面ではその余白が十分とれないので、平坦なデザインの方がいっぱい詰め込めるのが一番の理由だと思う。
Windowsの様なマウス操作だったらカーソルが近づいてきたというイベントは処理が意外と簡単だが、スマフォは最初からタッチパッドでの操作ありきなのでこのイベント処理は面倒だ。勢いコントロールの近くに指を近づけけても無反応で、ロックを解除する時も省電力化のためタッチパットの反応が鈍く、とても操作をミスしやすくなっているから、ロック解除処理のみとなっているが、反応が鈍いので最初の1回目はロックの解除をミスりやすい。それでいて「緊急通信」のボタンは押しやすくしてあるから、放っておいたスマフォを何気に掴み上げると、「緊急通信モード」になってしまうことが多い。
なので、現実にはクールとはとても云えないシロモノになっている。
だから、指紋認証の様に記憶に頼らない簡単な操作でロックを解除できるデザインが一番いいのだ。i-phone5Sや6はよく考えられていると思う。
勿論、顔面認証や声紋認証でもいいのだが、何分CPUが寝ぼけているので、信頼性はひくいだろう。指紋認証なら何度か指をあてるのは、そう不愉快ではないが、登録した呪文を何度も唱えたり、周囲の照明を気にしながら、顔面を写しているのも滑稽だ。
だが世の中、ロック解除だけのために、指紋認証を付けることを許容しない。個人認証も兼ねてクレジット決済をしたり、色々と使い道を提案しなければならないことになったようだ。
 
それに周囲で大きな音や歓声が沸くとSiriが「だだだだ・大丈夫ですか?」を心配そうな声を出すのも、どうしたものか?無ければ無いで困るだろうし、Siriが誤爆するのも困る。仕方がないので、今は誤爆しそうな場面では指で電源をOFFするようにしている。Siriに「電源を切る」と頼むと「そうしたいのはヤマヤマデスができないのです」と答えてくれる。多分、近くの人の声を拾って勝手に電源が切れると困る場面もあるのだろう。
 
やはり、まだまだ、なようだ。
 
 
 



ADT

Androidの開発環境をWindowsで作るには

をダウンロードする。

  1. JDK8をデフォのままインストする。
  2. ADTのZIPファイルの中はパスが長いのでC:\あたりに展開する。
  3. C:\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702 とパスが長いままではいずれ困ることになるので、
    1. C:\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702の中身をC:\adt-bundle-windows-x86_64-20140702に移動し、
    2. C:\adt-bundle-windows-x86_64-20140702はC:\adt-bundleに名前の変更を変える。
  4. pleiades_1.5.0.zipを適当な場所で展開し
  5. readmeフォルダのpleiades.txtのインストール / アンインストールの通りに、pleiades_1.5.0.zipを展開した中身をADTのeclipseフォルダにコピーし全部上書きし、
  6. eclipse.ini の最終行に以下の記述を追加し、
    • -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
  7. キャッシュを作り直すためにeclipse.exe -clean.cmdで起動する。

とりあえず、これで使える様になる。
但し、このままではエミュレータがエラーもださず起動もしないことがある。
この場合は、\adt-bundle\adt-bundle\sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exeを実行して、Intel Hardware Accelerated Execution Manager(HAXM) をインストールする。
しかし、VT-xが無効なのでインストールできないと表示がでたら、素直にUEFI(またはBIOS)のVT-xが無効になっていないか確認する。有効だったら、VT-xが使用済みの可能性がある。残念なことにHyper-Vと干渉するようだ。
Hyper-Vを無効化すると無事インストールでき、エミュレータの画面にandroidと表示されるが、解像度をあげたりメモリを1GBにしたりすると、いつまでもandroidと表示されるだけ。最初は画面もメモリも少な目がいいらしい。
 
 
 
 
 
 
 




top