New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSS Gate Workshop: MonotaRO: 2018-05-28: 1021ky: ansible: Work log #836

Closed
1021ky opened this Issue May 28, 2018 · 39 comments

Comments

Projects
None yet
4 participants
@1021ky

1021ky commented May 28, 2018

This is a work log of a "OSS Gate workshop".
"OSS Gate workshop" is an activity to increase OSS developers.
Here's been discussed in Japanese. Thanks.

作業ログ作成時の説明

以下のテンプレートを埋めてタイトルに設定します。埋め方例はスクロールすると見えてきます。

OSS Gate Workshop: ${LOCATION}: ${YEAR}-${MONTH}-${DAY}: ${ACCOUNT_NAME}: ${OSS_NAME}: Work log

タイトル例↓:

OSS Gate Workshop: Tokyo: 2017-01-16: kou: Rabbit: Work log

OSS Gateワークショップ関連情報

  • スライド:ワークショップの進行に使っているスライドがあります。
  • チャット:OSS開発に関することならなんでも相談できます。ワークショップが終わった後もオンラインで相談しながら継続的にOSSの開発に参加しましょう!
  • シナリオ:ワークショップの目的・内容・進め方の詳細が書いています。
  • 過去のビギナーの作業ログ:他の人の作業ログから学べることがいろいろあるはずです。
@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

@yoichi

This comment has been minimized.

Member

yoichi commented May 28, 2018

サポーターです!よろしくおねがいします!

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

mac でインストールする方法を確認。
途中注釈が付いているのを見つけたが、なぜ付いているのかがわからない。
Then install Ansible with [1]:

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

インストールできたみたい。

MacBook-Pro:~ vaivailx$ ansible --version
ansible 2.2.0.0
  config file =
  configured module search path = Default w/o overrides
@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

READMEのGet Involvedにcontributeの仕方が載っている様子

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

http://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html#your-first-commands

/etc/ansible/hostsを編集と書かれている。
ファイルを開くと、既に書かれている内容があった。

[test]
ansible-test
        ansible_port=2222
        ansible_ssh_host=192.168.33.10
        ansible_ssh_user=vagrant

vagrant でansibleを試したときに残ったものだと思うが、これらはそのままにしていいのか、消したほうがいいのかがわからない。

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

追記で試してみる

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

試す前に読み直してみると既に操作したいリモートマシンがある前提のよう。

Edit (or create) /etc/ansible/hosts and put one or more remote systems in it. 

テスト用に仮想マシンを立ててみる。

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

vagrant で仮想マシンを立てる
ubuntu16をOSに
vagrant init ubuntu/trusty64
IPアドレスを設定
code Vagrantfile
以下のように変更

  # config.vm.network "private_network", ip: "192.168.33.10"
↓
config.vm.network "private_network", ip: "192.168.100.10"

今回新しく立てる仮想マシンのIPアドレスがansible/hostsにあったものと被らないように確認
less /etc/ansible/hosts
仮想マシンを起動してsshできるか確認

vagrant up
 vagrant ssh

pingで到達するかも確認
ping 192.168.100.10

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

Edit (or create) /etc/ansible/hosts and put one or more remote systems in it. 

にかかれている通り、192.168.100.10 を設定してみる。

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

sshkeyの設定で気になる表示あり

