LoginSignup
4
3

More than 5 years have passed since last update.

iPython-notebook & ansible on CentOS7

Posted at

はじめに

ここでは iPython-notebook と ansible を CentOS7 上にインストールする方法と、iPython-notebook 上で ansible コマンドを実行し、別ホストのユーザーでコマンドを実行する一例を述べます。

iPython-notebookに関しては、下記の記事がとてもわかりやすかったです。(ついでに公式も)

インストール

sudo yum -y update
sudo yum -y install python-pip python-devel gcc gcc-c++ epel-release sshpass
sudo pip install jinja2 tornado pyzmq ipython paramiko pyyaml httplib2 ansible requests

iPython-notebook

iPython-notebook で使用するポート

CentOS7でのfirewall設定例。
ここでは8888をpublicにしています。

sudo firewall-cmd --list-all --zone=public
sudo firewall-cmd --add-port=8888/tcp --zone=public --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all --zone=public

iPython-notebook を起動

notebook-dirは任意の場所でOKです。
永続化するのであれば & を最後に付けましょう。

mkdir /tmp/notebook
ipython notebook --no-browser --ip=0.0.0.0 --port=8888 --notebook-dir=/tmp/notebook

これで8888番ポートにブラウザからアクセスすると、iPython-notebookが使用できます。

ansible

ansible を使うため、ホストをもう1台用意します。
ここでは、ホストAに ipython-notebook, ansible をインストールし、もう一方のホストBを notebook 上で操作することを目的とします。

ホストAの設定

ここで生成した公開鍵はホストBで使用します。

mkdir -p /etc/ansible
echo "[defaults]" > /etc/ansible/ansible.cfg
echo "host_key_checking = False" >> /etc/ansible/ansible.cfg
cd /tmp/notebook
ssh-keygen -t rsa -f id_rsa -C "" -N ""

続いて、 ansible 用の inventry ファイルを作成します。
xxx.xxx.xxx.xxx はホストBのアドレスを書いて下さい。

echo 'xxx.xxx.xxx.xxx ansible_ssh_user=ansible' >> /tmp/inventry

ホストBの設定

こちらで ansible ユーザーを作成し、ホストAで生成した公開鍵をauthorized_keysに設定します。

sudo adduser ansible --disabled-password
sudo mkdir /home/ansible/.ssh
sudo vim /home/ansible/.ssh/authorized_keys
sudo echo ansible ALL=\(ALL\) NOPASSWD: ALL > /etc/sudoers.d/ansible
sudo chmod 440 /etc/sudoers.d/ansible

ansible を実行

まずは iPython-notebook を起動します。
これまでの設定の場合、ブラウザの notebook 上で下記のように実行することで、ホストB内のansibleユーザーを使うことができます。

!ansible --sudo -a "sh -c 'touch hoge.txt'" --private-key /tmp/notebook/id_rsa -i /tmp/inventry xxx.xxx.xxx.xxx

おわりに

iPython-notebook は出力結果が残るので、作業履歴が明確になります。自分が見直すときも良いですが、引き継ぎにもnotebookを渡すだけで済みそうです。

使い道はいろいろあると思いますので、各々のベストプラクティスを探してみてはいかがでしょうか?

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3