このブログに記載の内容は個人の見解であり、所属組織の立場、戦略、意見を代表するものでは全くありません。

angular2-flask in win10 作業メモ

■2017年3月19日
アジャイルサムライのEndToEndというのに感銘を覚えたことを思い出して
やはり外枠をきっちり作りたくなった。

angular2 pythonググる

https://github.com/ansrivas/angular2-flask
とりあえずこれの環境構築と実行をしたりソースみたりしようかな

windowsでぶっこんで見る
sudo のところを普通に立ち上げたpowershellで実行してみる

You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

とは出たものの行けたくさい。powershellの権限ってどうなってるんだ??

backでpython実行したらfocusが返ってこないからforeground jobなのかなと
別のpowershell立ち上げてnpmでinstall
rimrafって何だろう。

しかしこれ試すのはいいけどセキュリティ考えると怖いな。
なんとなく悪意をもったリポジトリだったら簡単にハッキングできる気がする。
localhost(というかloopbackというか)使ってる分には安全なのか?
だったらいいなあ

出たワーニングを控えておく。
install -g
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\webpack\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\webpack-dev-server\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

install
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
こわ
npm WARN prefer global marked@0.3.6 should be installed with -g
npm WARN prefer global node-gyp@3.6.0 should be installed with -g

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

しかしdisk boundがしょっちゅうだこのPCわろす。

frontでrunしたら動いた。わーい。

dockerサポートしてるって書いてるけど
docker for windowsでもいけるんやろか。

explorerのアドレスバー(alt+d)でpowershell開くとcwdで立ち上がる。
もうcmdとはおさらば出来そうな勢いだ。
cmdと違って超履歴が見れるし便利。
昨日の今日で自分がマヌケだったことが判明した。実に気分がいい。

npm run build:prod
だけでいいよね

一応、frontのjobをCtrl+c, Ctrl+c, Yで閉じてから

angular-2-flask> docker-compose up
余裕でいけた。
this ripository run in win10

ここまでつまづかなかったのは初めてだ。。
時代はgithubだな。

ansrivas is very cool person. thx a lot.

■2017年3月18日
ここ見てangular-cli入れ直し
https://angular.io/docs/ts/latest/cli-quickstart.html

あと、今後はwinのコンソールはpowershell使うことにする。
比べるとcmdがクソすぎるからだ。アクセスしやすいくせに。
powershellがアクセスしやすかったら僕はマヌケですね!やり方教えてください!)

> ng new my-app

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)
http://amzn.asia/7Ew7TRw

色々省いてflask周りだけ作ってangularとつなげたい
事前(前章)に準備が必要そうなもの
movieclassifier
 stopwords.pkl
classifier.pkl

http://dev.toihrk.me/2015/06/03/git-reset-head.html
誤って次のコミットに含めないファイルをステージングしてしまったとき
以下のようにしてstaging areaから除外する。
$ git reset HEAD <File or Directory>

udemyをやる
何故かjupyterが単体で実行できない。anacondaのセットアップをしくったのだろうか?
PyCharmでは.ipynb作って実行しようとしたらポップアップでkernelを立ち上げる?
って聞いてくれて下記のコマンドで立ち上げてくれてた。
C:\Users\Seno\Anaconda3\python.exe C:\Users\Seno\Anaconda3\Scripts\ipython-script.py notebook --no-browser --ip 127.0.0.1 --port 8888

--no-browserをとればコンソールから実行できそうだ。ランチャー作るべきなのか??めんどくせぇ

※メモ
そういえばVS2017インストールしたいな

PCでKindle(jp)、github、FlaskとAngularjs(失敗)作業メモ

PCにkindle読める環境をセットアップ
https://www.amazon.co.jp/kindle-dbs/fd/kcp

githubリポジトリのsign inとclone
どっちも何か地味に時間かかった。

