[ansible] 변수 값 증가, 파일로 저장, 다른 playbook 에서 재사용 (variable increment)

ansible 을 통해서 자동화 하는 과정 에 일련번호를 가지는 폴더를 각 서버나 playbook 구동 횟수마다 다르게 증가시키고 싶을 수 있습니다

크게

  1. 변수를 변화(증가) 시키고 싶다
  2. 다시 해당 변수를 사용할 때에 증가된 상태로 사용 하고 싶다
    - name: Get current index
      local_action: shell file=$((`cat /usr/awakenlegends/variable_global/master` + 1)); echo $file | tee /usr/awakenlegends/variable_global/master
      register: file_num
    - name: show
      debug:
        msg: "{{ file_num.stdout }}"

간단하게 해당 파일에 별다른 내용 없이 딱 숫자 값만 존재하게 한다고 보고 사용한 task 입니다

파일을(로컬) 에서 읽으며 +1 한 값을 다시 해당 파일로 write 합니다

결과를 register 로 등록 합니다

이때 register 에 등록된 내용은

ok: [localhost] => {
    "msg": {
        "changed": true,
        "cmd": "file=$((`cat /home/variable_global/game` + 1)); echo $file | tee /home/variable_global/game",
        "delta": "0:00:00.004839",
        "end": "2022-07-25 10:21:39.677014",
        "failed": false,
        "msg": "",
        "rc": 0,
        "start": "2022-07-25 10:21:39.672175",
        "stderr": "",
        "stderr_lines": [],
        "stdout": "7",
        "stdout_lines": [
            "7"
        ]
    }
}

대략 위와 같다고 보면 됩니다
실제 원하는 text 는 stdout 에 존재합니다

file_num.stdout 을 {{filenum.stdout | int}} 사용하면 됩니다 이제


댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다