Ansible を利用してリモートホストの情報をサクッとがっつり見る

# サーバーの情報知りたい

---
## サーバーの情報知りたい

- リモートホストの初期調査は面倒
- SSHはまぁ使える前提

---
## 知りたくなかった事実ばかり

- 想定外の設定にビックリ
- 意外な事実を発見してげんなり

---
## 知りたくなかった事実ばかり

- まぁ楽しいですが大変
- 楽しい気がするけど疲れる
- 楽しまなきゃやってられない

---
# 閑話休題

---
![aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.gif](https://qiita-image-store.s3.amazonaws.com/0/300876/b215c90c-2f24-9f91-558d-203bd22d0b62.gif)

---
# 手作業

たまにツライ

---

# 俺の Commands & Tools

俺の必殺調査用スクリプトや何らかのツールを利用している人も少なくないでしょう

---

# 俺の Commands & Tools

- 「慣れない環境」問題
- 「俺俺ツール使えない状況」問題
- 「環境整備怠りがち」問題

---

# 助けにきてくれメシアーーッ:bangbang:

---

![image.png](https://qiita-image-store.s3.amazonaws.com/0/300876/e161a36e-82b3-7455-eec0-30fabb2f5c9a.png)

---
# Ansible

---
![image.png](https://qiita-image-store.s3.amazonaws.com/0/300876/3fb8fe8c-7e1b-5060-47dd-01f9d284a963.png)

---
## Ansible でとりあえずざっと見る

リモートホストにSSH接続が可能であれば [Ansible](https://www.ansible.com/) が利用出来るでしょう。(大体のケースにおいては)

Ansibleのfactsや特殊な変数などを参照する方法もありますが、それすら面倒な場合はサクッと [ansible](https://docs.ansible.com/ansible/latest/cli/ansible.html) コマンドで見てみることも出来ます。


---
## setup module

![image.png](https://qiita-image-store.s3.amazonaws.com/0/300876/95baf166-e979-a834-a6fa-bb01296acd02.png)

:scroll: [setup – Gathers facts about remote hosts — Ansible Documentation](https://docs.ansible.com/ansible/latest/modules/setup_module.html)

---
## setup module

setupモジュールで確認出来ることは限られていますが、サクッと眺めるにはとても便利です。
手作業で基本的な内容を確認するよりははるかに早いので知っておくと役に立つかな。


---
## ansible -m setup

```shell:ansible
$ ansible -i host, all -m setup
```

基本形

---
## ansible -m setup

```shell:ansible
$ ansible -i host, all -m setup
```

ホストが適切に設定されていればこれで

---
## ansible -m setup

```shell:ansible
$ ansible -i host:port, all -m setup
```

ポート番号指定

---
## ansible -m setup

```shell:ansible
$ ansible -i hosts, target -m setup
```

インベントリファイルあるなら話は早い

:scroll: [Working with Inventory — Ansible Documentation](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#groups-of-groups-and-group-variables)


---
## ansible -m setup

```shell:ansible
$ ansible -i host, all -m setup -u user
```

ユーザー指定

> -u <REMOTE_USER>, --user <REMOTE_USER>
> connect as this user (default=None)


---
## ansible -m setup

```shell:ansible
$ ansible -i host, all -m setup --key-file path-to-key
```
鍵指定

> --private-key, --key-file
> use this file to authenticate the connection

---
## ansible -m setup

```shell:ansible
$ ansible -i host, all -m setup -u user -k 
```

パスワード認証(非推奨)

> -k, --ask-pass
> ask for connection password

---
## ansible -h

`ansible -h` or `ansible --help`

まずはざっと読もう、約束だよ!!

- :no_good: `ggrks`
- :+1: `ansible --help`

:scroll: [ansible — Ansible Documentation](https://docs.ansible.com/ansible/latest/cli/ansible.html)

---
# だがしかし

手作業で試行錯誤しないと身に付かないことも多いのでそれはそれで大切だと思います。

---
# がんばろう

ホストに `sl` が仕込まれていないことを祈りつつ頑張って調査しよー



---
# 参考

- [Ansible is Simple IT Automation](https://www.ansible.com/)
- [Using Variables — Ansible Documentation](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variables-discovered-from-systems-facts)
- [setup – Gathers facts about remote hosts — Ansible Documentation](https://docs.ansible.com/ansible/latest/modules/setup_module.html)


---

# いかがでしたか?

色々覚えて楽しよう

Happy Ansibling!!