githubに403でプッシュできない
http://qiita.com/ritukiii/items/0d14df8f0253ca223373
http://d.hatena.ne.jp/yk5656/20140831/1410668030
http://ja.stackoverflow.com/questions/23475/githubへgit-pushしようとすると403エラーとなる


putty

$ ssh -T git@github.com
がうまく行かない


$ ssh-keygen -t rsa
no pass

これでできた公開鍵をエディタで開いてコピペ
$ ssh -T git@github.com
これはOKになった。

でもpushは別ユーザー名で拒否されたので
configでuser.mailをgithubリポジトリのアカウントに合わせたら
OK

httpsは別ユーザーが解除できない。
git credential reject
したらNullPointerとか出たから消せてないのかな。
何かしらの認証情報が残っちゃってるんだな。。
tortoiseGitかな?
それともブラウザ?

パワーシェル、どうも腰が重くて触れなかったのだけれど
先日のみんなのpythonでfin-pyの人が使っていたのを見て
使わずに済ませられないのかも。と思って使ってみたら、

unixっぽい基本のコマンド使えるし、
補完がバリバリ効くし、履歴も使えるし
コピペもできるし普通に便利だわ。

言語としてしか見てなかったからか。コンソールとしちゃ全然いいな。

FlaskとAngularjsの環境構築
http://qiita.com/ryoo17/items/6e834fce4170e9862474

yoって何だよ
yoコマンドから始まる快適なHTMLコーディング生活
http://qiita.com/dll7/items/e2c1fbece0ebc64f8d5d

install.shにコマンド名(sh)が書いてなかったのでスルーしてたら
普通にいかんかった。

パワーシェルでコマンドなしで普通に実行できたのか
git-bashが動いたような。プログラムから開くで確認したらGit for Windowsやて。
てかinstall.batがあるやん。

⇒ダメ。
⇒もう一回やり直したけどダメ

古いから多分パスが色々変わってるのかanacondaだとダメなのかその辺だと思う。

苦節Windows ansible

作業ログです。日付は降順です。

 

■2016年10月9日

ansibleが入っているVMsshログインして
ansible-playbook /vagrant/provisioning/site.yml

したら/etc/ansible/hostsがないって怒られた
http://yteraoka.github.io/ansible-tutorial/

そうか。作業パスもマシンも違うもんな。

>ちなみに ansible.cfg は次の順で探します
>
>カレントディレクト
>環境変数の ANSIBLE_CONFIG or ~/ansible.cfg
>/etc/ansible/ansible.cfg

まあ/etc/ansible/さえ無いんだけどね。

ん?しかしよくよく見るとカレントディレクトリにhosts
がある。-iオプションでいいのかな?⇒no hosts matchedやて。
あーこっちのは疎通確認だけでグループ指定してないからか

/usr/lib/python2.7/site-packages/ansible
を漁って設定ファイルを探したけど無いので、作れということだろうか?
デフォルトの設定どうなっているんだ。。

下記のサイトに従いたいのだが。。
http://centos.sabakan.red/entry/2015/07/01/140000

ここで衝撃の事実が発覚した。
ansibleが入っているVMhttpdがインストールされてenabled
になっている。
え?okってそのことかよ。。
というのは無理矢理のみこむとしてもhostsの指定と表示は何やねん。
ip違うやろ?

hostsの記述がぬるいのか?
⇒下のように変えてみたけどダメ(ipの扱いが変な気はします)
[trial-target]
192.168.33.12 ansible_ssh_host=127.0.0.1 ansible_ssh_port=2002 ansible_ssh_user=vagrant

もっかい戻って
ansibleが入っているVMsshログインして下記のサイトに従ってやったら、
http://yteraoka.github.io/ansible-tutorial/
ansible-playbookで対象VMにインストールできた。うーん。。

まあ、これでやりたいことはできるような気もするような?
ansibleのVMだけdestroyしたくないなあ。
他は綺麗な環境を再構築しやすい方がいいと思うけれど。

