SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
オープンクラウド・キャンパス



Linux KVMとKickStartとPuppetと
GitHubで作るパーソナルクラウド




          Ver1.0 2012/12/16
       中井悦司 (Twitter @enakai00)
クラウドが実現するソフト開発・運用の変革と自動化

    自己紹介
     中井悦司(なかいえつじ)
       – Twitter @enakai00

     日々の仕事
       – Senior Solution Architect and
         Cloud Evangelist at Red Hat K.K.   好評発売中
         企業システムでオープンソースの活用を希望される
         お客様を全力でご支援させていただきます。


     昔とった杵柄
       – 素粒子論の研究(超弦理論とか)
       – 予備校講師(物理担当)
       – インフラエンジニア(Unix/Linux専門)




2                                                   Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    最近やってること (1)
                                                             特にQuantum関係




    http://www.slideshare.net/enakai/how-quantum-configures-virtual-networks-under-the-hood

3                                                                                 Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    最近やってること (2)

                                                        自動化ツールの研究




              http://www.slideshare.net/enakai/ss-15242229

4                                                              Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    Aeolus Conductor           「Aeolus(アイオロス)でRHELonEC2を利用する」
                                               http://bit.ly/QzniL4


     複数クラウドに対応したイメージ作成/アプリケーション環境構築の自動化ツール




5                                                       Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    「パーソナルクラウド」における自動化の実例
                                                                                                Github
     図の①〜③を1つの設定ファイルを元に自動実行するスクリプト
      を作成して、「パーソナルクラウド」として活用

    OS/アプリケーション                                                            アプリ設定情報
                                      OS構成情報
        パッケージ                                                          (Puppet Manifest)
                                      (KickStartファイル)


                         Kickstart                    ③ アプリ導入/設定
        YUM                                                Git/Puppet
       リポジトリ                  ② OS/アプリ導入
                                                                                           設定ファイルの
                                                                                           バージョン管理
                              VM                               ① VM作成
        Apache                                                                     VM構成情報
      HTTP Server                             KVM                                  (virt-installコマンドの
                                                                                   パラメータ群)

                      Red Hat Enterprise Linux 6           libvirt
                            x86_64サーバ

     詳細は「アプリケーション環境構築の自動化をまじめに考えてみる(1)〜(4)」を参照
6    http://bit.ly/SRfpwb http://bit.ly/O9xgAa http://bit.ly/Qij9Gx http://bit.ly/QB9POk      Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    主な利用ツール (1)

     libvirt
       – Linux KVM, Xen, LXC などの仮想化環境をプログラムから操作するための標準ライブラ
         リ(C言語、Pythonなどから利用可能)。
       – VM、仮想ディスクイメージ、仮想ネットワークの作成・操作が可能。
       – ここでは、libvirtを利用したコマンドvirt-installを使って、VMの自動作成を行なってい
         る。


     virt-installのコマンドオプションの例
      # virt-install 
                --name ${vmname} 
                --vcpus ${vcpus} 
                --ram ${ram} 
                --disk path=${diskpath},size=${disksize},sparse=false 
                --network ${network} 
                --os-variant ${os-variant} 
                --location ${url} 
                --vnc




7                                                                         Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    主な利用ツール (2)

     KickStart                  KickStartファイルの例
       – RHELのインストーラ(Anaconda)   url --url=${url}
        の一機能。GUIインストーラで入力す       lang ja_JP.UTF-8
        る項目を事前に書き込んだテキスト         keyboard jp106
                                 network --onboot yes --device eth0 --bootproto
        ファイル(KickStartファイル)を利    static --ip ${ip} --netmask ${netmask}
        用して、RHELのインストールを全自       --gateway ${gateway} --nameserver ${nameserver}
        動で行う。                    --hostname ${hostname}
                                 rootpw passw0rd
       – インストール後に指定のスクリプト        timezone --isUtc Asia/Tokyo
                                 bootloader --location=mbr
         (Postスクリプト)を実行すること
                                 zerombr
         ができる。                   clearpart --initlabel --drives=vda
       – ここでは、RHELを自動インストール      part /boot --fstype=ext4 --size=500
                                 part swap --size=1024
         した後に、Git/Puppetによるアプリ   part / --fstype=ext4 --grow --size=200
         ケーション導入・設定をキックしてい       reboot
                                 %packages
         る。
                                 @base
                                 @core
                                 @japanese-support
                                 %end
                                 %post --log=/root/anaconda-post.log
                                 set -x
                                 echo "${ip}    ${hostname}" >> /etc/hosts
                                 %end

