Итак, мы наконец выяснили, как это сделать.
Мы вызываем скрипт powershell из terraform с чем-то вроде этого:
resource "azurerm_virtual_machine_extension" "test" {
count = "1"
name = "xxx"
location = "xxx"
resource_group_name = "xxx"
virtual_machine_name = "xxx"
publisher = "Microsoft.Powershell"
type = "DSC"
type_handler_version = "2.73"
auto_upgrade_minor_version = true
settings = <<SETTINGS
{
"configuration": {
"url": "package_url",
"script": "scriptforactivedomain.ps1",
"function": "functionname"
}
}
SETTINGS
tags {
environment = "xxx"
category = "xxx"
}
}
Нам просто нужно добавить фрагмент к область настроек:
settings = <<SETTINGS
{
"configuration": {
"url": "package_url",
"script": "scriptforactivedomain.ps1",
"function": "functionname"
},
"configurationData": {
"url": "url_to_file_with_configuration_data.psd1"
}
}
НАСТРОЙКИ
Затем в .psd1 мы просто укажем конфигурационные данные, как мы обычно делали:
@{
AllNodes = @(
@{
NodeName = 'localhost'
PSDscAllowPlainTextPassword = $true
}
)
}
В этом случай был довольно прост, но я отрывал свою голову!
Вы должны деформировать строку запроса в кавычках
insert_query= "INSERT INTO film_text (film_id, title, description)
VALUES ('1001','ZZZ ZORRO','Zorro must Fight a Womanizer in Berlin')";
Вы забыли заключить запрос в кавычки. Следующий код должен работать отлично:
import pandas
import pymysql
connection = pymysql.connect(host='localhost', user='root', password='123456', database='sakila')
cursor=connection.cursor()
insert_query= "INSERT INTO film_text (film_id, title, description) VALUES ('1001','ZZZ ZORRO','Zorro must Fight a Womanizer in Berlin');"
cursor.execute(insert_query)
Вы также можете напрямую написать свой код, как этот
cursor.execute("""INSERT INTO film_text (film_id, title, description) VALUES ('1001','ZZZ ZORRO','Zorro must Fight a Womanizer in Berlin'""");
Типом insert_query будет строка.
insert_query = "INSERT INTO film_text (film_id, title, description) VALUES ('1001','ZZZ ZORRO','Zorro must Fight a Womanizer in Berlin')"