Help us understand the problem. What is going on with this article?

iPython-notebook & ansible on CentOS7

More than 3 years have passed since last update.

はじめに

ここでは 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を渡すだけで済みそうです。

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした