狠狠撸
Submit Search
础苍蝉颈产濒别入门...?
?
40 likes
?
9,549 views
S
shirou wakayama
Follow
Ansible 紹介 at #pyfes 2013.11
Read less
Read more
1 of 43
Download now
Downloaded 61 times
More Related Content
础苍蝉颈产濒别入门...?
1.
Ansible 入門 #pyfes 2013.11
in Tokyo by @r_rudi(しろう) …?
2.
Ansible
3.
Ansible 間違い 正しい 正解
4.
Chef Puppet Salt cfengine juju …..
5.
構成管理 ツール Provisiong tool
6.
構成 管理
8.
by Lee Thompson
at Velocity 2010
9.
一部夸张表现があります
10.
本日の前提知識 Assumptions
11.
Task - name: install
python homeblew: name=python installs_options={{ option }} state=present
12.
Task タスク名(省略可) - name: install
python 引数 homeblew: name=python モジュール名 installs_options={{ option }} 変数 state=present 状態: absent を指定すると消せる (moduleによる)
13.
Playbook == Taskのセット -
hostname: name=AnsibleDemo - apt_repository: repo=’deb http://….’ - apt_key: url=http://….. 実行順
14.
実行方法 % ansible-playbook hoge.yml -i
inventory file (接続先ホストのリスト) -u username -k ssh pass -C check mode -D diff表示
15.
OK Let' Go !
16.
unarchive module - unarchive:
src=/slideshow/ansible-28755803/28755803/blah.tar.gz dest=/tmp/ copy Remote unzip untar Local Remote
17.
shell module - shell:
foo.sh copy Remote Run Local Remote Run
18.
ec2 - local_action: ec2 args: instance_type:
c1.medium image: emi-329394 count: 3
19.
Launch Instances module -
Google Compute Engine - Digital Ocean - Linode - Rackspace - Docker :
20.
インスタンスはいくつ? - local_action: ec2 args: count:
3 - local_action: ec2 args: count: 3 - local_action: ec2 args: count: 3
21.
インスタンスはいくつ? - local_action: ec2 args: count:
3 - local_action: ec2 args: count: 3 - local_action: ec2 args: count: 3 9
22.
インスタンスはいくつ? - local_action: ec2 args: count:
3 - local_action: ec2 args: count: 3 - local_action: ec2 args: count: 3 9 冪等性...?
23.
ec2 elb - local_action:
ec2_elb args: instance_id: “{{ ansible_ec2_instance_id }}” state: present
24.
deploy !! - local_action:
ec2_elb args: state=absent - nagios: action=disable_alert - git: repo=.... dest=/www version=release-11 - service: name=foo state=restarted - wait_for: port=8080 state=started :
25.
rolling update - serial:
1 Remote - 一台ずつ実行できる Remote - 数台まとめてもできる Remote
26.
Python API #pyfes ですから…
27.
ansible + flask from
ansible.inventory import Inventory from ansible.playbook import PlayBook from ansible import callbacks from flask import Flask, render_template import json app = Flask(__name__) @app.route("/play") def play(): inventory = Inventory('localhost.conf') stats = callbacks.AggregateStats() playbook_cb = callbacks.PlaybookCallbacks() runner_cb = callbacks.PlaybookRunnerCallbacks(stats) results = PlayBook(playbook='pyfesdemo.yml', forks=1, remote_user='shirou', sudo=False, module_path='module', callbacks=playbook_cb, runner_callbacks=runner_cb, stats=stats, inventory=inventory).run() return json.dumps(results)
28.
AnsibleWorks AWX
29.
Demo or Die
30.
Web UI demo
31.
本当のデモ: twilio module -
twilio APIを使うshell script #!/usr/bin/env sh AccountSid=AAAAAAAAA AuthToken=07999999999999 curl -X POST 'https://api.twilio.com/2010-0401/Accounts/ACe0361e5b6236a8948191d08635bcd449/Calls.json' ? -d 'From=%2B815031596145' -d 'To=%2B81999999993' ? -d 'Url=http%3A%2F%2Fexample.com%2Fansible.html' -u ${AccountSid}:${AuthToken} echo "changed=True" exit 0
32.
module 作成 - 超簡単 -
スクリプト言語ならなんでも書ける - 残念ながらgoは無理 - YAMLで書きにくいなら気軽にmoduleを作成 - サーバの./libraryに置いておけば使ってく れる
33.
handler tasks: - template: src=/srv/hoge.j2
dest=/etc/hoge notify: - restart apache handlers: - name: restart apache service: name=httpd state=restarted
34.
何台ぐらい扱えるの?
35.
We have users
using Ansible in push mode against 5000 machines at a time
36.
Accelarated mode - SSHでdaemonを起動 -
あとはdaemonと直接通信 - このdaemonは通信が 終わると自動で終わる - hosts: all accelerate: true tasks: ... - 2-8x faster than SSH
37.
モジュール绍介
38.
Arista networks - 10G/40G/100Gのスイッチ -
sshで入れる - pythonが入っている - Ansibleの初期からのスポンサー
39.
Arista modules - name:
enable interface Ethernet 1 arista_interface: interface_id=Ethernet1 admin=up speed=10g duplex=full logging=true
40.
DB - mongodb_user - mysql_db -
mysql_replication - postgres_user - postgres_db - riak - redis
41.
notification - irc - hipchat -
jabber - mail - osx_say
42.
まとめ - Ansibleは自動実行ツールとしても使えるよ - moduleたくさんうれしいな -
notification moduleは便利 - 欲しいものがなければ簡単に作れるよ - python必要ないよ - 実行速度は十分速いよ
43.
Ansible 本 - 最近出ました -
平易な英語 - 広い範囲をカバー - 今日飛ばした部分
Download