別々のVagrantfileにしてもネットワークがうまく構築されるのだろうか。


■2016年10月8日
これまでのやり方で
sshでno passwordでログインできない
http://blog.ruedap.com/2011/04/04/mac-ssh-key-copy-error

$ chmod 0600 ~/.ssh/id_rsa

id_rsaのコピー方法は
ansibleホストのアクセス先で
$ ssh-keygen -t rsa
⇒オールEnter
$ ssh-copy-id アクセス元IP

よし。ansibleでpingオッケー

http://yteraoka.github.io/ansible-tutorial/
と同じようにやってもhttpdがinstallされない

okになるのがいやらしい。

sshログインして下記でinstallされた。
$ sudo yum -y install httpd

sudo か-y かinstallの記述の方法が変わっているのだろうか。

オライリーを見て設定ファイルを確認しようと思ったが、
配置されているはずの
/etc/ansible/すら無い。
インストール方法がよくなかったのだろうか。。

[vagrant@localhost ~]$ sudo find / -name ansible
/usr/bin/ansible
/usr/lib/python2.7/site-packages/ansible
[vagrant@localhost ~]$ ls /usr/lib/python2.7/site-packages/ansible
__init__.py config executor modules plugins utils
__init__.pyc constants.py galaxy new_inventory release.py vars
cli constants.pyc inventory parsing release.pyc
compat errors module_utils playbook template

あ、ansibleコマンドだとどうなんだろう。
telnetは問題なく入ったような。

<ansibleを入れたhostにsshログインして>
$ ansible -i hosts 192.168.33.12 -m yum -s -a name=httpd

入った。
ちなみに確認は下記。
$ sudo systemctl list-unit-files | grep httpd


-sか-aが効いてるのか?
sはsudo, aは引数のようだ。

んーよく分からん。-yオプションがよく分からないが、
ログが全然出てこないのを見るともっと根が深いような。

■2016年10月2日
●ansible
simple-playbook.ymlで
vagrantでansibleプロビジョニングの試行

sshの鍵のコピー必要
⇒shでやろうとしたらできてなかった。
Winコマのstartみたいなのが要るのか?

/vagrant/$ANSIBLE_HOST
が成功しない。。

■2016年10月1日
●ansible
プロビジョニングスクリプトの.sh、
実行されるパスはおかしいけど、内容は同じようだ。
C:\Users\Hoge\AppData\Local\Temp
に一回コピーしてハッシュでもつけてリネームしてるっぽい

まあでもそもそもansible関連のファイル(site.ymlとか)をちゃんと書かないと
あんまり意味がない感じがする

と、いうことで、

自作centos7のboxで下記を再現トライアル
http://yteraoka.github.io/ansible-tutorial/

[vagrant@localhost ~]$ which python
/usr/bin/python

http://yteraoka.github.io/ansible-tutorial/

ansible疎通確認でpingが到達しない
[vagrant@localhost ~]$ ansible -i hosts 192.168.33.12 -m ping
The authenticity of host '192.168.33.12 (192.168.33.12)' can't be established.
ECDSA key fingerprint is 78:5e:5f:d8:9a:bc:21:45:f4:39:77:85:46:aa:fd:e0.
Are you sure you want to continue connecting (yes/no)? yes
192.168.33.12 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}

ECDSA? ⇒ あんまり関係なかったっぽい

$ scp -F ssh_config .vagrant/machines/node2/virtualbox/private_key node1:.ssh/id_rsa
⇒node1の/home/vagrant
.sshがある

http://qiita.com/ayihis@github/items/748bba777f1cac405435

先に、
https://orebibou.com/2015/01/%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%8B%E3%82%89%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E5%85%A5%E5%8A%9B%E7%84%A1%E3%81%97%E3%81%A7ssh%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B3/
/etc/ssh/sshd_config の
AuthorizedKeysFileの設定をコメントアウト