8                                                                   Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    主な利用ツール (3)
                             Puppetマニフェストの例
     Puppet
                             class pgsql {
      – OS/アプリケーションの構成管理       service { 'postgresql':
        ツール。「あるべき状態」を宣言的         name
                                 ensure
                                           => 'postgresql',
                                           => running,
        に記述した「マニフェスト」に従っ         enable    => true,
                                 subscribe => Package['postgresql-server'],
        て、アプリケーションの導入、設定       }
        ファイルの書き換えなどを自動実行       package { 'postgresql-server':
        する。                      name   => 'postgresql-server',
                                 ensure => installed,
      – 管理対象サーバが多数ある場合は、       }
        専用の「Puppetサーバ」からマニ     file { '/var/lib/pgsql/data/postgresql.conf':
        フェストの配布を行うクライアン          owner   => 'postgres',
                                 group   => 'postgres',
        ト・サーバモデルで使用する。           mode    => '0600',
                                 source => "$FACTER_manifest_dir/dist/postgresql.conf",
      – ここでは、Puppetサーバは使わず       notify => Service['postgresql'],
        に、Githubからマニフェストをダ     }
                                 require => Exec['initdb'],

        ウンロードして、直接に適用する形
                              exec { 'initdb':
        で利用している。                path      => '/sbin',
                                command   => 'service postgresql initdb',
                                logoutput => true,
                                creates   => '/var/lib/pgsql/data/PG_VERSION',
                                before    => Service['postgresql'],
                                require   => Package['postgresql-server'],
                                notify    => Exec['init_pw'],
                              }
                             ・・・

9                                                                       Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 主な利用ツール (4)

  Git
      – プログラムソースコードの分散バージョン管理システム。元々はLinux Kernelの開発用に
        作成された。インターネット上にコードリポジトリを作成して無料で利用できるサービ
        ス「Github」の登場により、利用者が増加した。
      – ここでは、Puppetの設定ファイル(マニフェスト)をGithubにおいて、Kickstartの
        Postスクリプトから、指定バージョンのマニフェストのダウンロードと適用を実行して
        いる。

     Githubからマニフェストを取得して適用するスクリプトの例
     mkdir -p /tmp/gittmp
     cd /tmp/gittmp
     git clone $GitRepository
     cd $RepoName
     git checkout $ConfigTag
     export FACTER_manifest_dir="/tmp/gittmp/$RepoName"
     puppet main.pp




10                                                        Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 (参考)Githubのスクリーンショット



                             リポジトリの公開URL




                            過去の変更履歴を
                              全て保存

      特定の時点のコードを
        タグ名で指定


11                                     Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 「パーソナルクラウド」自動化における考察

  便利な点
     – 設定ファイルの再利用性
       • テキストファイルにすべての設定が記録されているので、設定変更が簡単で、少しづ
         つ設定の異なる類似環境を何度でも再構築できる。
       • Puppetのマニフェストがバージョン管理されているので、バージョン番号を指定す
         るだけで、特定バージョンの設定が適用できる。            Github
  不便な点
     – 単一の物理サーバが前提
       • 複数の物理サーバへのデプロイはできない。     v1.0   v1.1
     – 複数VMの依存関係が扱えない
       • Puppetはサーバ間の依存関係を解決する機能がないので、「DBサーバとWebサーバ
         を連携させる」ような設定はできない。
       • 現状では、必要な際は、手続き型のスクリプトで連携処理を行なっている。(ので、
         Puppetの「宣言的記述」のメリットが半減してしまう。)


     ⇒ 本格的な自動化ツールでは、複数ノードへのデプロイと複数VMの依存関係の取り扱い 
      が必要。
12                                              Open Cloud Campus
オープンクラウド・キャンパス



クラウドの自動化とソフトウェア開発の
 未来を一緒に考えて行きましょう!




            中井悦司
       Twitter @enakai00

Weitere ähnliche Inhalte

Was ist angesagt?

OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2Etsuji Nakai
 
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニックRed Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニックEtsuji Nakai
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションMasahito Zembutsu
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2Etsuji Nakai
 
OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習Etsuji Nakai
 
RHEL Atomic Hostのご紹介
RHEL Atomic Hostのご紹介RHEL Atomic Hostのご紹介
RHEL Atomic Hostのご紹介Etsuji Nakai
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~Masaomi Kudo
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2Etsuji Nakai
 
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINARVirtualTech Japan Inc.
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1Etsuji Nakai
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
DockerクイックツアーEtsuji Nakai
 
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Masahito Zembutsu
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Emma Haruka Iwao
 
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Emma Haruka Iwao
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようmookjp
 
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulicDocker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ puliccyberblack28 Ichikawa
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介Masahito Zembutsu
 

Was ist angesagt? (20)

OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
 
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニックRed Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
 
OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習
 
RHEL Atomic Hostのご紹介
RHEL Atomic Hostのご紹介RHEL Atomic Hostのご紹介
RHEL Atomic Hostのご紹介
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
 
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
 
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
 
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulicDocker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介
 
Docker入門
Docker入門Docker入門
Docker入門
 

Andere mochten auch

試して学べるクラウド技術! Eucalyptus/AeolusConductor
試して学べるクラウド技術! Eucalyptus/AeolusConductor試して学べるクラウド技術! Eucalyptus/AeolusConductor
試して学べるクラウド技術! Eucalyptus/AeolusConductorEtsuji Nakai
 
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」Etsuji Nakai
 
Yet another acronym for Eucalyptus
Yet another acronym for EucalyptusYet another acronym for Eucalyptus
Yet another acronym for EucalyptusEtsuji Nakai
 
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみましたEucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみましたEtsuji Nakai
 
Comparing GlusterFS-SwiftAPI with Original Swift
Comparing GlusterFS-SwiftAPI with Original SwiftComparing GlusterFS-SwiftAPI with Original Swift
Comparing GlusterFS-SwiftAPI with Original SwiftEtsuji Nakai
 
仮想化&クラウドで活用!自動化ツールの基礎
仮想化&クラウドで活用!自動化ツールの基礎仮想化&クラウドで活用!自動化ツールの基礎
仮想化&クラウドで活用!自動化ツールの基礎Etsuji Nakai
 
SDN界隈の用語・考え方をざっくりまとめます。
SDN界隈の用語・考え方をざっくりまとめます。SDN界隈の用語・考え方をざっくりまとめます。
SDN界隈の用語・考え方をざっくりまとめます。Etsuji Nakai
 
Deploying Baremetal Instances with OpenStack
Deploying Baremetal Instances with OpenStackDeploying Baremetal Instances with OpenStack
Deploying Baremetal Instances with OpenStackEtsuji Nakai
 
Your first dive into systemd!
Your first dive into systemd!Your first dive into systemd!
Your first dive into systemd!Etsuji Nakai
 
Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221Etsuji Nakai
 
クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!Etsuji Nakai
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShiftEtsuji Nakai
 
RDOとPackstackのご紹介
RDOとPackstackのご紹介RDOとPackstackのご紹介
RDOとPackstackのご紹介Etsuji Nakai
 
完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワーク完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワークEtsuji Nakai
 
Inside Docker for Fedora20/RHEL7
Inside Docker for Fedora20/RHEL7Inside Docker for Fedora20/RHEL7
Inside Docker for Fedora20/RHEL7Etsuji Nakai
 
"Summarize and Express” Training in English
"Summarize and Express” Training in English"Summarize and Express” Training in English
"Summarize and Express” Training in EnglishEtsuji Nakai
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門Etsuji Nakai
 
ITエンジニアのための英語勉強法
ITエンジニアのための英語勉強法ITエンジニアのための英語勉強法
ITエンジニアのための英語勉強法Etsuji Nakai
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat StorageEtsuji Nakai
 

Andere mochten auch (20)

試して学べるクラウド技術! Eucalyptus/AeolusConductor
試して学べるクラウド技術! Eucalyptus/AeolusConductor試して学べるクラウド技術! Eucalyptus/AeolusConductor
試して学べるクラウド技術! Eucalyptus/AeolusConductor
 
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
 
Yet another acronym for Eucalyptus
Yet another acronym for EucalyptusYet another acronym for Eucalyptus
Yet another acronym for Eucalyptus
 
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみましたEucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
 
Comparing GlusterFS-SwiftAPI with Original Swift
Comparing GlusterFS-SwiftAPI with Original SwiftComparing GlusterFS-SwiftAPI with Original Swift
Comparing GlusterFS-SwiftAPI with Original Swift
 
仮想化&クラウドで活用!自動化ツールの基礎
仮想化&クラウドで活用!自動化ツールの基礎仮想化&クラウドで活用!自動化ツールの基礎
仮想化&クラウドで活用!自動化ツールの基礎
 
SDN界隈の用語・考え方をざっくりまとめます。
SDN界隈の用語・考え方をざっくりまとめます。SDN界隈の用語・考え方をざっくりまとめます。
SDN界隈の用語・考え方をざっくりまとめます。
 
Deploying Baremetal Instances with OpenStack
Deploying Baremetal Instances with OpenStackDeploying Baremetal Instances with OpenStack
Deploying Baremetal Instances with OpenStack
 
Your first dive into systemd!
Your first dive into systemd!Your first dive into systemd!
Your first dive into systemd!
 
Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221
 
クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
RDOとPackstackのご紹介
RDOとPackstackのご紹介RDOとPackstackのご紹介
RDOとPackstackのご紹介
 
完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワーク完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワーク
 
Inside Docker for Fedora20/RHEL7
Inside Docker for Fedora20/RHEL7Inside Docker for Fedora20/RHEL7
Inside Docker for Fedora20/RHEL7
 
"Summarize and Express” Training in English
"Summarize and Express” Training in English"Summarize and Express” Training in English
"Summarize and Express” Training in English
 
Life with jupyter
Life with jupyterLife with jupyter
Life with jupyter
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門
 
ITエンジニアのための英語勉強法
ITエンジニアのための英語勉強法ITエンジニアのための英語勉強法
ITエンジニアのための英語勉強法
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
 

Ähnlich wie Personal Cloud Automation

環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929hiro345
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようMidori Oge
 
Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Etsuji Nakai
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
クックパッドのスケーリング
クックパッドのスケーリングクックパッドのスケーリング
クックパッドのスケーリングSatoshi Takada
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaYuta Kawadai
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...Naoto Gohko
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介Midori Oge
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...NTT DATA Technology & Innovation
 
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-clusterKubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-clusterPreferred Networks
 

Ähnlich wie Personal Cloud Automation (20)

環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
Capistrano
CapistranoCapistrano
Capistrano
 
クックパッドのスケーリング
クックパッドのスケーリングクックパッドのスケーリング
クックパッドのスケーリング
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
 
Version管理 1
Version管理 1Version管理 1
Version管理 1
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
 
sveltekit-ja.pdf
sveltekit-ja.pdfsveltekit-ja.pdf
sveltekit-ja.pdf
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-clusterKubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
 

Mehr von Etsuji Nakai

「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考えるEtsuji Nakai
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Etsuji Nakai
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowEtsuji Nakai
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスEtsuji Nakai
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモEtsuji Nakai
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English LearningEtsuji Nakai
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎Etsuji Nakai
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門Etsuji Nakai
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2Etsuji Nakai
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersEtsuji Nakai
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterEtsuji Nakai
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginnersEtsuji Nakai
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQNEtsuji Nakai
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかEtsuji Nakai
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜Etsuji Nakai
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftEtsuji Nakai
 
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)Etsuji Nakai
 

