All Articles

設定ファイルに追記したい

やりたいこと

設定ファイルに任意の1行を追加したい。

同じプレイブックを複数回実行してその度に追加されるぐらいならbashを使った方がいい。

  • 設定ファイル

    cat example.conf
    
    [example]
    hogehoge = hoge
    fugafuga = fuga
  • プレイブック

    ---
    - hosts: 127.0.0.1
    
      vars:
        - fileName: example.conf
    
    tasks:
        - name: 設定ファイルに追記したい
          ansible.builtin.lineinfile: 
            path: "{{ fileName }}"
            line: "mogemoge = moge"
            regexp: "^mogemoge = moge$"
            insertafter: "^hogehoge = hoge$"
            state: present

このプレイブックで出来たこと

  1. samba の設定ファイルっぽい example.conf がある。hogehoge 行の次に以下の行を追加
    • mogemoge = moge
  2. すでに mogemoge 行があるなら何もしない

このプレイブックで出来ないこと

  1. example.conf に、hogehoge 行がないなら何もしない
    • hogehoge がなかった場合でも、mogemoge 行が追加される。
      • どうして出来ないの?
        • regexp で追加して良いか判定してから、insertafter で追加して良さそうな位置を決めているからっぽい。ansible のソースを追っていないから不明だけど。
        • shellcommand を使う??
          • 敗北感が漂うのでなるべくやめよう

Published Oct 15, 2023

わたしが作成したサイト・サービスをまとめています。最近は割と雑記も多いです。なお、当サイトに記載している情報などは組織・団体の公式見解とは無関係です。