ansible疎通確認OK
'uname -a'を送る
[vagrant@localhost ~]$ ansible -i hosts 192.168.33.12 -a 'uname -r'
192.168.33.12 | SUCCESS | rc=0 >>
3.10.0-327.36.1.el7.x86_64

2016/9/24にboxを作ったときの
>0.5.3-1ってなんなんやろ。
これか。

■2016年9月25日 その2
●ansible
vagrant upしたらtarget2のnodeが今度は立ち上がったけど
Ansible playbookがねえよ。と言われる。
やはり事前に仕込みが必要ではあったのだな。

導入時の情報を見返したりしてると
Vagrantfileと同じフォルダに.ymlとかhostファイルとか
配置していた。一回作ったやつなのでコピーして、
再度vagrant up

今度はもうprovisionされてるしー。みたいなログが。
ログに従ってない感はあるけれど、
Vagrantfileを変更。コメントアウトされてた
|sh|型のprovision指定に変えてみる。
やっぱダメ。upもprovisionもダメ。
走ってほしい.shが走らない。
適当にいじって、これまでにないパターンになった(笑)
upはこれまで通りでダメだったけど、
provisionしたらmake-playbookにansibleがインストールされたっぽい。
sshで入って確認したらwgetも入ってなかった。
入れちゃったけど、.shのインストール部分の頭にも追加してもう一回。

ログを見てるとvagrant upのあとvagrant provisionじゃなくて
vagrant up --provisionでもいいのかな?

get-pip.pyの取得に失敗。
なんやこれ?何でこんなにつまづくん?って思ったけど
前回はgit-bashでやって、今回はWindowsコマンドプロンプトから
vagrant操作してるからかも。まあそれはそれで望むところなようなそうでもないような。
Win環境からーっぽくはしたいなあ。

get-pip.pyもsshログインしたまんま、
エラーに合わせてhttps://をパスから取り除いて取得してしまったが、
.shのインストール部分も変更してもう一回。
というかvagrant up --provision
.shは想定通りに叩いてくれたっぽいけど何かログが短い。
pip入ってない。。
作業ディレクトリが違うのか?
このままsshログインして進めるともはや環境構築が自動化されないので
一旦git-bashからやる方向に変えてみる。

それでもダメ。挙動もあまり変わらない。
Vagrantfileを戻した方がええんやろか。
pipが入ってない。
Vagrantfileを最新のうまくいっていたと思われる状態に戻して。
vagrant up --provision
うん。ダメだ。ansible入ってたから動いてたんだねー。

うーん。でもansibleがすでに入っていたから動いていたくさい設定だなあ。
確認はdestroyせんとですね。
しかしhaltとupの繰り返しでさえ気が遠くなってくる。
(よく考えたら全然関係ないnodeを作る構成になっていた。。
 い、いや、漏れのないテスト項目をだねqあwせdrftgyふじこlp
 めんどいから我慢できる限りいいや。と思ったけどVagrantfile数行なので
 とりあえずコメントアウトしよう。)

いやー環境構築を楽にするのも楽じゃないもんだ。
と思ったけど物理サーバーとかネットワーク配線するのよりは
よっぽどマシなんだろうなー。

デバッグしながら配置していたhostsファイルの名前が間違っていたことに気付く(host)。
わーお。確かに空ファイルだけども。

あまり動きが変わらないのでWinコマに戻ることにする。
はら?変な.shが叩かれおる。
haltしてもうたけどそのままgit-bashでやったらどうなったんやろ。

やはり変なシェルが叩かれる。haltせずに記述を変えてprovisionしてもダメ。
ここで、想定していた.shが全く叩かれていなかったことに気付く。
これがいわゆるオーマイガッというやつだ。

一つ目のansibleは手動で入れるのか?
何だか何がなんだか分からなくなってきたぜ。フヘヘ。
前うまくいっていたと思っていたやつをvagrant upしたら
.shとは関係なさげなものがドカドカinstallされていただけだったようだ。

