我目前有一个 terraform 对象声明如下:
locals {
x = {
a = [
{
p0 = "j"
p1 = "test-1"
p2 = 0
},
{
p0 = "k"
p1 = "test-2"
p2 = 0
}
]
b = [
{
p0 = "j"
p1 = "test-1"
p2 = 1
},
{
p0 = "k"
p1 = "test-3"
p2 = 0
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我想做的是压平结构,但我不知道这在地形中是否可行。就我而言,我知道 p0 在其自己的数组中将是唯一的,因此我应该能够为每个记录构造唯一的键。我想要的输出如下:
locals {
y = {
a-j {
p0 = "j"
p1 = "test-1"
p2 = …Run Code Online (Sandbox Code Playgroud) resource "aws_instance" "appserver1" {
ami = var.imageid
instance_type = var.instancetype
key_name = var.key
security_groups = [aws_security_group.allow_all.name]
connection {
user = "ubuntu"
private_key = file(var.privatekeypath)
}
provisioner "remote-exec" {
inline = [
"sudo apt-get update",
"sudo apt-get install tomcat7 -y"
]
}
}
Run Code Online (Sandbox Code Playgroud)
“terraform validate”给了我错误:
错误:缺少必需的参数
在 main.tf 第 52 行,资源“aws_instance”“appserver1”中:52:连接{
参数“host”是必需的,但未找到定义。
我有一个t2.medium正在运行的实例,其容量4GB为RAM和。25GBEBS
该实例当前正在运行Apache服务器、wordpress 应用程序、mysql 服务器和 codeigniter 应用程序。
我不希望丢失任何数据。
如何将卷增加到 100GB?
我在这里找到了一篇文章,但我不确定这样做是否会导致所有数据丢失。
我无法让我的注册脚本在 PowerShell (admin) 中运行。它可以在 Powershell ISE 中运行,但随后脚本卡在“正在连接到服务器...”
\n难道我做错了什么?
\n\n这是脚本:
\n $ErrorActionPreference="Stop";If(-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent() ).IsInRole( [Security.Principal.WindowsBuiltInRole] \xe2\x80\x9cAdministrator\xe2\x80\x9d)){ throw "Run command in an administrator PowerShell prompt"};If($PSVersionTable.PSVersion -lt (New-Object System.Version("3.0"))){ throw "The minimum version of Windows PowerShell that is required by the script (3.0) does not match the currently running version of Windows PowerShell." };If(-NOT (Test-Path $env:SystemDrive\\\'azagent\')){mkdir $env:SystemDrive\\\'azagent\'}; cd $env:SystemDrive\\\'azagent\'; for($i=1; $i -lt 100; $i++){$destFolder="A"+$i.ToString();if(-NOT (Test-Path ($destFolder))){mkdir $destFolder;cd $destFolder;break;}}; $agentZip="$PWD\\agent.zip";$DefaultProxy=[System.Net.WebRequest]::DefaultWebProxy;$securityProtocol=@();$securityProtocol+=[Net.ServicePointManager]::SecurityProtocol;$securityProtocol+=[Net.SecurityProtocolType]::Tls12;[Net.ServicePointManager]::SecurityProtocol=$securityProtocol;$WebClient=New-Object Net.WebClient; $Uri=\'[url]\';if($DefaultProxy -and (-not $DefaultProxy.IsBypassed($Uri))){$WebClient.Proxy= New-Object Net.WebProxy($DefaultProxy.GetProxy($Uri).OriginalString, $True);}; $WebClient.DownloadFile($Uri, $agentZip);Add-Type -AssemblyName …Run Code Online (Sandbox Code Playgroud) 在GCP上,我尝试使用下面的 Terraform 代码运行Cloud Run服务“renderer”,在此代码中,我使用plus(连接“gcr.io/”、变量var.project_id和“/renderer:latest” +) :
resource "google_cloud_run_service" "renderer" {
name = "renderer"
location = "asia-northeast1"
template {
spec {
containers {
image = "gcr.io/" + var.project_id + "/renderer:latest" // Here
}
service_account_name = google_service_account.renderer_identity.email
}
}
traffic {
percent = 100
latest_revision = true
}
}
Run Code Online (Sandbox Code Playgroud)
然后,当我应用上面的代码时,出现以下错误:
resource "google_cloud_run_service" "renderer" {
name = "renderer"
location = "asia-northeast1"
template {
spec {
containers {
image = "gcr.io/" + var.project_id + …Run Code Online (Sandbox Code Playgroud) google-cloud-platform terraform devops terraform-provider-gcp google-cloud-run
当访问远程计算机时,我想知道容器是否是通过或其他方式启动docker run的docker-compose。
这可能吗?
编辑:这样做的主要原因是要找出这些容器是在哪里编排的,即如果容器出现故障,是否会再次启动?该配置会在哪里?
早上好,
\n我在将标准 Azure 存储帐户升级到 Data Lake Gen2 升级时遇到问题。我在验证过程中不断收到此错误。\xe2\x80\x9c:帐户属性的值不兼容:containerDeleteRetentionPolicy。\xe2\x80\x9d 我该如何解决此问题?我最终希望设置一个容器来创建元存储。
\n我认为这是配置 DNS 服务器的问题,但我仍然收到相同的错误消息。
\n只是想知道我是否有以下puppet文件,我想将它们分成单独的文件.我必须创建模块吗?我不能只包括它们吗?
node default {
include mysql
}
class mysql {
# Make sure MySQL is ...
notify {"Mysql":}
# installed
package { 'mysql':
require => Exec['apt-update'], # require 'apt-update' before installing
ensure => installed,
}
# and running
service { 'mysql':
ensure => running,
enable => true,
}
}
...
Run Code Online (Sandbox Code Playgroud)
我只是想把mysql类拿出来放在单独的文件中.怎么做这个简单的事情?顺便说一句,我正在使用无主的木偶
编辑
很大的道歉,事实是我只使用没有流浪汉的傀儡.但由于我不是一个专家,当我的问题有一个修改,包括流浪汉我接受了它.对不起,请允许我修改我的问题
我可以在没有流浪汉的情况下进行分离吗?如果我必须如此.
谢谢
如何在生产中实施e2e而又不破坏数据库的一致性?想象一下,我们需要测试的场景是一个用户注册。如果我们在生产中运行此测试,它将每次创建一个假用户。
难题在于端到端测试非常重要,我们有更大的灵活性在分阶段环境中运行它们。但是,在生产中,我们遭受数据一致性低的困扰,并且无法检测到特定于生产的错误。因此,是否有一种方法可以在生产中正确实施端到端测试,还是应该在阶段进行测试?提前致谢
testing automated-tests production-environment e2e-testing devops
我正在尝试在VMWare Hypervisor中为虚拟机创建一个实验室,以便在RHEL中安装集群; 我已经看到Packer和Terraform非常有趣,但是我找不到关于他们工作流程的清晰和/或详细的样本,特别是如何在Packer中创建图像然后让Terraform使用它.我已经看到Packer具有构建功能,但即使是某些类型的部署,我也不明白这些是否与Terraform重叠; 我已经读过可以通过另一个HashiCorp产品Atlas实现某种类型的自动化,但我不想使用它,至少在这个软件的研究和试用阶段.所以我想做的是使用Packer(RHEL base以及其他功能)创建与VMWare兼容的虚拟机映像,将它们传递给在我的esxi中创建vm的Terraform工件.
希望能找到指导.
devops ×10
terraform ×4
azure ×2
amazon-ec2 ×1
containers ×1
deployment ×1
docker ×1
e2e-testing ×1
esxi ×1
iis ×1
packer ×1
puppet ×1
storage ×1
testing ×1
vps ×1
vsphere ×1