MacBook-Pro:oss_workshop vaivailx$ ssh-agent bash
bash: export: `/Applications/CMake.app/Contents/bin:/Users/vaivailx/.rbenv/bin:/Users/vaivailx/bin/Sencha/Cmd/4.0.4.84:/Users/vaivailx/.rbenv/shims:/Users/vaivailx/.rbenv/shims:/usr/libexec/:/usr/local/maven/bin:/opt/local/bin:/opt/local/sbin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vaivailx/.rvm/bin:/Users/vaivailx/Library/Android/sdk/platform-tool': not a valid identifier
@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

bashは動いているので続行。

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

passphreseを求められたが忘れてしまっていてできない。

bash-3.2$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /Users/vaivailx/.ssh/id_rsa:

が passwordを何度も打たないでいいようにするための設定なので、放置して続行してみる。

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

ansible all -m ping

と打ってみる

bash-3.2$ ansible all -m ping
 [WARNING]: Host file not found: /usr/local/etc/ansible/hosts

 [WARNING]: provided hosts list is empty, only localhost is available

 [WARNING]: No hosts matched, nothing to do

bash-3.2$ exit
MacBook-Pro:oss_workshop vaivailx$ ansible all -m ping
 [WARNING]: Host file not found: /usr/local/etc/ansible/hosts

 [WARNING]: provided hosts list is empty, only localhost is available

 [WARNING]: No hosts matched, nothing to do

参照しているhostsがさっき編集したファイル(etc/ansible/hosts)と違うものを参照しているようす。

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

macだから参照するファイルが違うのか?
まずはWARNINGに出ているとおりに/usr/local/etc/ansible/hostsを編集してみる

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

失敗。飛ばしたsshの設定が問題かも。

MacBook-Pro:oss_workshop vaivailx$ ansible all -m ping
The authenticity of host '192.168.100.10 (192.168.100.10)' can't be established.
ECDSA key fingerprint is SHA256:i5lr3O9lOrGfH/ptevxyNY2lz6g9AHUW8Fpo4qtfHbQ.
Are you sure you want to continue connecting (yes/no)? yes
192.168.100.10 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Warning: Permanently added '192.168.100.10' (ECDSA) to the list of known hosts.\r\nvaivailx@192.168.100.10: Permission denied (publickey,password).\r\n",
    "unreachable": true
}
@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

飛ばしたコマンドについて調べてみる。

$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

パスフレーズを忘れたため作り直す。

ssh-keygen

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

ansible documentにあるssh設定を再度行う。

MacBook-Pro:oss_workshop vaivailx$ ssh-agent bash
bash: export: `/Applications/CMake.app/Contents/bin:/Users/vaivailx/.rbenv/bin:/Users/vaivailx/bin/Sencha/Cmd/4.0.4.84:/Users/vaivailx/.rbenv/shims:/Users/vaivailx/.rbenv/shims:/usr/libexec/:/usr/local/maven/bin:/opt/local/bin:/opt/local/sbin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vaivailx/.rvm/bin:/Users/vaivailx/Library/Android/sdk/platform-tool': not a valid identifier
bash-3.2$ ssh-add ~/.ssh/id_rsa
Identity added: /Users/vaivailx/.ssh/id_rsa (/Users/vaivailx/.ssh/id_rsa)

成功

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

再度 ansible all -m pingを打つ

bash-3.2$ ansible all -m ping
192.168.100.10 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: vaivailx@192.168.100.10: Permission denied (publickey,password).\r\n",
    "unreachable": true
}
bash-3.2$

失敗。前回のエラー文と変化があるか確認してみる。

@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

ssh vagrant@192.168.100.10

ユーザーvagrantだとsshで入ることができる。
ansibleはsshを使って動くものだから、ユーザーをvagrantに指定して実行する必要がありそう。

@todoa2c

This comment has been minimized.

Contributor

todoa2c commented May 28, 2018

私もサポーターしてまーす

@todoa2c

This comment has been minimized.

Contributor

todoa2c commented May 28, 2018

フィードバック:

  • ユーザー指定でのログインはドキュメントに書いていなかったのか? → 実行コマンドのすぐあとに書かれていた。 先に書いてくれていると、躓かずに済みそう。
  • Macだから ansible/hosts ファイルのPATHが違うのかまだ分からないが、フィードバックポイントになりそう。
@1021ky

This comment has been minimized.

1021ky commented May 28, 2018

ユーザー指定してやる方法は書いてあった。

bash-3.2$ ansible all -m ping -u vagrant
192.168.100.10 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: vagrant@192.168.100.10: Permission denied (publickey,password).\r\n",
    "unreachable": true
}

まだだめ。鍵の設定が必要。
https://qiita.com/Esfahan/items/e5f707dc6d116c2cc751
を参考にしてみる。

@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

`(Depending on your setup, you may wish to use Ansible’s --private-key option to specify a pem file instead)

`
を参考に以下のコマンドでユーザーと秘密鍵を指定して実行するとpingが通った。

ansible all -m ping --private-key ./.vagrant/machines/default/virtualbox/private_key -u vagrant
192.168.100.10 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

Now run a live command on all of your nodes:
コマンドを実行するのも成功。

MacBook-Pro:oss_workshop vaivailx$ ansible all -a "/bin/echo hello" -u vagrant --private-key ./.vagrant/machines/default/virtualbox/private_key
192.168.100.10 | SUCCESS | rc=0 >>
hello
@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

フィードバックする

  • 整理
    • フィードバックする内容を一つに決める
    • 自分が内容を理解できるように整理して文章化
    • issueに下書きを書いてメンターにチェックしてもらう
  • 編集(開発者がわかるように書く)
    • 書き方が決まっていたり、書く場所が決まっていることがあるので確認
    • 他の人のフィードバックの書き方を見てみるのも一つ
  • 報告
    • できるならパッチのPRまで
@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

ユーザー指定でのログインはドキュメントに書いていなかったのか? → 実行コマンドのすぐあとに書かれていた。 先に書いてくれていると、躓かずに済みそう。

