Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ansibleを通じて「べき等性」を 理解してみよう / Try understanding idempotency by Ansible

attakei
September 17, 2019

Ansibleを通じて「べき等性」を 理解してみよう / Try understanding idempotency by Ansible

2019/9/17 に開催された、PyCon JP 2019で発表した内容のPDF版の資料です。
Reveal.js製のスライドのため、オリジナルは以下のURLとなっています。

https://attakei.net/slides/pyconjp-2019/

attakei

September 17, 2019
Tweet

More Decks by attakei

Other Decks in Programming

Transcript

  1. Who am I? Name: Kazuya Takei Social: @attakei NIJIBOX Co.,

    Ltd. インフラ領域 Ansible GitLab アーキテクト CIパイプライン啓蒙 Firebase啓蒙 そこまでガッツリはPython触 ってない Twitter GitHub GitLab
  2. Who am I? Name: Kazuya Takei Social: @attakei As pythonista

    小さいライブラリ志向 Ansibleモジュール/ロー ル sphinx-revealjs Errbotプラグイ ン/Errcron Errbotコアへのコントリビュ ートとか Twitter GitHub GitLab
  3. 「冪等性」の例 >>> def add_zero(x): >>> return x + 0 >>>

    >>> x = 2019 >>> x = add_zero(x) >>> x 2019 >>> x = add_zero(x) >>> x 2019 >>> add_zero(add_zero(add_zero(add_zero(x)))) 2019
  4. 「冪等性」の例 >>> def multi_one(x): >>> return x * 1 >>>

    >>> x = 2019 >>> x = multi_one(x) >>> x 2019 >>> x = multi_one(x) >>> x 2019 >>> multi_one(multi_one(multi_one(multi_one(x)))) 2019
  5. Ansibleの動き(中身) Playbook # ------------------ # RedHat系OSのマシンで、Apacheを使えるようにするPlaybook # ------------------ - hosts:

    local # sudoが必要なケースではbecomeを指定する become: yes tasks: # 1個ずつ「モジュール」を指定する - yum: # nameでパッケージ名を指定 name: httpd
  6. amazon-linux-extras モジュール Amazon Linux 2が持つパッケージリポジトリの状態を管理できる もの コマンド自体が割と冪等性を持っているけど、 command モジュ ールで呼ぶのもあれなので自作してみた

    ※前述のpipモジュールなどを見る前に、ドキュメントだけ読んで作っ てみたものです - hosts: local tasks: - amazon2extras: name=php7.3 - yum: name=php7.3