Mehr von Etsuji Nakai (20)

PRML11.2-11.3
PRML11.2-11.3PRML11.2-11.3
PRML11.2-11.3
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlow
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービス
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English Learning
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application Developers
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with Jupyter
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginners
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
PRML7.2
PRML7.2PRML7.2
PRML7.2
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
 
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
 

Personal Cloud Automation

  • 2. クラウドが実現するソフト開発・運用の変革と自動化 自己紹介  中井悦司(なかいえつじ) – Twitter @enakai00  日々の仕事 – Senior Solution Architect and Cloud Evangelist at Red Hat K.K. 好評発売中 企業システムでオープンソースの活用を希望される お客様を全力でご支援させていただきます。  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門) 2 Open Cloud Campus
  • 3. クラウドが実現するソフト開発・運用の変革と自動化 最近やってること (1) 特にQuantum関係 http://www.slideshare.net/enakai/how-quantum-configures-virtual-networks-under-the-hood 3 Open Cloud Campus
  • 4. クラウドが実現するソフト開発・運用の変革と自動化 最近やってること (2) 自動化ツールの研究 http://www.slideshare.net/enakai/ss-15242229 4 Open Cloud Campus
  • 5. クラウドが実現するソフト開発・運用の変革と自動化 Aeolus Conductor 「Aeolus(アイオロス)でRHELonEC2を利用する」 http://bit.ly/QzniL4  複数クラウドに対応したイメージ作成/アプリケーション環境構築の自動化ツール 5 Open Cloud Campus
  • 6. クラウドが実現するソフト開発・運用の変革と自動化 「パーソナルクラウド」における自動化の実例 Github  図の①〜③を1つの設定ファイルを元に自動実行するスクリプト を作成して、「パーソナルクラウド」として活用 OS/アプリケーション アプリ設定情報 OS構成情報 パッケージ (Puppet Manifest) (KickStartファイル) Kickstart ③ アプリ導入/設定 YUM Git/Puppet リポジトリ ② OS/アプリ導入 設定ファイルの バージョン管理 VM ① VM作成 Apache VM構成情報 HTTP Server KVM (virt-installコマンドの パラメータ群) Red Hat Enterprise Linux 6 libvirt x86_64サーバ 詳細は「アプリケーション環境構築の自動化をまじめに考えてみる(1)〜(4)」を参照 6 http://bit.ly/SRfpwb http://bit.ly/O9xgAa http://bit.ly/Qij9Gx http://bit.ly/QB9POk Open Cloud Campus
  • 7. クラウドが実現するソフト開発・運用の変革と自動化 主な利用ツール (1)  libvirt – Linux KVM, Xen, LXC などの仮想化環境をプログラムから操作するための標準ライブラ リ(C言語、Pythonなどから利用可能)。 – VM、仮想ディスクイメージ、仮想ネットワークの作成・操作が可能。 – ここでは、libvirtを利用したコマンドvirt-installを使って、VMの自動作成を行なってい る。 virt-installのコマンドオプションの例 # virt-install --name ${vmname} --vcpus ${vcpus} --ram ${ram} --disk path=${diskpath},size=${disksize},sparse=false --network ${network} --os-variant ${os-variant} --location ${url} --vnc 7 Open Cloud Campus
  • 8. クラウドが実現するソフト開発・運用の変革と自動化 主な利用ツール (2)  KickStart KickStartファイルの例 – RHELのインストーラ(Anaconda) url --url=${url} の一機能。GUIインストーラで入力す lang ja_JP.UTF-8 る項目を事前に書き込んだテキスト keyboard jp106 network --onboot yes --device eth0 --bootproto ファイル(KickStartファイル)を利 static --ip ${ip} --netmask ${netmask} 用して、RHELのインストールを全自 --gateway ${gateway} --nameserver ${nameserver} 動で行う。 --hostname ${hostname} rootpw passw0rd – インストール後に指定のスクリプト timezone --isUtc Asia/Tokyo bootloader --location=mbr (Postスクリプト)を実行すること zerombr ができる。 clearpart --initlabel --drives=vda – ここでは、RHELを自動インストール part /boot --fstype=ext4 --size=500 part swap --size=1024 した後に、Git/Puppetによるアプリ part / --fstype=ext4 --grow --size=200 ケーション導入・設定をキックしてい reboot %packages る。 @base @core @japanese-support %end %post --log=/root/anaconda-post.log set -x echo "${ip} ${hostname}" >> /etc/hosts %end 8 Open Cloud Campus
  • 9. クラウドが実現するソフト開発・運用の変革と自動化 主な利用ツール (3) Puppetマニフェストの例  Puppet class pgsql { – OS/アプリケーションの構成管理 service { 'postgresql': ツール。「あるべき状態」を宣言的 name ensure => 'postgresql', => running, に記述した「マニフェスト」に従っ enable => true, subscribe => Package['postgresql-server'], て、アプリケーションの導入、設定 } ファイルの書き換えなどを自動実行 package { 'postgresql-server': する。 name => 'postgresql-server', ensure => installed, – 管理対象サーバが多数ある場合は、 } 専用の「Puppetサーバ」からマニ file { '/var/lib/pgsql/data/postgresql.conf': フェストの配布を行うクライアン owner => 'postgres', group => 'postgres', ト・サーバモデルで使用する。 mode => '0600', source => "$FACTER_manifest_dir/dist/postgresql.conf", – ここでは、Puppetサーバは使わず notify => Service['postgresql'], に、Githubからマニフェストをダ } require => Exec['initdb'], ウンロードして、直接に適用する形 exec { 'initdb': で利用している。 path => '/sbin', command => 'service postgresql initdb', logoutput => true, creates => '/var/lib/pgsql/data/PG_VERSION', before => Service['postgresql'], require => Package['postgresql-server'], notify => Exec['init_pw'], } ・・・ 9 Open Cloud Campus
  • 10. クラウドが実現するソフト開発・運用の変革と自動化 主な利用ツール (4)  Git – プログラムソースコードの分散バージョン管理システム。元々はLinux Kernelの開発用に 作成された。インターネット上にコードリポジトリを作成して無料で利用できるサービ ス「Github」の登場により、利用者が増加した。 – ここでは、Puppetの設定ファイル(マニフェスト)をGithubにおいて、Kickstartの Postスクリプトから、指定バージョンのマニフェストのダウンロードと適用を実行して いる。 Githubからマニフェストを取得して適用するスクリプトの例 mkdir -p /tmp/gittmp cd /tmp/gittmp git clone $GitRepository cd $RepoName git checkout $ConfigTag export FACTER_manifest_dir="/tmp/gittmp/$RepoName" puppet main.pp 10 Open Cloud Campus
  • 11. クラウドが実現するソフト開発・運用の変革と自動化 (参考)Githubのスクリーンショット リポジトリの公開URL 過去の変更履歴を 全て保存 特定の時点のコードを タグ名で指定 11 Open Cloud Campus
  • 12. クラウドが実現するソフト開発・運用の変革と自動化 「パーソナルクラウド」自動化における考察  便利な点 – 設定ファイルの再利用性 • テキストファイルにすべての設定が記録されているので、設定変更が簡単で、少しづ つ設定の異なる類似環境を何度でも再構築できる。 • Puppetのマニフェストがバージョン管理されているので、バージョン番号を指定す るだけで、特定バージョンの設定が適用できる。 Github  不便な点 – 単一の物理サーバが前提 • 複数の物理サーバへのデプロイはできない。 v1.0 v1.1 – 複数VMの依存関係が扱えない • Puppetはサーバ間の依存関係を解決する機能がないので、「DBサーバとWebサーバ を連携させる」ような設定はできない。 • 現状では、必要な際は、手続き型のスクリプトで連携処理を行なっている。(ので、 Puppetの「宣言的記述」のメリットが半減してしまう。) ⇒ 本格的な自動化ツールでは、複数ノードへのデプロイと複数VMの依存関係の取り扱い   が必要。 12 Open Cloud Campus