で整理を始める

@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

背景

http://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html#your-first-commands
の項目を上から順に実行した。

事象

Now ping all your nodesの項目で$ ansible all -m pingを実行すると失敗した。

bash-3.2$ ansible all -m ping
192.168.100.10 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: vaivailx@192.168.100.10: Permission denied (publickey,password).\r\n",
    "unreachable": true
}

環境

  • ホストマシン: MacOS High Sierra 10.13.4
  • リモートマシン: ubuntu 14.04.5 (vagrantを利用して仮想マシンで作成)

原因

コマンド実行時にユーザー指定とpem ファイルの指定が抜けていた。

改善案

ドキュメントには, Now ping all your nodes:の前に秘密鍵の指定について補足している。
(Depending on your setup, you may wish to use Ansible’s --private-key option to specify a pem file instead)

ここでも環境によってはユーザーの指定も環境によっては必要と書いてある方が良いと思います。

@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

↑ドキュメントを見返すと同じ節にユーザー指定のことが書いてあるため、自分の英文の読み方の問題かも。
もう一方のフィードバックをすることにする。

@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

環境

  • ローカルマシン: MacOS High Sierra 10.13.4
  • リモートマシン: ubuntu 14.04.5 (vagrantを利用して仮想マシンで作成)

背景

http://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html#getting-started
を見てgetting-startedにかかれていることを順に実施。

途中リンク先の
http://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installation-guide
を参考にpip で ansible(2.2.0.0)をインストール。

http://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html#your-first-commands
の項目を上から順に実施。

事象

Now ping all your nodesの項目で$ ansible all -m pingを実行すると失敗した。

bash-3.2$ ansible all -m ping
 [WARNING]: Host file not found: /usr/local/etc/ansible/hosts

 [WARNING]: provided hosts list is empty, only localhost is available

 [WARNING]: No hosts matched, nothing to do

原因

hostsファイルを作成するディレクトリが誤っていた。
/usr/local/etc/ansible/hostsに作成すると実行できた。

改善案

環境によっては、/etc/ansible以外のディレクトリでhostsファイルを作る必要があることを書く。
メリット: 初心者がget-startingで詰まることが少なくなる。

@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

仮案
Edit (or create) /etc/ansible/hosts and put one or more remote systems in it.

Edit (or create) /etc/ansible/hosts and put one or more remote systems in it.(Denpending on your OS, you may Edit (or create) /usr/local/etc/ansible/hosts.)

@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

ansibleはissueの種類によってテンプレートが変わるよう。
今回はDocumentation Reportで出す。

@yoichi

This comment has been minimized.

Member

yoichi commented May 29, 2018

メリット: 初心者がget-startingで詰まることが少なくなる。

これすごく良いポイントだと思います!

@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

ansible のissueのテンプレートに沿って書いてみた。
これで出す。

SUMMARY

user_guide/intro_getting_started.html#getting-started sentence is not suitable for mac os.

ISSUE TYPE
  • Documentation Report
COMPONENT NAME

Docs » Getting Started

ANSIBLE VERSION
ansible 2.2.0.0
CONFIGURATION

nothing

OS / ENVIRONMENT

from OS : MacOS High Sierra 10.13.4
remote OS: ubuntu 14.04.5 (build with vagrant)

STEPS TO REPRODUCE

read http://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html#getting-started.

execute each step on getting-started.

install ansible(2.2.0.0) with pip, reading http://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installation-guide

execute each step on http://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html#your-first-commands

EXPECTED RESULTS

run ansible all -m ping successfly.

ACTUAL RESULTS
bash-3.2$ ansible all -m ping
 [WARNING]: Host file not found: /usr/local/etc/ansible/hosts

 [WARNING]: provided hosts list is empty, only localhost is available

 [WARNING]: No hosts matched, nothing to do

so, I would like you to add Depending on your OS, you may edit (or create) /usr/local/etc/ansible/hosts. to the /user_guide/intro_getting_started.html#your-first-commands.
I think this can reduce beginner's stumbling or fail.

@1021ky

This comment has been minimized.

1021ky commented May 29, 2018

ansible/ansible#40805
出した!

@y-goto

This comment has been minimized.

Contributor

y-goto commented Jun 1, 2018

お疲れ様です。
投稿したissueはbotによって自動判定がなされてますね。
https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md
にステータスについて解説が書いてあるようですから、それをもとに次のアクションを考えるとよいでしょう。

@yoichi yoichi closed this Jun 2, 2018

@yoichi

This comment has been minimized.

Member

yoichi commented Jun 2, 2018

参加ありがとうございました。このissueはcloseしましたが、引き続きここにメモを残しながら作業しても大丈夫です!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment