読者です 読者をやめる 読者になる 読者になる

cloverrose's blog

Python, Machine learning, Emacs, CI/CD, Webアプリなど

Ansible Tutorial のscp部分がいまいちわからなかったのでいろいろの方法でやってみた

Ansible ssh

自分がscp(ssh)に詳しくなかったため、Ansible Tutorialの次の部分がどういうものかわからなかった。

$ vagrant ssh-config node1 > ssh_config
$ vagrant ssh-config node2 >> ssh_config
$ scp -F ssh_config ~/.vagrant.d/insecure_private_key node1:.ssh/id_rsa
scp(ssh)について調べた

.ssh/configの書き方 - ぷろぐらまはっくす MkⅡを見ると、~/.ssh/configというssh周りの設定ファイルがあることがわかった

1-2行目

vagrant ssh-config [VM name]でその~/.ssh/config形式の出力が得られる。

3行目

scpの-Fオプションで標準の~/.ssh/configではなくて任意のconfigファイルを指定することができる。
この行で出現するnode1はこのssh_configに書かれているので使える。

いろいろな方法でやってみた

別のやり方1

上の3行で行いたいことを別のやり方でやる。まずはssh_configではなくて標準のconfigファイルを使うと次のようになる。

$ vagrant ssh-config node1 >> ~/.ssh/config
$ scp ~/.vagrant.d/insecure_private_key node1:.ssh/id_rsa
別のやり方2

さらに、configファイルを使わない方法

$ scp ~/.vagrant.d/insecure_private_key vagrant@192.168.33.11:~/.ssh/id_rsa
...
Are you sure you want to continue connecting (yes/no)? yes
...
vagrant@192.168.33.11's password:vagrant
別のやり方3

さらに、Vagrantの共有ディレクトリ機能を使えばscpを使わなくてもできる。

$ cp ~/.vagrant.d/insecure_private_key ./  # copy key file to current dir(where VagrantFile exists)
$ vagrant ssh node1
vagrant@precise32:~$ mv /vagrant/insecure_private_key ~/.ssh/id_rsa


いろいろな方法でやることでscp(ssh)やAnsibleの共有ディレクトリの理解が少し進んだ