ははは

vagrant destroyに心がこもる。

さて、現実に戻ろう。


とりあえずフルパスでシェルのパスを指定してみればいいだろうか

■2016年9月25日
http://te2u.hatenablog.jp/entry/2015/05/11/012225
sshの設定
からレジューム作業

gitは
# yum list git
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
インストール済みパッケージ
git.x86_64 1.8.3.1-6.el7_2.1 @updates

# yum update git
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
No packages marked for update

ということでいいや。

iptable関連で動いてるサービスが見当たらない。
のでスルー。
# systemctl list-unit-files | grep tables
# systemctl list-unit-files | grep ip
iprdump.service disabled
iprinit.service disabled
iprupdate.service disabled
iprutils.target disabled

Guest Additions CD imageの取り出しも分からなかったのでスルー

udevのルールの削除もそれっぽいファイルが無さそうなのでスルー

$ vagrant -v
Vagrant 1.8.4

$ VBoxManage.exe -v
5.0.22r108108

●ansible
別のboxで作った
Vagrantfileと
provision.sh
ではansibleからprovisionしたいnodeのtarget2のVMの作成うまくいかなかった。
ansibleが入っているはずのVMでansibleを叩いても
見つからなかったのでansibleは前もってinstallしないといけないのかもしれない

ログは下記。
>vagrant up
Bringing machine 'make-playbook' up with 'virtualbox' provider...
Bringing machine 'target' up with 'virtualbox' provider...
Bringing machine 'target2' up with 'virtualbox' provider...
==> make-playbook: Importing base box 'CentOS-7-x86_64-Minimal-1511'...
==> make-playbook: Matching MAC address for NAT networking...
==> make-playbook: Setting the name of the VM: mycentos7_make-playbook_1474778008372_19837
==> make-playbook: Clearing any previously set network interfaces...
==> make-playbook: Preparing network interfaces based on configuration...
make-playbook: Adapter 1: nat
make-playbook: Adapter 2: hostonly
make-playbook: Adapter 3: hostonly
make-playbook: Adapter 4: intnet
==> make-playbook: Forwarding ports...
make-playbook: 22 (guest) => 2001 (host) (adapter 1)
make-playbook: 80 (guest) => 65534 (host) (adapter 1)
==> make-playbook: Booting VM...
==> make-playbook: Waiting for machine to boot. This may take a few minutes...
make-playbook: SSH address: 127.0.0.1:2001
make-playbook: SSH username: vagrant
make-playbook: SSH auth method: private key
make-playbook: Warning: Remote connection disconnect. Retrying...
make-playbook: Warning: Remote connection disconnect. Retrying...
make-playbook: Warning: Remote connection disconnect. Retrying...
make-playbook: Warning: Remote connection disconnect. Retrying...
make-playbook:
make-playbook: Vagrant insecure key detected. Vagrant will automatically replace
make-playbook: this with a newly generated keypair for better security.
make-playbook:
make-playbook: Inserting generated public key within guest...
make-playbook: Removing insecure key from the guest if it's present...
make-playbook: Key inserted! Disconnecting and reconnecting using new SSH key...
==> make-playbook: Machine booted and ready!
[make-playbook] GuestAdditions 5.0.22 running --- OK.
==> make-playbook: Checking for guest additions in VM...
==> make-playbook: Configuring and enabling network interfaces...
==> make-playbook: Mounting shared folders...
make-playbook: /vagrant => C:/Users/Sode/DevEnv/vagrant/mycentos7
==> target: Importing base box 'CentOS-7-x86_64-Minimal-1511'...
==> target: Matching MAC address for NAT networking...
==> target: Setting the name of the VM: mycentos7_target_1474778120127_88347
==> target: Clearing any previously set network interfaces...
==> target: Preparing network interfaces based on configuration...
target: Adapter 1: nat
target: Adapter 2: hostonly
==> target: Forwarding ports...
target: 22 (guest) => 2002 (host) (adapter 1)
==> target: Booting VM...
==> target: Waiting for machine to boot. This may take a few minutes...
target: SSH address: 127.0.0.1:2002
target: SSH username: vagrant
target: SSH auth method: private key
target: Warning: Remote connection disconnect. Retrying...
target: Warning: Remote connection disconnect. Retrying...
target: Warning: Remote connection disconnect. Retrying...
target:
target: Vagrant insecure key detected. Vagrant will automatically replace
target: this with a newly generated keypair for better security.
target:
target: Inserting generated public key within guest...
target: Removing insecure key from the guest if it's present...
target: Key inserted! Disconnecting and reconnecting using new SSH key...
==> target: Machine booted and ready!
[target] GuestAdditions 5.0.22 running --- OK.
==> target: Checking for guest additions in VM...
==> target: Setting hostname...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

