DockerHubを活用してAnsible
のPlaybookを自動ビルドする
tech-circle #6 LT
2015/6/8
@shiraco
自己紹介
白石康司
@shiraco
TIS株式会社 戦略技術センター
Tech-Circle 運営スタッフ
機械学習/自然言語処理
Python/R言語
最近の仕事:ロボットの対話エンジンの開発
構成管理ツール導入の動機
• めったにやらないけど、複雑なので毎回ハマる
機械学習の開発環境構築を再実行可能にする
• ブラックボックス化しがちで、だれが作ったか
わからなくなるデモ環境構築を見える化する
Ansibleに注目している理由
• 複雑な環境構築手順でも確実に再現できる
• コマンドと大体1:1のタスクで記述可能
• 覚えることが少なく、誰でも簡単に扱える
• YAMLでサーバの状態を共有(Python知らないメンバーでも大丈夫)
WEB APP DB
・task1
・task2
・task3
・task1
・task2
・task3
・task1
・task2
・task3
15min. ok
Ansibleの課題
• デバッグに時間がかかる
• Playbookが動作確認済の状態かどうか分からない
・task1
・task2
・task3
・task1
・task2
・task3
10min. ok
20min. error
・task1
・task2
・task3
・task1
・task2
・task3
? ? ?
Playbookを自動でビルドしたい
Playbookをビルド結果とセットで管理したい
ansible-docker-base
ansible-docker-base
• AnsibleのみインストールされているDockerコンテナ
• Ubuntu版とCentOS版がある
• Ansibleを実行するだけのサンプルDockerfileあり
• DockerHubでDockerfileを自動ビルドできる
DockerとDockerHub
Docker
• Docker社が開発しているオー
プンソースのコンテナ型仮想
化ソフトウェア
• Ansibleと違って起点を明示的
に指定するため冪等性を考慮
する必要がない
DockerHub
• Docker向けのコンテナ共有ク
ラウドサービス(SaaS)
• GitHubのリポジトリと1:1
で連携することができる
• ビルド、テスト、デプロイの
一連の継続的インテグレーショ
ンを実現
例えば
ansible
めったにやらないので
毎回ハマる機械学習の開発環境構築を
Ansibleで実行する
python3
pyenv
python libraries
playbook
numpy
scikit-
learn
scipy
ipython
Trial & Error
でPlaybookを作成
docker container
ansible
めったにやらないので
毎回ハマる機械学習の開発環境構築を
Ansibleで実行する
python3
pyenv
python libraries
playbook
numpy
scikit-
learn
scipy
ipython
Dockerfile
ipython notebook
ディレクトリ構成
FROM ansible/ubuntu14.04-ansible:stable
# Dockerイメージにansibleディレクトリを追加
ADD ansible /srv/example/
WORKDIR /srv/example
# Playbookをローカルマシンで実行
RUN ansible-playbook site.yml -c local
# 動作確認のための設定
EXPOSE 22 3000 80
.
├── Dockerfile
└── ansible
├── hosts
├── roles
│   ├── common
│   └── ipython
└── site.yml
要注意
• ansible-docker-baseのコンテナにはubuntuユーザや、centosユーザが居な
い
• remote_userにubuntu/centosを指定している場合、事前にrootでユーザを
作る必要がある
• さらに、AWSなどの場合、rootユーザでは接続できないのでubnutu
ユーザチェックが必要
---
- name: create ubuntu group
group: name=ubuntu state=present gid=1000
- name: create ubuntu user
user: name=ubuntu shell=/bin/bash groups=ubuntu uid=1000
要注意
• 環境が必ずしも一致しているとは限らない
• aptitudeがなくて怒られる
DockerHubでPlaybookの状態がわかる!
まとめ
• Dockerの知識なしに安易にDockerHubでPlaybook
をビルドしようとするとうまくいかないよ
• Dockerもちゃんと抑えて(理解して)有効活用し
よう
Thank you!

More Related Content

PPTX
社内勉強会1 go lang
PPTX
PDP-11のインタプリタを作った話
PPTX
210630 python
PDF
anybuild/Hosting casual #1
PPTX
Mult-channel network scheme
PPTX
Abpro
PDF
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」
PDF
TOPPERSプロジェクトの紹介 OSC2017 Tokyo Fall
社内勉強会1 go lang
PDP-11のインタプリタを作った話
210630 python
anybuild/Hosting casual #1
Mult-channel network scheme
Abpro
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」
TOPPERSプロジェクトの紹介 OSC2017 Tokyo Fall

