Ресурс google_sql_database_instance
Синтаксис
Для проверки ресурса Google DatabaseInstance используется google_sql_database_instance
Примеры
describe google_sql_database_instance(project: 'chef-gcp-inspec', database: 'my-database') do
it { should exist }
its('state') { should eq 'RUNNABLE' }
its('backend_type') { should eq 'SECOND_GEN' }
its('database_version') { should eq 'MYSQL_5_7' }
end
Проверка, что экземпляр базы данных GCP Cloud SQL находится в ожидаемом состоянии
describe google_sql_database_instance(project: 'chef-inspec-gcp', database: 'my-database') do
its('state') { should eq 'RUNNABLE' }
end
Проверка типа поколения экземпляра базы данных GCP Cloud SQL
describe google_sql_database_instance(project: 'chef-inspec-gcp', database: 'my-database') do
its('backend_type') { should eq "SECOND_GEN" }
end
Проверка, что имя подключения к экземпляру базы данных GCP Cloud SQL соответствует ожиданиям
describe google_sql_database_instance(project: 'spaterson-project', database: 'gcp-inspec-db-instance') do
its('connection_name') { should eq "spaterson-project:europe-west2:gcp-inspec-db-instance" }
end
Подтверждение, что экземпляр базы данных GCP Cloud SQL имеет верную версию
describe google_sql_database_instance(project: 'spaterson-project', database: 'gcp-inspec-db-instance') do
its('database_version') { should eq "MYSQL_5_7" }
end
Проверка, что экземпляр базы данных GCP Cloud SQL работает в желаемой области и зоне
describe google_sql_database_instance(project: 'spaterson-project', database: 'gcp-inspec-db-instance') do
its('gce_zone') { should eq "europe-west2-a" }
its('region') { should eq "europe-west2" }
end
Свойства
Свойства, к которым можно получить доступ из ресурса google_sql_database_instance:
backend_type- Возможные значения:
- FIRST_GEN: Экземпляр первого поколения. Только MySQL.
- SECOND_GEN: Экземпляр второго поколения или экземпляр PostgreSQL.
- EXTERNAL: Сервер базы данных, не управляемый Google.
connection_name- Имя подключения к экземпляру Cloud SQL, используемое в строках подключения.
database_version- Тип и версия движка базы данных. Для экземпляров первого поколения — MYSQL_5_5 или MYSQL_5_6. Для экземпляров второго поколения — MYSQL_5_6 или MYSQL_5_7. По умолчанию — MYSQL_5_6. Для экземпляров PostgreSQL — POSTGRES_9_6. Свойство databaseVersion нельзя изменить после создания экземпляра.
Возможные значения:
- MYSQL_5_5
- MYSQL_5_6
- MYSQL_5_7
- POSTGRES_9_6
failover_replica- Имя и состояние резервного реплики. Это свойство применимо только к экземплярам второго поколения.
available- Статус доступности резервного реплики. Ложное значение указывает, что резервный реплика не синхронизирован. Мастер может выполнить резервное копирование только на резервный реплика, когда статус равен true.
name- Имя резервного реплики. Если указано при создании экземпляра, для экземпляра создается резервный реплика. Имя не включает идентификатор проекта. Это свойство применимо только к экземплярам второго поколения.
instance_type- Тип экземпляра. Может быть одним из следующих: _ CLOUD_SQL_INSTANCE: Экземпляр Cloud SQL, который не дублируется с мастера. _ ON_PREMISES_INSTANCE: Экземпляр, работающий на оборудовании клиента. _ READ_REPLICA_INSTANCE: Экземпляр Cloud SQL, настроенный как реплика для чтения.
Возможные значения:
- CLOUD_SQL_INSTANCE
- ON_PREMISES_INSTANCE
- READ_REPLICA_INSTANCE
ip_addresses- Назначенные IP-адреса для экземпляра.
ip_address- Назначенный IP-адрес.
time_to_retire- Время, когда этот IP-адрес должен быть исключен в формате RFC 3339, например 2012-11-15T16:19:00.094Z. Это поле доступно только при запланированном исключении IP-адреса.
type- Тип этого IP-адреса. Адрес PRIMARY — это адрес, который может принимать входящие подключения. Адрес OUTGOING — это адрес источника подключений, исходящих от экземпляра, если поддерживается.
Возможные значения:
- PRIMARY
- OUTGOING
ipv6_address- Назначенный IPv6-адрес экземпляра. Это свойство применимо только к экземплярам первого поколения.
master_instance_name- Имя экземпляра, который будет действовать в качестве мастера в конфигурации дублирования.
max_disk_size- Максимальный размер диска экземпляра в байтах.
name- Имя экземпляра Cloud SQL. Не включает идентификатор проекта.
region- Географическая область. По умолчанию — us-central или us-central1 в зависимости от типа экземпляра (первого поколения или второго поколения/PostgreSQL).
replica_configuration- Конфигурация, специфичная для резервных и читаемых реплик.
failover_target- Указывает, является ли реплика целевым резервным экземпляром. Если поле установлено в значение true, реплика будет назначена резервной репликой. В случае сбоя мастера экземпляр реплики будет повышен до нового мастера. Только один реплика может быть указан в качестве целевого резервного экземпляра, и реплика должна находиться в другой зоне с мастером.
mysql_replica_configuration- Конфигурация MySQL, специфичная для дублирования с MySQL-мастером на локальном компьютере. Информация о конфигурации дублирования, такая как имя пользователя, пароль, сертификаты и ключи, не хранится в метаданных экземпляра. Информация о конфигурации используется только для настройки подключения к дублированию и хранится MySQL в файле master.info в каталоге данных.
ca_certificate- Представление PEM доверенного сертификата CA x509.
client_certificate- Представление PEM сертификата x509 раба.
client_key- Представление PEM закрытого ключа раба. Соответствующий открытый ключ закодирован в сертификате клиента.
connect_retry_interval- Время ожидания при повторных подключениях в секундах. По умолчанию в MySQL — 60 секунд.
dump_file_path- Путь к файлу дампов SQL в Google Cloud Storage, из которого должен создаваться экземпляр реплики. URI имеет вид gs://bucketName/fileName. Также поддерживаются сжатые gzip-файлы (.gz). Дампы должны содержать координаты бинарного журнала, с которого следует начинать дублирование. Это можно сделать, установив –master-data в значение 1 при использовании mysqldump.
master_heartbeat_period- Интервал в миллисекундах между сердечными ударами дублирования.
password- Пароль для подключения к дублированию.
ssl_cipher- Список допустимых шифров для использования в SSL-шифровании.
username- Имя пользователя для подключения к дублированию.
verify_server_certificate- Нужно ли проверять значение Common Name мастера в сертификате, который он отправляет во время рукопожатия SSL.
replica_names- Реплики экземпляра.
service_account_email_address- Адрес электронной почты учетной записи сервиса, назначенный экземпляру. Это свойство применимо только к экземплярам второго поколения.
settings- Настройки пользователя.
database_flags- Флаги базы данных, передаваемые экземпляру при запуске.
name- Имя флага. Эти флаги передаются при запуске экземпляра, поэтому включают как параметры сервера, так и переменные системы для MySQL. Флаги должны быть указаны с подчеркиванием, а не с дефисами.
value- Значение флага. Булевы значения должны устанавливаться в on для true и off для false. Это поле должно быть опущено, если флаг не принимает значение.
ip_configuration- Настройки управления IP-адресами. Это позволяет включить или отключить IP-адрес экземпляра и управлять внешними сетями, которые могут подключаться к экземпляру. IPv4-адрес нельзя отключить для экземпляров второго поколения.
ipv4_enabled- Должен ли экземпляру быть назначен IP-адрес.
authorized_networks- Список внешних сетей, которым разрешен доступ к экземпляру с использованием IP-адреса. В формате CIDR, также известном как «формат с косой чертой» (например, 192.168.100.0/24).
expiration_time- Время истечения действия этой записи управления доступом в формате RFC 3339, например 2012-11-15T16:19:00.094Z.
name- Необязательная метка для идентификации этой записи.
value- Разрешённое значение для списка управления доступом. Например, для предоставления доступа клиенту с внешним IP-адресом (IPv4 или IPv6) или подсетью, используйте этот адрес или подсеть здесь.
require_ssl- Должен ли mysqld по умолчанию устанавливать «REQUIRE X509» для пользователей, подключающихся через IP.
tier- Уровень или тип машины для этого экземпляра, например db-n1-standard-1. Для экземпляров MySQL это поле определяет, является ли экземпляр второго поколения (рекомендуется) или первого поколения.
availability_type- AvailabilityType определяет, работает ли экземпляр PostgreSQL в зональной или региональной модели. Возможные значения:
- ZONAL
- REGIONAL
backup_configuration- Конфигурация ежедневного резервного копирования для экземпляра.
enabled- Включить автоматическое резервное копирование для вашего экземпляра.
binary_log_enabled- Включен ли бинарный журнал. Если конфигурация резервного копирования отключена, бинарный журнал также должен быть отключен. Только MySQL.
start_time- Укажите время начала резервного копирования в формате UTC (ЧЧ:ММ).
settings_version- Версия настроек экземпляра. Это обязательное поле для метода обновления, чтобы убедиться в правильной обработке одновременных обновлений. При обновлении используйте последнее значение settingsVersion для этого экземпляра и не пытайтесь обновить это значение.
user_labels- Метки, предоставленные пользователем, представленные в виде словаря, где каждая метка — это пара ключ-значение.
gce_zone- Зона Compute Engine, из которой в настоящее время обслуживается экземпляр. Это значение может отличаться от зоны, указанной при создании экземпляра, если экземпляр переключился на вторичную зону.
state- Текущее состояние обслуживания экземпляра базы данных.
Возможные значения:
- SQL_INSTANCE_STATE_UNSPECIFIED
- RUNNABLE
- SUSPENDED
- PENDING_DELETE
- PENDING_CREATE
- MAINTENANCE
- FAILED
Разрешения GCP
Убедитесь, что для текущего проекта включен API Cloud SQL Admin по адресу https://console.cloud.google.com/apis/library/sqladmin.googleapis.com/.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_sql_database_instance/