# Update sysconfig
sed -i 's/\(HOSTNAME=\).*/\1target/' /etc/sysconfig/network

# Update DNS
sed -i 's/\(DHCP_HOSTNAME=\).*/\1"target"/' /etc/sysconfig/network-scripts/ifcfg-*

# Set the hostname - use hostnamectl if available
echo 'target' > /etc/hostname
if command -v hostnamectl; then
hostnamectl set-hostname 'target'
else
hostname 'target'
fi

# Remove comments and blank lines from /etc/hosts
sed -i'' -e 's/#.*$//' -e '/^$/d' /etc/hosts

# Prepend ourselves to /etc/hosts
grep -w 'target' /etc/hosts || {
sed -i'' '1i 127.0.0.1\ttarget\ttarget' /etc/hosts
}

# Restart network
service network restart


Stdout from the command:

/bin/hostnamectl
Restarting network (via systemctl): [失敗]


Stderr from the command:

Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.


■2016年9月24日
自分でboxを作成して会社でも使いたい
仮想マシンの名前はcentos7min64とする

ネットワークのコマンドが色々変わっていて
http://te2u.hatenablog.jp/entry/2015/05/11/012225
natのeh0の有効化だけで困る

http://qiita.com/yokomotod/items/e69d3cc69a1e16704089
伏字で困る

ここでhidekuroさんがお勧めしてたboxを安易にとってまねることにしようと思う
http://qiita.com/yokomotod/items/e69d3cc69a1e16704089
$ vagrant box add https://atlas.hashicorp.com/puppetlabs/boxes/centos-7.2-64-nocm
$ vagrant init
# config.vm.box = "base"
config.vm.box = "puppetlabs/centos-7.2-64-nocm"
vagrant up
成功
vagrant sshでユーザーが勝手にvagrantになるのはどの設定なのだろう。
ifconfigもipも動くけどnatどれなんやろう。
loはlocalhostっぽいから
多分enp0s3なんだろうなー。
VirtualBoxの設定だとnatのアダプタしかないし。

しかし問題はsshログインできるかどうかだろう。
ということでmntui
 全部Automaticやん。。
 /etc/sysconfig/network-scripts/
 のファイルで設定してるっぽい。
 コピーするか(笑)
私は情弱の外道ですよおおおおおお
$ cp /etc/sysconfig/network-scripts/ifcfg-* /vagrant/
中身見たけど分かんねえや

vagrant up
を他に2つ追加したからなおさら不利になっている感がある。

eh0の代わりに存在感を放っている
/etc/sysconfig/network-scripts/ifcfg-enp0s3
が存在していたので
ON_BOOT=yesに変更

$ ssh localhost -p 2222 -l root
成功。YES!

よく分からないけど書いてる通りにRPMFORGEを追加。
el7にはする。迷惑にならないといいなあ。
0.5.3-1ってなんなんやろ。

