Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AnsibleとAWXでレガシーな本番環境デプロイを1-Click実行 / LT - Ansible Night in Tokyo 201712
Search
innossh
December 21, 2017
Technology
1
1.6k
AnsibleとAWXでレガシーな本番環境デプロイを1-Click実行 / LT - Ansible Night in Tokyo 201712
Ansible Night in Tokyo 2017.12
https://ansible-users.connpass.com/event/71613/
innossh
December 21, 2017
Tweet
Share
More Decks by innossh
See All by innossh
NginxとELBの罠
innossh
1
870
Other Decks in Technology
See All in Technology
巨大なテーブルのテーブル定義を無停止で安全に誰でも変更できるようにする / Table-definitions-for-huge-tables-can-be-modified-by-anyone-safely-and-non-disruptively
freee
1
740
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
14
35k
Aurora MySQL v3(MySQL8.0互換)の オンラインDDLの罠挙動を全バージョンで検証した
yutakikai
1
150
社内勉強会運営のコツ
senoo
6
1.1k
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
150
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
3
240
複雑な構成要素を持つUIとの向き合い方 〜新・支出グラフでの実例〜 / B43 TECH TALK
nakamuuu
0
110
Microsoft Cloudで開発ライフサイクルを保護する
kkamegawa
0
140
ChatGPT for IT Service Management (IT Pro)
dahatake
2
200
SREとその組織類型
tatsuo48
8
1.5k
疲弊しない!AWSセキュリティ統制の考え方 #devio_osakaday1
masahirokawahara
6
5.9k
o11y入門_外形監視を利用したWebアプリケーションへの最適なモニタリング_TechBrew
k5k
3
100
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
356
22k
Facilitating Awesome Meetings
lara
41
5.6k
Rails Girls Zürich Keynote
gr2m
91
13k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
Done Done
chrislema
178
15k
Producing Creativity
orderedlist
PRO
336
39k
A Philosophy of Restraint
colly
196
16k
In The Pink: A Labor of Love
frogandcode
138
21k
What’s in a name? Adding method to the madness
productmarketing
PRO
15
2.6k
The Power of CSS Pseudo Elements
geoffreycrofte
59
5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Transcript
$MJDL࣮ߦ ϨΨγʔͳຊ൪ڥσϓϩΠΛ
‣ !JOOPTTI ‣ ,JJ*P5ΫϥυϓϥοτϑΥʔϜ ‣ ιϑτΣΞΤϯδχΞ %FW0QT ࣗݾհ
,JJ$MPVE ͔ΒαʔϏε։࢝
ϨΨγʔͱϞμϯ
ϨΨγʔ Ϟμϯ &$ &$ &$ &$
ͷൿͷखॱॻ ͱ࡞ۀͷଐਓԽ
‣ Ϛωʔδϝϯτίϯιʔϧ͔Βϩʔυόϥϯ αʔΓ͠Ճ ‣ ϗετʹ44)ϩάΠϯ ‣ QVQQFUͰࠩ֬ೝͱߋ৽ ‣ ࠩ݁ՌΛ4MBDLͳͲͰڞ༗ ‣
&&ςετΛ+FOLJOTͰ࣮ߦ ‣ ʜ
ͭΒ͍ʗ ?P? ʘ
ࣗಈԽ͍ͨ͠
"OTJCMFͱ"89Ͱ $MJDL࣮ߦ σϓϩΠ
lϩʔυόϥϯα͔Β ͷΓ͠ͷࣗಈԽʁ
FMC@JOTUBODFϞδϡʔ ϧͰͰ͖ΔΑ XBJU@GPSϞδϡʔϧศར
- name: Wait for instance port to close active connections
wait_for: host: 0.0.0.0 port: "{{ instance_port }}" delay: 10 sleep: 10 # check every 10 seconds state: drained timeout: 300 exclude_hosts: 127.0.0.1
l+FOLJOT্ͷ&& ςετ࣮ߦͷࣗಈԽʁ
lҰ෦ͷ&&ςετ͕ࣦ ഊ͢Δ͜ͱ͕͋Δɻ ෦తʹϦτϥΠ͍ͨ͠
UBTLͷSFUSZΦϓγϣϯɺ ͍CMPDLSFTDVFͰɺɺ Ͱ͖ͳ͍ͳʜ͙͵͵
JODMVEF@UBTLTʹมΛ ͯ͠ϧʔϓͤ͞Α͏
- name: Get E2E test report uri: url: "{{ e2e_job_url
}}/ {{ e2e_result_build_number }}/testReport/api/ json" method: GET user: "{{ e2e_jenkins_user }}" password: "{{ e2e_jenkins_api_token }}" force_basic_auth: yes status_code: - 200 register: e2e_test_report
- set_fact: e2e_failed_tests: "{{ e2e_test_report.json | json_query(failed_tests_query) }}" vars: failed_tests_query:
"suites[*].cases[? status=='REGRESSION'||status=='FAILED'].className" - set_fact: e2e_retry_tests: "{{ e2e_retry_tests | default([]) + [item] }}" with_flattened: - "{{ e2e_failed_tests }}" - set_fact: e2e_partial_retry_numbers: "{{ e2e_partial_retry_numbers | default([]) + [ item ] }}" with_sequence: count="{{ e2e_partial_retry_count | int }}"
- name: Retry E2E partially include_tasks: e2e-partial.yml e2e_partial_parameter={{ item.1 }}
with_nested: - "{{ e2e_partial_retry_numbers }}" - "{{ e2e_retry_tests }}"
ϨΨγʔͳσϓϩΠͷ QMBZCPPLԽ น͕ଟ͍͚ΕͲ
"OTJCMFͳΒ ෳࡶͳॲཧͰ :".-Ͱγϯϓϧʹ
QMBZCPPL࡞ͬͨΒ "89Λ༻ҙ͢Δ͚ͩ
None
ߦ͑ʂ
σϓϩΠ݁Ռ͕ϒϥβͰ ֬ೝͰ͖ͯڞ༗͍͢͠
ϨΨγʔڥͷσϓϩ ΠΛࣗಈԽͨ݁͠Ռ
ଐਓԽ͠ͳ͍σϓϩΠ ͕Մೳʹ
ͤʁ
‣ ෳࡶͳ࡞ۀͷࣗಈԽͰ"OTJCMFͳΒ :".-Ͱॻ͚ͯγϯϓϧ ‣ ༷ʑͳQMBZCPPL࣮ߦΛ"89Ͱதԝू ݖԽ ‣ ϨΨγʔڥ"OTJCMFͱ"89Ͱଐਓ Խͷഉআɺ$MJDLσϓϩΠ ·ͱΊ
ΤϯδχΞืू͍ͯ͠·͢ʂIUUQTKQLJJDPNSFDSVJU