SlideShare a Scribd company logo
1 of 14
Download to read offline
Ansible2.0と実⽤例
2016/2/1
OSSラボ株式会社
http://www.ossl.co.jp
TWITTER: http://twitter.com/satoruf
LINKEDIN: http://jp.linkedin.com/in/satorufunai/ja
SLIDESHARE: http://www.slideshare.net/sfunai
FACEBOOK: http://www.facebook.com/satoru.funai
OSSコンソーシアムクラウド部会 第13回部会
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 1
Ansible2.0 新機能
l 内部構造を書き直した
l その他いっぱいありすぎ
l Windows対応
l 140以上の新規モジュールの追加
l openstack, docker, zabbix, vmwareなど
l inventory, connection pluginも追加
l serf, consul, dockerなどからインベントリ情報を取ってこれる
l などなど
l 詳しくはこちら
l https://raw.githubusercontent.com/ansible/ansible/stable-2.0/CHANGELOG.md
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 2
使ってみた機能
l Block
l Expect
l taskレベルで変数の定義、上書き
l Windowsモジュール
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 3
Tomcat 7 install on CentOS 6 #1
# Install tomcat
name: Check Tomcat
file: path=/opt/tomcat
register: result_cat
ignore_errors: True
block:
- name: add group "tomcat”
group: name=tomcat
- name: add user "tomcat”
user: name=tomcat group=tomcat password=password
- name: Download
unarchive: src=http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.65/bin/apache-
tomcat-7.0.65.tar.gz dest=/tmp copy=no
- name: Move tomcat dir
shell: mv /tmp/apache-tomcat-7.0.65 /opt/tomcat creates=/opt/tomcat
- name: Replace config
replace: dest=/opt/tomcat/conf/tomcat-users.xml regexp='{{ item.regexp }}'
replace='{{ item.replace }}’
with_items:
- regexp: ‘^<tomcat-users>’
replace: ’’
- regexp: ‘^</tomcat-users>’
replace: ‘’
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 4
Tomcat 7 install on CentOS 6 #2
- name: Sed config
lineinfile: dest=/opt/tomcat/conf/tomcat-users.xml line='{{ item }}’
with_items:
- ‘<tomcat-users>’
- ‘ <role rolename="manager-script"/>’
- ‘ <user username="tomcat" password="password" roles="manager-script"/>’
- ‘</tomcat-users>’
- name: Change Owner
file: path=/opt/tomcat owner=tomcat group=tomcat recurse=yes
- name: Startup script copy
copy: src=roles/tomcat/files/tomcat dest=/etc/init.d/ mode=755
- name: setenv copy
copy: src=roles/tomcat/files/setenv.sh dest=/opt/tomcat/bin mode=755
when: result_cat|failed
- name: Restart Tomcat
service: name=tomcat state=restarted enabled=yes
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 5
Clean-up Tomcat
#Stop Tomcat
- hosts: all_hosts
remote_user: osslabo
become: yes
vars:
logs:
- /opt/tomcat/logs/localhost*
- /opt/tomcat/logs/catalina.*.log
tasks:
- name: Stop Tomcat
service: name=tomcat pattern=/opt/tomcat state=stopped
register: tomcat_stop
ignore_errors: True
- debug: var=tomcat_stop
- name: Check PID
command: /usr/bin/pgrep -f tomcat
register: pid_result
ignore_errors: True
- debug: var=pid_result
- name: Kill tomcat
command: /usr/bin/pkill -KILL -f tomcat
ignore_errors: True
when: pid_result.rc == 0
- name: Remove logs
shell: find {{logs | join(' ')}} -type f | xargs rm –f
register: remove_result
ignore_errors: True
- debug: var=remove_result
Clean-up Tomcat
file: path={{ item }} state=absent
では、wildcard(*)が使えない
sudoではなく、becomeで他のユーザでも実⾏できる
pgrepで結果がなければ(=プロセスが
ない)、リターンコードは1になる
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 6
expectの例
l 前提条件:python >= 2.6, pexpect >= 3.3
-------
- hosts: localhost
connection: local
tasks:
- name: expect
expect:
command: ssh root@192.168.1.1 echo HOST NAME IS `hostname` ; uname –a
responses:
(?i)password: "Password”
register: get_hostname
- debug: var=get_hostname.stdout_lines
Expectブロックを抜けると、
sshもクローズする
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 7
expectの例実⾏結果
# ansible-playbook test.yml -l localhost
PLAY ***************************************************************************
TASK [setup] *******************************************************************
ok: [localhost]
TASK [expect] ******************************************************************
changed: [localhost]
TASK [debug var=get_hostname.stdout_lines] *************************************
ok: [localhost] => {
"changed": false,
"get_hostname.stdout_lines": [
"root@192.168.1.1's password: ",
"HOST NAME IS example-server",
"Linux example-server 2.6.32-573.3.1.el6.x86_64 #1 SMP Thu Aug 13 22:55:16 UTC
2015 x86_64 x86_64 x86_64 GNU/Linux”
]
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=1 unreachable=0 failed=0
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 8
Registerで取得できる値の例
l モジュールによって異なる
l “changed”: false | true:実⾏結果
l “cmd”: ”…”:実⾏モジュールと内容
l “rc”: 0 | 1 | …:リターンコード
l “stdout”: ”…”:標準出⼒(改⾏⽂字がエスケープされる)
l “stdout_lines”: […]:標準出⼒(splitされ複数⾏になる)
l 条件分岐
l when: result | succeeded, failedではモジュール実⾏結果なので、
shell/commandなどのリターンコードで分岐させたい場合は
l when: result.rc !=0 と使える
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 9
動きが変わったモジュールの例
l Serviceモジュール
- name: Check pacemaker
service: name=pacemaker enabled=yes
register: result_heartbeat
ignore_errors: True
l と書くと、パッケージがインストールされていない場合は、エラーとなったが、2.0からは、インストールされてい
ない場合は、エラーにならない。
l パッケージがインストールされている場合は、今までどおりの起動、停⽌、再起動、⾃動起動させるかを⾏える。
l Packageモジュール(NEW)
l serviceモジュールでインストールパッケージの確認が⾏えなくなったため、2.0以降はpackageモジュールにて⾏う
必要がある
- name: Check pacemaker
package: name=pacemaker
register: result_heartbeat
ignore_errors: True
l Copyモジュールのオプション
l remote_src=Trueを指定することにより、Ansible実⾏ホスト→リモートホストへファイルのコピーではなく、リモー
トホストのファイルをリモートホストの別の場所にコピーを⾏える。
- name: Copy tomcat dir
copy: src=/tmp/apache-tomcat-7.0.65/LICENSE dest=/opt/tomcat remote_src=True directory_mode=yes
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 10
Windowsサポート
l win_acl (E):ファイル/ディレクトリのアクセス権限設定
l win_chocolatey (E):yum/apt-getのようなcliパッケージマ
ネージャ(https://chocolatey.org)を利⽤するパッケージ操
作
l win_copy:ファイル/ディレクトリの転送
l win_dotnet_ngen (E):.NETネイティブ イメージ サービス
を任意に実⾏
l win_environment (E):.NET環境変数の作成変更
l win_feature :Windows Roles/Featuresのインストール/
削除
l win_file :ファイル/ディレクトリの作成/削除
l win_firewall_rule (E):ファイアウオールルールの操作
l win_get_url:URLからのファイルダウンロード
l win_group:ローカルグループの操作
l win_iis_virtualdirectory (E):IIS仮想ディレクトリの操作
l win_iis_webapplication (E:IIS Webアプリケーションの操
作
l win_iis_webapppool (E):IIS Webアプリケーションプール
の操作
l win_iis_webbinding (E) :IIS Webバインドの操作
l win_iis_website (E) :IIS Webサイトの操作
l win_lineinfile:ファイル内の⾏操作
l win_msi:Windows MSIのインストール/削除
l win_nssm (E):NSSM(http://nssm.cc/)を利⽤して任意
のアプリをサービスとして起動する
l win_package (E):ファイル/urlからのインストーラーを
使ったインストール/削除
l win_ping:Windowsへのping
l win_regedit (E):レジストリの操作
l win_scheduled_task (E):タスクの操作
l win_service:Windowsサービスの操作
l win_stat:Windows上のファイルstat
l win_template:Python⽤のテンプレートエンジンjinja2のテ
ンプレートをWindowsに転送
l win_unzip (E):Windows上のzipファイルを解凍
l win_updates (E):Windows更新プログラムの操作
l win_user:ローカルユーザの操作
l win_webpicmd (E):WebPICMD(Web Platform Installer
command-line)を利⽤したパッケージのインストール
http://docs.ansible.com/ansible/list_of_windows_modules.html
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 11
Windows前提条件
l Ansible2.0では、WinRM経由でWindowsに接続する
l PowerShell 3.0<が必要
l Windows 7 SP1, Windows Server 2008 SP1以上
l Windows Server 2008での例
l 以下のファイルをダウンロードし実⾏する
l Microsoft .NET Framework 4.5.2
l http://www.microsoft.com/en-us/download/details.aspx?id=42643
l ファイル名:NDP452-KB2901954-Web.exe
l Windows Management Framework 4.0
l http://www.microsoft.com/ja-jp/download/details.aspx?id=40855
l ファイル名:Windows Server 2008 R2 SP1 x64: Windows6.1-KB2819745-x64-
MultiPkg.msu
l Windows Server 2012, Windows 8以降ではデフォルトで
PowerShell 4.0<
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 12
事前準備
l Powershellの確認
PS C:¥Users¥Administrator> $PSVersionTable
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.34209
BuildVersion 6.3.9600.16406
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
l ネットワークプロファイルの変更
l ネットワークプロファイルがパブリックならばプライベートにする。ドメインであったり元々プライベートであったりするなら
ば変更の必要はない。
l Windows側の準備を⾏ってくれるスクリプトが公式に⽤意されているので、⽤意されたスクリプトをダウンロード
し、以下のコマンドを実⾏する。
PS > mkdir C:¥work
PS > cd C:¥work
PS C:¥work > Invoke-WebRequest –Uri
https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 –
OutFile ConfigureRemotingForAnsible.ps1
PS C:¥work> powershell –ExecutionPolicy RemoteSigned .¥ConfigureRemotingForAnsible.ps1
PS > Set-ExecutionPolicy RemoteSigned –Force
PS > winrm set winrm/config/service/auth ‘@{Basic=“true”}’
PS > winrm set winrm/config/service ‘@{AllowUnencrypted=“true”}’
PS > Set-ExecutionPolicy –Scope CurrentUser RemoteSigned
l Ansible側(Linux)での設定
$ pip install pywinrm
2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 13
実⾏例
l hostsファイルの設定
[windows]
win2008 #windwosのホスト名、IP
[windows:vars]
ansible_ssh_user=Administrator #ユーザ
ansible_ssh_pass=password #パスワード
ansible_ssh_port=5986
ansible_connection=winrm
l 動作確認
$ ansible windows -i hosts -m win_ping –vvvv
<win2008> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT 5986 TO win2008
<win2008> REMOTE_MODULE win_ping
<win2008> EXEC (New-Item -Type Directory -Path $env:temp -Name "ansible-tmp-1427882816.58-
246867798460713").FullName | Write-Host -Separator '';
<win2008> PUT /tmp/tmpAiMUZj TO C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp-
1427882816.58-246867798460713¥¥win_ping<win2008> PUT /tmp/tmpBEeRpO TO
C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp-1427882816.58-
246867798460713¥¥arguments<win2008> EXEC &
C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp-1427882816.58-
246867798460713¥¥win_ping.ps1 C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp-
1427882816.58-246867798460713¥¥arguments; Remove-Item
"C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp-1427882816.58-246867798460713¥" -
Force -Recurse;
win2008 | success >> {
"changed": false,
"ping": "pong"
}2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 14

More Related Content

What's hot

OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習Etsuji Nakai
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化Hideki Saito
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ Daisuke Ikeda
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2Etsuji 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
 
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版i_yudai
 
Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化shirou wakayama
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Kikunaga Taishi
 
RancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかRancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかMasataka Tsukamoto
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspecTsuyoshi Yamada
 
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable InfrastructureBOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructurei_yudai
 

What's hot (18)

OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
 
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
 
Lxc on cloud
Lxc on cloudLxc on cloud
Lxc on cloud
 
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版
 
Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化
 
Puppetのススメ
PuppetのススメPuppetのススメ
Puppetのススメ
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】
 
RancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかRancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにか
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
 
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable InfrastructureBOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructure
 

Viewers also liked

今だから言えるやらないほうが良かったこと
今だから言えるやらないほうが良かったこと今だから言えるやらないほうが良かったこと
今だから言えるやらないほうが良かったことAkira Miki
 
Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Akira Miki
 
決済って悩むことが多い
決済って悩むことが多い決済って悩むことが多い
決済って悩むことが多いAkira Miki
 
マルチAZ対応!AWS上で稼働するスケールアウトNAS Red Hat Storage
マルチAZ対応!AWS上で稼働するスケールアウトNAS Red Hat StorageマルチAZ対応!AWS上で稼働するスケールアウトNAS Red Hat Storage
マルチAZ対応!AWS上で稼働するスケールアウトNAS Red Hat StorageTaira Hajime
 
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみたServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみたTaira Hajime
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Etsuji Nakai
 
ネットワーク概論 サーバの構築理論
ネットワーク概論 サーバの構築理論ネットワーク概論 サーバの構築理論
ネットワーク概論 サーバの構築理論Takahiro Komatsu
 
成功したチームと成功しなかったチーム 20160608
成功したチームと成功しなかったチーム 20160608成功したチームと成功しなかったチーム 20160608
成功したチームと成功しなかったチーム 20160608Keiichi Endo
 
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話Hidetoshi Hirokawa
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Hidetoshi Hirokawa
 
WebPayからStripeに移行した話
WebPayからStripeに移行した話WebPayからStripeに移行した話
WebPayからStripeに移行した話Takuro Niitsuma
 
Ansibleを使ってみよう ~Windowsターゲット編~
Ansibleを使ってみよう~Windowsターゲット編~Ansibleを使ってみよう~Windowsターゲット編~
Ansibleを使ってみよう ~Windowsターゲット編~Takeshi Kuramochi
 
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向Taira Hajime
 
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~Takeshi Kuramochi
 
CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介
CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介
CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介OSSラボ株式会社
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テストTakahiro Moteki
 
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォームAWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォームHiroki Takeda
 

Viewers also liked (20)

WIP
WIPWIP
WIP
 
今だから言えるやらないほうが良かったこと
今だから言えるやらないほうが良かったこと今だから言えるやらないほうが良かったこと
今だから言えるやらないほうが良かったこと
 
Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話
 
決済って悩むことが多い
決済って悩むことが多い決済って悩むことが多い
決済って悩むことが多い
 
マルチAZ対応!AWS上で稼働するスケールアウトNAS Red Hat Storage
マルチAZ対応!AWS上で稼働するスケールアウトNAS Red Hat StorageマルチAZ対応!AWS上で稼働するスケールアウトNAS Red Hat Storage
マルチAZ対応!AWS上で稼働するスケールアウトNAS Red Hat Storage
 
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみたServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会
 
ネットワーク概論 サーバの構築理論
ネットワーク概論 サーバの構築理論ネットワーク概論 サーバの構築理論
ネットワーク概論 サーバの構築理論
 
成功したチームと成功しなかったチーム 20160608
成功したチームと成功しなかったチーム 20160608成功したチームと成功しなかったチーム 20160608
成功したチームと成功しなかったチーム 20160608
 
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
 
WebPayからStripeに移行した話
WebPayからStripeに移行した話WebPayからStripeに移行した話
WebPayからStripeに移行した話
 
Ansibleを使ってみよう ~Windowsターゲット編~
Ansibleを使ってみよう~Windowsターゲット編~Ansibleを使ってみよう~Windowsターゲット編~
Ansibleを使ってみよう ~Windowsターゲット編~
 
Life with jupyter
Life with jupyterLife with jupyter
Life with jupyter
 
Ansible container
Ansible containerAnsible container
Ansible container
 
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向
 
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
 
CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介
CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介
CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォームAWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
 

Similar to Ansible2.0と実用例

13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud AutomationEtsuji Nakai
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
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
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門sandai
 
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使うVagrant を Web開発環境に使う
Vagrant を Web開発環境に使うMasashi Shinbara
 
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介OSSラボ株式会社
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp CodereadingHiro Yoshioka
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929hiro345
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 

Similar to Ansible2.0と実用例 (20)

13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
Capistrano
CapistranoCapistrano
Capistrano
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
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
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使うVagrant を Web開発環境に使う
Vagrant を Web開発環境に使う
 
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 

More from OSSラボ株式会社

ジョブストリーム紹介資料
ジョブストリーム紹介資料ジョブストリーム紹介資料
ジョブストリーム紹介資料OSSラボ株式会社
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介OSSラボ株式会社
 
「今、ヨーロッパのオープンソースがアツい!」 クラウドの構成管理を自動化する基盤CMDBuild
「今、ヨーロッパのオープンソースがアツい!」クラウドの構成管理を自動化する基盤CMDBuild「今、ヨーロッパのオープンソースがアツい!」クラウドの構成管理を自動化する基盤CMDBuild
「今、ヨーロッパのオープンソースがアツい!」 クラウドの構成管理を自動化する基盤CMDBuildOSSラボ株式会社
 
Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例OSSラボ株式会社
 
Excelからのクラウドオーケストレーション
ExcelからのクラウドオーケストレーションExcelからのクラウドオーケストレーション
ExcelからのクラウドオーケストレーションOSSラボ株式会社
 
140917運用管理勉強会job scheduler
140917運用管理勉強会job scheduler140917運用管理勉強会job scheduler
140917運用管理勉強会job schedulerOSSラボ株式会社
 

More from OSSラボ株式会社 (20)

220523JS7.pdf
220523JS7.pdf220523JS7.pdf
220523JS7.pdf
 
JS7 JobScheduler プレビュー
JS7 JobScheduler プレビューJS7 JobScheduler プレビュー
JS7 JobScheduler プレビュー
 
201023 jobscheduler os_cfall
201023 jobscheduler os_cfall201023 jobscheduler os_cfall
201023 jobscheduler os_cfall
 
ジョブストリーム紹介資料
ジョブストリーム紹介資料ジョブストリーム紹介資料
ジョブストリーム紹介資料
 
191010 opie2
191010 opie2191010 opie2
191010 opie2
 
CMDBuild V.3 update [Japanese]
CMDBuild V.3 update [Japanese]CMDBuild V.3 update [Japanese]
CMDBuild V.3 update [Japanese]
 
180729 jtf open-audit
180729 jtf open-audit180729 jtf open-audit
180729 jtf open-audit
 
170827 jtf garafana
170827 jtf garafana170827 jtf garafana
170827 jtf garafana
 
JobSchedulerアップデート2016
JobSchedulerアップデート2016JobSchedulerアップデート2016
JobSchedulerアップデート2016
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
 
160901 osce2016sre
160901 osce2016sre160901 osce2016sre
160901 osce2016sre
 
160724 jtf2016sre
160724 jtf2016sre160724 jtf2016sre
160724 jtf2016sre
 
「今、ヨーロッパのオープンソースがアツい!」 クラウドの構成管理を自動化する基盤CMDBuild
「今、ヨーロッパのオープンソースがアツい!」クラウドの構成管理を自動化する基盤CMDBuild「今、ヨーロッパのオープンソースがアツい!」クラウドの構成管理を自動化する基盤CMDBuild
「今、ヨーロッパのオープンソースがアツい!」 クラウドの構成管理を自動化する基盤CMDBuild
 
150726cmdbuild jtf2015
150726cmdbuild jtf2015150726cmdbuild jtf2015
150726cmdbuild jtf2015
 
CMDBuild Ready2Use紹介資料
CMDBuild Ready2Use紹介資料CMDBuild Ready2Use紹介資料
CMDBuild Ready2Use紹介資料
 
Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例
 
Excelからのクラウドオーケストレーション
ExcelからのクラウドオーケストレーションExcelからのクラウドオーケストレーション
Excelからのクラウドオーケストレーション
 
CMDBあれこれ
CMDBあれこれCMDBあれこれ
CMDBあれこれ
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
140917運用管理勉強会job scheduler
140917運用管理勉強会job scheduler140917運用管理勉強会job scheduler
140917運用管理勉強会job scheduler
 

Recently uploaded

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (8)

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

Ansible2.0と実用例

  • 1. Ansible2.0と実⽤例 2016/2/1 OSSラボ株式会社 http://www.ossl.co.jp TWITTER: http://twitter.com/satoruf LINKEDIN: http://jp.linkedin.com/in/satorufunai/ja SLIDESHARE: http://www.slideshare.net/sfunai FACEBOOK: http://www.facebook.com/satoru.funai OSSコンソーシアムクラウド部会 第13回部会 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 1
  • 2. Ansible2.0 新機能 l 内部構造を書き直した l その他いっぱいありすぎ l Windows対応 l 140以上の新規モジュールの追加 l openstack, docker, zabbix, vmwareなど l inventory, connection pluginも追加 l serf, consul, dockerなどからインベントリ情報を取ってこれる l などなど l 詳しくはこちら l https://raw.githubusercontent.com/ansible/ansible/stable-2.0/CHANGELOG.md 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 2
  • 3. 使ってみた機能 l Block l Expect l taskレベルで変数の定義、上書き l Windowsモジュール 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 3
  • 4. Tomcat 7 install on CentOS 6 #1 # Install tomcat name: Check Tomcat file: path=/opt/tomcat register: result_cat ignore_errors: True block: - name: add group "tomcat” group: name=tomcat - name: add user "tomcat” user: name=tomcat group=tomcat password=password - name: Download unarchive: src=http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.65/bin/apache- tomcat-7.0.65.tar.gz dest=/tmp copy=no - name: Move tomcat dir shell: mv /tmp/apache-tomcat-7.0.65 /opt/tomcat creates=/opt/tomcat - name: Replace config replace: dest=/opt/tomcat/conf/tomcat-users.xml regexp='{{ item.regexp }}' replace='{{ item.replace }}’ with_items: - regexp: ‘^<tomcat-users>’ replace: ’’ - regexp: ‘^</tomcat-users>’ replace: ‘’ 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 4
  • 5. Tomcat 7 install on CentOS 6 #2 - name: Sed config lineinfile: dest=/opt/tomcat/conf/tomcat-users.xml line='{{ item }}’ with_items: - ‘<tomcat-users>’ - ‘ <role rolename="manager-script"/>’ - ‘ <user username="tomcat" password="password" roles="manager-script"/>’ - ‘</tomcat-users>’ - name: Change Owner file: path=/opt/tomcat owner=tomcat group=tomcat recurse=yes - name: Startup script copy copy: src=roles/tomcat/files/tomcat dest=/etc/init.d/ mode=755 - name: setenv copy copy: src=roles/tomcat/files/setenv.sh dest=/opt/tomcat/bin mode=755 when: result_cat|failed - name: Restart Tomcat service: name=tomcat state=restarted enabled=yes 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 5
  • 6. Clean-up Tomcat #Stop Tomcat - hosts: all_hosts remote_user: osslabo become: yes vars: logs: - /opt/tomcat/logs/localhost* - /opt/tomcat/logs/catalina.*.log tasks: - name: Stop Tomcat service: name=tomcat pattern=/opt/tomcat state=stopped register: tomcat_stop ignore_errors: True - debug: var=tomcat_stop - name: Check PID command: /usr/bin/pgrep -f tomcat register: pid_result ignore_errors: True - debug: var=pid_result - name: Kill tomcat command: /usr/bin/pkill -KILL -f tomcat ignore_errors: True when: pid_result.rc == 0 - name: Remove logs shell: find {{logs | join(' ')}} -type f | xargs rm –f register: remove_result ignore_errors: True - debug: var=remove_result Clean-up Tomcat file: path={{ item }} state=absent では、wildcard(*)が使えない sudoではなく、becomeで他のユーザでも実⾏できる pgrepで結果がなければ(=プロセスが ない)、リターンコードは1になる 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 6
  • 7. expectの例 l 前提条件:python >= 2.6, pexpect >= 3.3 ------- - hosts: localhost connection: local tasks: - name: expect expect: command: ssh root@192.168.1.1 echo HOST NAME IS `hostname` ; uname –a responses: (?i)password: "Password” register: get_hostname - debug: var=get_hostname.stdout_lines Expectブロックを抜けると、 sshもクローズする 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 7
  • 8. expectの例実⾏結果 # ansible-playbook test.yml -l localhost PLAY *************************************************************************** TASK [setup] ******************************************************************* ok: [localhost] TASK [expect] ****************************************************************** changed: [localhost] TASK [debug var=get_hostname.stdout_lines] ************************************* ok: [localhost] => { "changed": false, "get_hostname.stdout_lines": [ "root@192.168.1.1's password: ", "HOST NAME IS example-server", "Linux example-server 2.6.32-573.3.1.el6.x86_64 #1 SMP Thu Aug 13 22:55:16 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux” ] } PLAY RECAP ********************************************************************* localhost : ok=3 changed=1 unreachable=0 failed=0 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 8
  • 9. Registerで取得できる値の例 l モジュールによって異なる l “changed”: false | true:実⾏結果 l “cmd”: ”…”:実⾏モジュールと内容 l “rc”: 0 | 1 | …:リターンコード l “stdout”: ”…”:標準出⼒(改⾏⽂字がエスケープされる) l “stdout_lines”: […]:標準出⼒(splitされ複数⾏になる) l 条件分岐 l when: result | succeeded, failedではモジュール実⾏結果なので、 shell/commandなどのリターンコードで分岐させたい場合は l when: result.rc !=0 と使える 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 9
  • 10. 動きが変わったモジュールの例 l Serviceモジュール - name: Check pacemaker service: name=pacemaker enabled=yes register: result_heartbeat ignore_errors: True l と書くと、パッケージがインストールされていない場合は、エラーとなったが、2.0からは、インストールされてい ない場合は、エラーにならない。 l パッケージがインストールされている場合は、今までどおりの起動、停⽌、再起動、⾃動起動させるかを⾏える。 l Packageモジュール(NEW) l serviceモジュールでインストールパッケージの確認が⾏えなくなったため、2.0以降はpackageモジュールにて⾏う 必要がある - name: Check pacemaker package: name=pacemaker register: result_heartbeat ignore_errors: True l Copyモジュールのオプション l remote_src=Trueを指定することにより、Ansible実⾏ホスト→リモートホストへファイルのコピーではなく、リモー トホストのファイルをリモートホストの別の場所にコピーを⾏える。 - name: Copy tomcat dir copy: src=/tmp/apache-tomcat-7.0.65/LICENSE dest=/opt/tomcat remote_src=True directory_mode=yes 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 10
  • 11. Windowsサポート l win_acl (E):ファイル/ディレクトリのアクセス権限設定 l win_chocolatey (E):yum/apt-getのようなcliパッケージマ ネージャ(https://chocolatey.org)を利⽤するパッケージ操 作 l win_copy:ファイル/ディレクトリの転送 l win_dotnet_ngen (E):.NETネイティブ イメージ サービス を任意に実⾏ l win_environment (E):.NET環境変数の作成変更 l win_feature :Windows Roles/Featuresのインストール/ 削除 l win_file :ファイル/ディレクトリの作成/削除 l win_firewall_rule (E):ファイアウオールルールの操作 l win_get_url:URLからのファイルダウンロード l win_group:ローカルグループの操作 l win_iis_virtualdirectory (E):IIS仮想ディレクトリの操作 l win_iis_webapplication (E:IIS Webアプリケーションの操 作 l win_iis_webapppool (E):IIS Webアプリケーションプール の操作 l win_iis_webbinding (E) :IIS Webバインドの操作 l win_iis_website (E) :IIS Webサイトの操作 l win_lineinfile:ファイル内の⾏操作 l win_msi:Windows MSIのインストール/削除 l win_nssm (E):NSSM(http://nssm.cc/)を利⽤して任意 のアプリをサービスとして起動する l win_package (E):ファイル/urlからのインストーラーを 使ったインストール/削除 l win_ping:Windowsへのping l win_regedit (E):レジストリの操作 l win_scheduled_task (E):タスクの操作 l win_service:Windowsサービスの操作 l win_stat:Windows上のファイルstat l win_template:Python⽤のテンプレートエンジンjinja2のテ ンプレートをWindowsに転送 l win_unzip (E):Windows上のzipファイルを解凍 l win_updates (E):Windows更新プログラムの操作 l win_user:ローカルユーザの操作 l win_webpicmd (E):WebPICMD(Web Platform Installer command-line)を利⽤したパッケージのインストール http://docs.ansible.com/ansible/list_of_windows_modules.html 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 11
  • 12. Windows前提条件 l Ansible2.0では、WinRM経由でWindowsに接続する l PowerShell 3.0<が必要 l Windows 7 SP1, Windows Server 2008 SP1以上 l Windows Server 2008での例 l 以下のファイルをダウンロードし実⾏する l Microsoft .NET Framework 4.5.2 l http://www.microsoft.com/en-us/download/details.aspx?id=42643 l ファイル名:NDP452-KB2901954-Web.exe l Windows Management Framework 4.0 l http://www.microsoft.com/ja-jp/download/details.aspx?id=40855 l ファイル名:Windows Server 2008 R2 SP1 x64: Windows6.1-KB2819745-x64- MultiPkg.msu l Windows Server 2012, Windows 8以降ではデフォルトで PowerShell 4.0< 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 12
  • 13. 事前準備 l Powershellの確認 PS C:¥Users¥Administrator> $PSVersionTable Name Value ---- ----- PSVersion 4.0 WSManStackVersion 3.0 SerializationVersion 1.1.0.1 CLRVersion 4.0.30319.34209 BuildVersion 6.3.9600.16406 PSCompatibleVersions {1.0, 2.0, 3.0, 4.0} PSRemotingProtocolVersion 2.2 l ネットワークプロファイルの変更 l ネットワークプロファイルがパブリックならばプライベートにする。ドメインであったり元々プライベートであったりするなら ば変更の必要はない。 l Windows側の準備を⾏ってくれるスクリプトが公式に⽤意されているので、⽤意されたスクリプトをダウンロード し、以下のコマンドを実⾏する。 PS > mkdir C:¥work PS > cd C:¥work PS C:¥work > Invoke-WebRequest –Uri https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 – OutFile ConfigureRemotingForAnsible.ps1 PS C:¥work> powershell –ExecutionPolicy RemoteSigned .¥ConfigureRemotingForAnsible.ps1 PS > Set-ExecutionPolicy RemoteSigned –Force PS > winrm set winrm/config/service/auth ‘@{Basic=“true”}’ PS > winrm set winrm/config/service ‘@{AllowUnencrypted=“true”}’ PS > Set-ExecutionPolicy –Scope CurrentUser RemoteSigned l Ansible側(Linux)での設定 $ pip install pywinrm 2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 13
  • 14. 実⾏例 l hostsファイルの設定 [windows] win2008 #windwosのホスト名、IP [windows:vars] ansible_ssh_user=Administrator #ユーザ ansible_ssh_pass=password #パスワード ansible_ssh_port=5986 ansible_connection=winrm l 動作確認 $ ansible windows -i hosts -m win_ping –vvvv <win2008> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT 5986 TO win2008 <win2008> REMOTE_MODULE win_ping <win2008> EXEC (New-Item -Type Directory -Path $env:temp -Name "ansible-tmp-1427882816.58- 246867798460713").FullName | Write-Host -Separator ''; <win2008> PUT /tmp/tmpAiMUZj TO C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp- 1427882816.58-246867798460713¥¥win_ping<win2008> PUT /tmp/tmpBEeRpO TO C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp-1427882816.58- 246867798460713¥¥arguments<win2008> EXEC & C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp-1427882816.58- 246867798460713¥¥win_ping.ps1 C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp- 1427882816.58-246867798460713¥¥arguments; Remove-Item "C:¥Users¥Administrator¥AppData¥Local¥Temp¥ansible-tmp-1427882816.58-246867798460713¥" - Force -Recurse; win2008 | success >> { "changed": false, "ping": "pong" }2016/2/1 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 14