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)を指定して実行してください。