yum installでパッケージが利用できないと言われる。
ほーう。
el6でもダメ。
ググったサイトで下記もダメっぽい
# rpm -ivh http://apt.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

うん。飛ばそう。

やりたいこととGo使いたいんだけどアプリの構成が思い浮かばない

やりたいことは、「こうだったらいいのに」ということに似ている。

  • やりたいことその1

Excelの編集をしたくない。

 細かく言うとエクセルで色々やりすぎているせい。

  メンテナンスコストはスキルに変わったら素敵ですよ。

  クリエイティビティを費やして冗長な事務(or説明準備)しても何かの温床だと思うのです。

計画も進捗管理も一応やりたい。 

  • やりたいことその2

環境の自動構築

これはもはやただただめんどくさい。

そして細かいところ抜かしたりしてハマるのがしんどい。

  • やりたいことその3

コード書いたらリアルタイムでプレビューして欲しい

 

はっきりいってGUIをやるならGoよりはJavaなどの方が向いていると思います(OpenGLなんかもありますが、自分はそこまで詳しくないので)。 Javaの方がGUIプログラムを作るためのライブラリが豊富ですし、Goだとクラスが無いのでオブジェクトの管理が非常に面倒です。 GoにはGoの強みがあるので、それを活かすような使い方をすれば良いのだと思います。

GoLangを触ってみた#その4 - ただのアニメ感想ブログ

 

Excelpython触ってた方が近道だと思えてきた。

JavaScriptの勉強にもなるしー、的にElectron触っているよりも

ansibleのオライリーを写経すればいい気がしてきたよ。

Golangでアプリサーバー作成挑戦 その4 ちょっと前進

■2016年8月7日

 

引き続き下記サイトのstandalone_hello.go

 

nginx + Go-FCGI で Web アプリを動かす - Qiita

 


また再起動しないとwebサーバーの挙動が変わらない。。
というのを再起動してから思い知らされる。

sudo reboot
httpdapacheは止まったみたいだけど

enableになってるnginxが
ホストOSのブラウザから見れない。。

 

2,3回rebootしても変わらないので
vagrantで再起動することにする。
コマンド調べて
vagrant reload

ダメだ!


/etc/nginx/conf.d/
のファイルを見ながらふと、go関係で作ったやつが悪さをしているのだろうか?
と思って、一旦どかしてreboot
nginx出た!マジかよ。

知らないうちに自分が作ったファイルにやられてた。。

 

まあでも

/etc/nginx/nginx.conf 見たらそんな感じではあったけど

/etc/nginx/conf.d/以下に設定ファイルを配置したらちゃんと作用するんですね!

今回は悪い方に作用したけど!\(^o^)/

うーん。。(泣)


とりあえずnginxも止めて
standalone_hello.go動かしてみよう。

ん!?

 

/vagrant/がmountされてない!


reloadじゃダメなのか?
halt, upしたらmountできてた。
※仮想OSをrebootすると(たまに?)なるようだ。

色々やってもダメ。これかなり面倒だなー。。

 

ポートを開く


ふと4000番ポートって開いているんだろうか?と思って
調べてみる

