Excel から必要な情報を抜き出して、Ansible の ini ファイルを置換する Python スクリプトを書いてみました。
#!/usr/bin/python3 # coding: UTF-8 import openpyxl import sys # Ansible の ini ファイルを定義(置換前) org_file_name = "all.yml.org" # Ansible の ini ファイルを定義(置換後) file_name = "all.yml" # コマンドライン引数の数を確認 if len(sys.argv) != 2: print("input error") sys.exit(1) # Excel ファイル名を変数に代入 args = sys.argv target = args[1] # Excel データを取得 wb = openpyxl.load_workbook(target) sheet = wb.get_sheet_by_name('Sheet1') # セルデータの取得関数 def get_cell(x, y): param = sheet.cell(row=x,column=y).value return param # 必要なセルの情報を取得 domain = get_cell(2, 2) docroot = get_cell(3, 2) # 置換前の ini ファイルを開く with open(org_file_name, encoding="cp932") as f: data_lines = f.read() # 置換 data_lines = data_lines.replace("xxx", domain) data_lines = data_lines.replace("yyy", docroot) # 置換後のiniファイルを作成 with open(file_name, 'w', encoding="cp932") as f: f.write(data_lines)
スクリプトのコマンドライン引数としてExcelファイル(.xlsx)を指定して実行してください。