Viewers also liked (12)

PDF
Ansible Playbookの短時間デバッグ方法
PDF
Ansibleは簡単なIT自動化
PDF
Ansible モジュール 作成・配布・貢献
PDF
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA
PDF
Re: ご注文は自動化ですか?[2]
PDF
Ansibleを使ってみよう ~Windowsターゲット編~
PPTX
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
PDF
Okinawa Open Days 2015 Handson - Ansible
PDF
Ansible 2.0を使って組む kubernetesクラスタ vol.1
PDF
Ansible の CI を drone/Dokcker で試してみた
PDF
【dots. IT勉強会】開発環境のDocker化
PDF
AnsibleをWerckerでCIして
テストが終わると
本番環境が出来てる話
Ansible Playbookの短時間デバッグ方法
Ansibleは簡単なIT自動化
Ansible モジュール 作成・配布・貢献
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA
Re: ご注文は自動化ですか?[2]
Ansibleを使ってみよう ~Windowsターゲット編~
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
Okinawa Open Days 2015 Handson - Ansible
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible の CI を drone/Dokcker で試してみた
【dots. IT勉強会】開発環境のDocker化
AnsibleをWerckerでCIして
テストが終わると
本番環境が出来てる話
Ad

Similar to DockerHubを活用してAnsibleのPlaybookを自動ビルドする (20)

PPTX
Dockerを使ってみよう
PPTX
DockerでJupyter使おうぜ
PDF
20120927 findjob4 dev_ops
PDF
Cloudn PaaSチームのChatOps実践
PDF
vscode pipenv docker
PDF
.NET Coreとツール類の今
PDF
make x dockerで作るAlpaca流開発環境
PPTX
Confluence と DITA による Webマニュアル作成フロー
PDF
仮想マシンを使った開発環境の簡単共有方法
PDF
私とOSSの25年
PDF
ChainerMNをDocker containerで動かす
PDF
TOPPERS as an IoT OS(kernel)
PDF
PythonのGUI_2018 with NSEG
PDF
ゼロからのプログラミングRails講座 Codeanywhere版
PDF
Devとopsをつなぐchat ops
PPTX
K8sjp11 KubeCon-Recap Multi-Cluster Operations
PDF
地方企業がソーシャルゲーム開発を成功させるための10のポイント
PDF
PDF
"Continuous Publication" with Python: Another Approach
KEY
HTML5時代のwebクリエイターに必要なこと
Dockerを使ってみよう
DockerでJupyter使おうぜ
20120927 findjob4 dev_ops
Cloudn PaaSチームのChatOps実践
vscode pipenv docker
.NET Coreとツール類の今
make x dockerで作るAlpaca流開発環境
Confluence と DITA による Webマニュアル作成フロー
仮想マシンを使った開発環境の簡単共有方法
私とOSSの25年
ChainerMNをDocker containerで動かす
TOPPERS as an IoT OS(kernel)
PythonのGUI_2018 with NSEG
ゼロからのプログラミングRails講座 Codeanywhere版
Devとopsをつなぐchat ops
K8sjp11 KubeCon-Recap Multi-Cluster Operations
地方企業がソーシャルゲーム開発を成功させるための10のポイント
"Continuous Publication" with Python: Another Approach
HTML5時代のwebクリエイターに必要なこと
Ad

More from Koji Shiraishi (10)

PDF
りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -
PPTX
Salon Bot 〜ヘアサロンLINEアシスタントの対話を Repl-AIを使ってプロトタイピング〜
PDF
IT勉強会を支えるコミュニケーション
PDF
MFT打上げLT
PDF
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
PDF
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
PDF
Techcircle005 welcome
PDF
Techcircle001-OpenStackハンズオン勉強会
PDF
SwiftとCocoaPodsで始めるサクサクiOS開発!
PDF
セマンティック・ウェブのためのRDF/OWL 入門 6章 後半
りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -
Salon Bot 〜ヘアサロンLINEアシスタントの対話を Repl-AIを使ってプロトタイピング〜
IT勉強会を支えるコミュニケーション
MFT打上げLT
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Techcircle005 welcome
Techcircle001-OpenStackハンズオン勉強会
SwiftとCocoaPodsで始めるサクサクiOS開発!
セマンティック・ウェブのためのRDF/OWL 入門 6章 後半

DockerHubを活用してAnsibleのPlaybookを自動ビルドする