下記のサイトみたら(広告がすごく邪魔ですが。サイト主様すみませんm(_ _"m))

netstat -aで全部出てくるみたいだ。

20.Linuxのポート状況を確認する Linuxの小技:UNIX/Linuxコマンド Topics Linux初心者のためのサイト

 

うん。開いてないね。そりゃアクセスもできないかー\(^o^)/
全然言及されてなかったのは常識だってことか。。

 

てかポートを普通に80に変えれば良かった説。。
※⇒やってみたら即プロセス終了。バッティングしてるから?

 

このサイトを見て4000番ポートを開いたら無事helloが見れた。

CentOS7(RHEL7) Firewalldの基礎の基礎 | LINUXの勉強ブログ

 

ようやく島の影が見えてきた(^^;
一安心。

Golangでアプリサーバー作成挑戦 その3

■2016年8月6日


Win環境で確認

 

一向にうまくいかないので

standalone_hello.goみたいなコードでgo runして
ブラウザからhelloが見れた気がしたのでもう一回やってみる。
⇒うん。普通に見れる。


これはWebサーバは何なんだ?
コマンドプロンプトからhelpして
sc query state= all > before_list.txt
sc query state= all > after_list.txt
WinMergeで比較してみると、gpsvcっていうのが動いている。
ぱっと見あんまり関係なさそうなサービスに見えるけどなあ。

 

ページのソースを見てもろくにHTMLで書いてない。
じゃあ。HTML生成みたいなエンジン?は構成に含まれてないんだな。

 

コード名と同じプロセスが立ち上がってたしこれが全部やっているのか?

 

valgrantマシン(Linux)に戻る

 

GUIないLinuxだとlocalhostの確認をどうやって試せばいいのか分からん(笑)
ブラウザとか入っとるんやろか。

 

ポート監視ツールとかあるのかな?

とりあえずvagrant up からのssh
おっ!Webアクセスしても何も起こらない!チャンス?

※ここ後で見返して何のチャンスなんだ?となってます

 

go run standalone_hello.go でhost(Win)からアクセスしても動かない。
とりあえず片っ端からやってみるかー。。

 

nginx設定ファイル

 

.confの配置が
/etc/nginx/conf.d/
以下に新規作成でいいのかだけ気になるけど。
/etc/nginx/nginx.conf
を変更した方が無難な気もしなくはないよね。

 

server_nameもどうしたらいいのか分からん。
example.comにしといた方がいいのか?
とりあえず_(アンダーバー)にしておく。

phpの時はこれでよかったので。)

 

tcpでは設定にいれなきゃならなくなったので

(当初の参考サイト

nginx + Go-FCGI で Web アプリを動かす - Qiita

のnginx_tcp_hello.goの場合の設定ファイルの話)
とりあえずlocalhostにしておいた

 

Golangでアプリサーバー作成挑戦 その2

■2016年7月31日

 

サービスとブラウザの反応

 

nginx

vagrant upしただけでchromeからnginxの画面が出てきて
!?

となる。

 

コマンドを忘れてしまったので
chkconfigと打つと
systemctl list-unit-filesと打てと教えてくれるので、
それでサービスの状態を確認
だーっと出てるといい加減見るのが疲れてきたのでパイプしてgrepして
1つづつ見る。

 

やる前だとこっちの方がだるそうだけどやってみると楽。

nginxのサービス動いてないじゃん!

Ctrl + F5
よし!

Apacheの画面が出てきた!


あーキャッシュ消してリロードはCtrl+F5で良かったんだー。(*´▽`*)
と得した気分になれた。以降、毎回Ctrl+F5。

 

さて、

もっかいgolangでWebアプリサーバを立ててみよう。

 

標準だと自然にドッキングしててくれるのか?(^^;
Web(HTTP)サーバはApacheが動いてるけど。
これも止めないといけないのかなー。

 

go run standalone_hello.go
とやってもブラウザからhelloが見れない。

 

httpdを止めてみる


⇒相変わらずApache
ファッ!?
なんやこれ。何が動いとるんや!

/etc/httpd/
の.confを見てみようとするといっぱいある。
はあ?

 

ブラウザの画面をチラッと見てみたら
Are you the Administrator? のところに
/etc/httpd/conf.d/welcome.conf
が悪いんじゃないのー?みたいな。

 

へぇー親切じゃないか。(皮肉として言ってるけど無かったら詰んで(ry

 

中を見てみると
/usr/share/httpd/noindexの辺りを使ってるっぽいので、
/vagrantにcp -rして入ってたindex.htmlを開いてみると
IPアドレスでアクセスしたときとほぼ同じ。

ビンゴー\(^o^)/

cssの辺りで並べなおしてるんだろうなあと適当に実感。