启动了一个名为nginx的dockerised应用程序,然后在其中执行bash.令我惊讶的是,我无法在容器内找到vim,vi甚至是yum.
请原谅我,因为我对码头工人和学习都很陌生.
以下命令可用于重现该问题.
docker run -d --name=my_nginxtemp nginx
docker exec -i -t my_nginxtemp bash
docker commit my_nginxtemp my_nginx
Run Code Online (Sandbox Code Playgroud)
我的主机是Ubuntu 16.04,我正在使用最新的docker-engine和docker cli
root@jim-Ubuntu1504:/home/jim/web# docker version
Client:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 22:00:43 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 22:00:43 2016
OS/Arch: linux/amd64
root@jim-Ubuntu1504:/home/jim/web#
Run Code Online (Sandbox Code Playgroud)
请不要继续我自15.04以来升级的主机名:slight_smile:
root@jim-Ubuntu1504:/home/jim/web# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 …Run Code Online (Sandbox Code Playgroud) 我有以下三个文件:main.tf、variables.tf 和 dev.auto.tfvars
main.tf中的片段
module "sql_vms" {
source = "git::git@github.com:xxxxxxxxxxxx/terraform-modules//azure/"
rg_name = var.resource_group_name
location = module.resource_group.external_rg_location
vnet_name = var.virtual_network_name
subnet_name = var.sql_subnet_name
app_nsg = var.application_nsg
vm_count = var.count_vm
base_hostname = var.sql_host_basename
sto_acc_suffix = var.storage_account_suffix
vm_size = var.virtual_machine_size
vm_publisher = var.virtual_machine_image_publisher
vm_offer = var.virtual_machine_image_offer
vm_sku = var.virtual_machine_image_sku
vm_img_version = var.virtual_machine_image_version
username = var.username
password = var.password
}
Run Code Online (Sandbox Code Playgroud)
来自variables.tf的片段
variable "app_subnet_name" {
type = string
}
variable "sql_subnet_name" {
type = string
}
Run Code Online (Sandbox Code Playgroud)
来自dev.auto.tfvars的片段
app_subnet_name = "subnet_1"
sql_subnet_name = …Run Code Online (Sandbox Code Playgroud) 我的地形代码如下:
terraform {
backend "remote" {
hostname = "hostname.com"
organization = "companyname"
workspaces {
name = "GIT-TIO-DEV"
}
}
}
provider "aws" {
region = "us-east-1"
version = "~> 2.22"
}
locals {
aws_region = "us-east-1"
ami_id = "ami-000db10762d0c4c05"
appid_tag = "S00012"
env_tag = "dev"
name_tag = "TESTINSTANCE"
awsaccount_tag = "myaccount"
createdby_tag = "testuser"
keyName = "tst-cloudservices-portal-dev"
securityGroup = "sg-wwwwwwwww"
vpc_id = "vpc-aaaaaaaaaaaaa"
patchgroup_tag = "GroupA"
iam_role = "tst-SR-ServiceRole"
division_tag = "TIO"
application_segment_tag = "DEV"
notes_tag = "link to notes …Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的管道。带有 Azure DevOps Build管道的Github 存储库。
我在 Github 私有存储库中的 ax.tf 文件中定义了以下提到的变量:
ARM_CLIENT_ID
ARM_CLIENT_SECRET
ARM_SUBSCRIPTION_ID
ARM_TENANT_ID
Run Code Online (Sandbox Code Playgroud)
构建管道有一个简单的命令行作业,如下所示:
sudo apt install wget
wget https://releases.hashicorp.com/terraform/0.11.11/terraform_0.11.11_linux_amd64.zip
sudo apt-get install unzip
unzip terraform_0.11.11_linux_amd64.zip
terraform init
terraform plan -var-file=terraform.tfvars -out=ax.plan
terraform apply ax.plan
terraform destroy -auto-approve
Run Code Online (Sandbox Code Playgroud)
我想知道如何在 Terraform ax.tf 文件中引用这些 Build 变量?
我按照 Azure DevOps 文档做了类似下面的事情,但它不起作用:
variable "ARM_SUBSCRIPTION_ID" {
default="$(Build.ARM_SUBSCRIPTION_ID)"
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它没有按预期工作,并在以下执行级别停止:
[0m[1m[32mTerraform has been successfully initialized![0m[32m[0m
[0m[32m
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required …Run Code Online (Sandbox Code Playgroud) 我为 Mongodb terraform 模块创建了 main.tf 文件,如下所示。
resource "mongodbatlas_teams" "test" {
org_id = null
name = "MVPAdmin_Team"
usernames = ["user1@email.com", "user2@email.com", "user3@email.com"]
}
resource "mongodbatlas_project" "test" {
name = "MVP_Project"
org_id = null
teams {
team_id = null
role_names = ["GROUP_CLUSTER_MANAGER"]
}
}
resource "mongodbatlas_project_ip_access_list" "test" {
project_id = null
ip_address = null
comment = "IP address for MVP Dev cluster testing"
}
resource "mongodbatlas_cluster" "test" {
name = "MVP_DevCluster"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
cluster_type = REPLICASET
state_name = …Run Code Online (Sandbox Code Playgroud) 我想知道如何停止错误消息中的无限循环,以便它创建 AWS EC2 实例?
地形代码如下:
provider "aws" {
region = "${var.location}"
}
resource "aws_instance" "ins1_ec2" {
ami = "${var.ami}"
instance_type = "${var.inst_type}"
tags = {
Name = "cluster"
}
provisioner "remote-exec" {
inline = [
"hostnamectl set-hostname centos-76-1",
]
}
}
resource "aws_eip" "ins1_eip" {
instance = "${aws_instance.ins1_ec2.id}"
vpc = false
}
resource "aws_instance" "ins2_ec2" {
ami = "${var.ami}"
instance_type = "${var.inst_type}"
provisioner "remote-exec" {
inline = [
"hostnamectl set-hostname centos-76-2",
]
}
tags = {
Name = "cluster"
} …Run Code Online (Sandbox Code Playgroud) 代码如下:
class Book
{
private String title
Book (String theTitle)
{
title=theTitle
}
String getTitle()
{
return title
}
}
Book gina=new Book('Groovy in Action')
assert gina.getTitle()=='Groovy in Action'
assert getTitleBackwards(gina)=='noitcA ni yvoorG'
String getTitleBackwards(Book)
{
title=book.getTitle()
return title.reverse()
}
Run Code Online (Sandbox Code Playgroud)
当我使用Ctrl + R执行时,我得到以下编译错误.
1编译错误:
类Book的重复类定义无效:源Book.groovy包含至少两个类Book的定义.其中一个类是使用class语句的显式生成类,另一个是基于文件名从脚本体生成的类.解决方案是更改文件名或更改类名.at line:1,column:1
有人可以解释一下这里发生了什么.
我在我的.tfvars变量中定义了变量
variables.tfvars
address_space = ["10.197.0.0/16"]
Run Code Online (Sandbox Code Playgroud)
build-windows.tf
variable "address_space" {
type = list
}
Run Code Online (Sandbox Code Playgroud)
在build-windows.tf文件中,我收到作为未知令牌标识列表的错误?
不知道我在这里做错了什么,我什至不明白为什么terraform希望我使用列表而不是字符串。当我使用字符串时,在Terraform计划中出现错误,指出必须使用列表。
不去任何地方。
请协助
您之前是否遇到过主题行中提到的错误?,我对此很感兴趣,但无法解决。以下是我为创建服务主体而执行的步骤
az login
-- Gives me a device code to enter in browser
Login to az non-interactively
az account set --subscription="xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Check correct account by
az account show
Create a SP
az ad sp create-for-rbac -n "tf-authenticator" --role contributor
Run Code Online (Sandbox Code Playgroud)
运行 terraform 计划,如下所示:
[jim@rhel75 msdn]$ terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.
azurerm_resource_group.tf-rg-cluster-sql: Refreshing state... os_profile_windows_config.1060902566.enable_automatic_upgrades: "true"
Plan: …Run Code Online (Sandbox Code Playgroud) azure-devops terraform-provider-azure azure-pipelines-release-task
我的 terraform 目录结构如下:
terraform/
main.tf modules outputs.tf provider.tf variables.tf
./modules:
compute network resourcegroup
./modules/compute:
main.tf outputs.tf variables.tf
./modules/network:
main.tf outputs.tf variables.tf
./modules/resourcegroup:
main.tf outputs.tf variables.tf
Run Code Online (Sandbox Code Playgroud)
资源组模块配置文件如下:
目的:在这个模块中,我引用了一个现有的资源组,我想用它来创建一个虚拟机及其关联的对象。
主文件
data "azurerm_resource_group" "tf-rg-external" {
name = var.rg_name
}
Run Code Online (Sandbox Code Playgroud)
变量.tf
variable "rg_name" {
type = string
}
Run Code Online (Sandbox Code Playgroud)
网络模块
目的:我想使用资源组模块中的资源组在此模块中引用。这样,我在一个地方定义并在 root 和其他模块中使用它,例如计算、应用服务、aks 等
主文件
# Reference existing Virtual Network
data "azurerm_virtual_network" "tf-vn" {
name = var.vnet_name
resource_group_name = module.resource_groups.external_rg_name
}
# Reference existing subnet
data "azurerm_subnet" "tf-sn" {
name = …Run Code Online (Sandbox Code Playgroud) azure-virtual-machine azure-virtual-network terraform terraform-provider-azure
terraform ×4
azure-devops ×2
amazon-ec2 ×1
azure-pipelines-release-task ×1
docker ×1
groovy ×1