これは Ansible Advent Calendar 2020 (Adventar版) の 18日目の記事であり、
ssmonline #5のLTの拡大版です。
目的
VBAの知識を活かして、Ansibleの理解速度、知識の定着率を上げたい!
ということで、LT資料に盛り込めなかった内容を書いていきます。
変数の配列
Dim str_xxx(5) As String '一次元配列
- Ansible Playbook
- 行頭に「- (半角SP)」をつけます
vars: fruits_list: - apple - gorilla
ループ処理
- VBA
- 特定の条件に当てはまる間、または当てはまらない間、処理を続ける
Do While i <= 5 i = i + 1 Loop
- Ansible Playbook
- このリストの値を変数に入れて実行する、が多いと思う
debug: msg: "{{ item }}" # itemという名前は仕様 loop: - rap - panda
IF文
- VBA
- 頻繁に使用する
If (str_xxx = "ostrich") Then MsgBox "OK!" End If
- Ansible Playbook
- 状況が分からないものに対して、Playbookはあまり使わないと思う
思いつかないです
select case文
- VBA
- 2、3個の比較ならIf文を使う
str_XXX = "cow" Select Case str_XXX Case Is = "cow" MsgBox "OK!" Case Is = "zebra" MsgBox "NG!" Case Else MsgBox "NONE!" End Select
- Ansible Playbook
- when の条件に当てはまったら、モジュールを実行する
- OSの違いによる分岐を実行させるとか。caseは2,3個くらいのイメージ
file: path: /etc/xxx.conf state: touch when: XXX == "cow"
ファイルの分け方
- VBA
- ThisWorkbook、標準モジュール、クラスモジュールに分ける
- シートに書くと、シートを消したときに消えてしまうので使いたくない
- Ansible Playbook
- フォルダ構成やファイル名が仕様として決まっている
XXX.yml roles/ xxxx/ tasks/ main.yml vars/ main.yml
備考
Ansible側は細かく書いてないしもっと深く深く追求できそう。Ansible力が足りない!