月別アーカイブ: 2017年5月

ng serveの起動オプション

Angularを少し触っておくかと思い開発機(CentOS)のVagrant上にインストール。
public network経由で作業端末(非力なWindows)からつなごうと思っても接続を拒否された。

このサイトにアクセスできません

192.168.1.108 で接続が拒否されました。
192 168 108 4200 を Google で検索してください
ERR_CONNECTION_REFUSED

pingは通るけど、開発機(Vagrantのホスト)からもcurlでつながらない。vagrantに入ってチェックするとlocalhostなら繋がる。

curl http://192.168.1.108:4200
curl: (7) Failed connect to 192.168.1.108:4200; 接続を拒否されました

[root@localhost log]# curl http://localhost:4200
<!doctype html>
<html>
<head>
 <meta charset="utf-8">
 <title>TestWeb</title>
 <base href="/">

 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
 <app-root>Loading...</app-root>
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>

ぐぐるとhostオプション付けないと、localhostしかlistenしないらしい

[root@localhost log]# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1201/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1719/master
tcp        0      0 127.0.0.1:4200          0.0.0.0:*               LISTEN      3792/@angular/cli

ng serve –host 192.168.1.108
としておいて確認

[root@localhost log]# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1201/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1719/master
tcp        0      0 192.168.1.108:4200      0.0.0.0:*               LISTEN      3827/@angular/cli

Local Addressに設定される。

調べる過程でSELinuxとFirewallとめた。

SELinuxは起動だけだとaudit.logに何もでていない。動作確認でハマりたくないのでpermissiveのまま時々auditみて確認ぐらいにしておく。

Firewallはportが空いていないので空けておく。(色々あける必要がでて面倒になったらFirewallとめたまま勉強する)

[vagrant@localhost ~]$ sudo firewall-cmd --list-ports --zone=public
(空欄)
[vagrant@localhost ~]$ sudo firewall-cmd --add-port=4200/tcp --zone=public --permanent
success
[vagrant@localhost ~]$ sudo firewall-cmd --reload
success
[vagrant@localhost ~]$ sudo firewall-cmd --list-ports --zone=public
4200/tcp

hostオプションのドキュメントはぱっとみ見つからなかったけど、いつものGoogleさんでドキュメントは無いものと考えたらいいのかな??

まだ動いてなかった

docker-machineでcreateしたdockerだけど、離席から帰ってきたら動いていなかった。

[yoshitake@localhost docker-repo]$ docker-machine ls
NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
testsv   -        generic      Stopped                                       Unknown

離席前にリモートのサーバrebootかけてたな。
いったんdocker-machine rmしてから作り直そうとしたけど繋がらなそう。
直に通常のssh接続しようとしても繋がらず。

単純にssh繋がらないだけっぽい。
ということでさくらVPSなので管理画面から接続。

やったことを改めて思い返すとdocker-machine入らなかったのでSELinux一時停止して試したままだった。んで、ssh port変更したけどSELinuxの設定していない。

(ここからVPNの管理コンソールなのでコピペはなし)
semanage port -l| grep ssh で新しいポート表示されず。
semanage port -a -t ssh_port_t -p tcp nnnnn もした履歴無し。
jarnalctl -xe にsshd上げるときにポートのパーミッションがなくてバインド失敗したメッセージが出ていました

docker-machineが古かった

docker-machineでCentOS7に入れたdockerが起動しなかった。

インストール元

Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with centos...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Error creating machine: Error running provisioning: exit status 5

インストール先

[root@testsv system]# systemctl status docker.service -l
 * docker.service - Docker Application Container Engine
 Loaded: loaded (/etc/systemd/system/docker.service; enabled; vendor preset: disabled)
 Active: inactive (dead) since Wed 2017-05-10 18:15:08 JST; 28min ago
 Main PID: 13716 (code=exited, status=0/SUCCESS)

May 10 18:15:03 testsv dockerd[13716]: time="2017-05-10T18:15:03.609609938+09:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
 May 10 18:15:04 testsv dockerd[13716]: time="2017-05-10T18:15:04.102333287+09:00" level=info msg="Loading containers: done."
 May 10 18:15:04 testsv dockerd[13716]: time="2017-05-10T18:15:04.124630882+09:00" level=info msg="Daemon has completed initialization"
 May 10 18:15:04 testsv dockerd[13716]: time="2017-05-10T18:15:04.124714583+09:00" level=info msg="Docker daemon" commit=89658be graphdriver=overlay version=17.05.0-ce
 May 10 18:15:04 testsv dockerd[13716]: time="2017-05-10T18:15:04.146221898+09:00" level=info msg="API listen on /var/run/docker.sock"
 May 10 18:15:04 testsv systemd[1]: Started Docker Application Container Engine.
 May 10 18:15:07 testsv systemd[1]: Stopping Docker Application Container Engine...
 May 10 18:15:07 testsv dockerd[13716]: time="2017-05-10T18:15:07.527842954+09:00" level=info msg="Processing signal 'terminated'"
 May 10 18:15:07 testsv dockerd[13716]: time="2017-05-10T18:15:07.53054844+09:00" level=info msg="stopping containerd after receiving terminated"
 May 10 18:15:08 testsv systemd[1]: Stopped Docker Application Container Engine.

症状をみるとこれっぽい。日付けをみるとだいぶ古いけど、masterには取り込まれているから〜といっている。ちゅうことは、docker-machineが古いな。

日本語ドキュメントのワンライナー手順で入れたけど、リリースページを確認するとにほんご頁よりも大分バージョンが上がっている。
リリースページの手順で再インストール。

Provisioning with centos...
Error creating machine: Error running provisioning: something went wrong running an SSH command
command : sudo systemctl -f restart docker
err     : exit status 5
output  : Failed to restart docker.service: Unit not found.

そのままもう一回docker-machine rm -> docker-machine createは失敗。
インストール先で
rm /etc/systemd/system/docker.service

yum remove docker-engine
したら取り敢えず入った。

動作確認はこれから

Dockerの消せないイメージが残っていた

[root@localhost yoshitake]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest f753707788c5 6 months ago 127MB
[root@localhost yoshitake]# docker rmi ubuntu
Error response from daemon: No such image: ubuntu:latest
[root@localhost yoshitake]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              f753707788c5        6 months ago        127MB
[root@localhost yoshitake]# docker rmi f753707788c5
Error response from daemon: reference does not exist

何か消せないdocker imageがいた。こちらをみてファイルがあった/var/lib/docker/image/devicemapper/imagedb/contentのしただけ削除

rm /var/lib/docker/image/devicemapper/imagedb/content/sha256/f753707788c5c100f194ce0a73058faae1a457774efcda6c1469544a114f8644
rm: 通常ファイル `/var/lib/docker/image/devicemapper/imagedb/content/sha256/f753707788c5c100f194ce0a73058faae1a457774efcda6c1469544a114f8644' を削除しますか? y

とりあえず、消えてくれた。きちんと動くかな??