タグ付けされた質問 「terraform」

5
.tfおよび.tfstateで秘密を管理するにはどうすればよいですか?
Terraform MySQLプロバイダーを使用して、mysqlユーザーのリストを保持し、新しいテスト環境を作成するのに便利です。ファイルの両方平文でのMySQLのパスワードを保存するように見えます。.tf.tfstate .tfについて: 私の理解では、.tfファイルはリビジョン管理に存在し、チームによって維持されています。秘密が存在する場合、その慣行はどのように異なります.tfか?これらの値をまったく暗号化することは可能ですか? .tfstateについて: .tfstateTerraform applyを実行した後、どこかに安全に保存できますが、このユースケースではまったく保存しない方が望ましいでしょうか。

6
Terraform構成をテストする方法は?
中程度の複雑さを持つTerraform構成がある場合、継続的インテグレーション/継続的デリバリーパイプラインの一部として実行できる構成に関するテストをどのように作成しますか? 例として、次の望ましい状態を指定するマルチクラウド構成がある場合があります。 AzureでDockerをホストするAzure Container Services Azure Blob Storage SQL Azure AWSでDockerをホストするEC2 Container Service Amazon S3ストレージサービス Amazon RDS SQL Serverデータベース terraform apply上記をゼロから作成したり、部分的に展開された状態から上記の望ましい状態に移行したりする可能性があります。 Terraformは、作業を実行計画段階と実際にターゲットアーキテクチャに変更を加えるアプリケーション段階に分割することを認識しています。これを使用して、実行計画に対するテストを作成できますか?もしそうであれば、これらを作成するのに役立つフレームワークはありますか?

2
Terraformでcloud-initを使用する方法は?
私はDigital OceanとTerraformで作業しており、すでにドメイン、サブドメイン、ネットワーク設定、ホストを自動化できますがUser data、次のようなセクションがあります。 その分野の記述は言いAllows the use of Cloud-init to configure your dropletます。周りを見回して文書を見つけました。 私の質問は、Terraformを使用しながらこれをどのように活用するのですか?

4
Terraform:1つのtfファイルのみを適用します
securitygroup.tfファイルにセキュリティグループがあります。 同じディレクトリに、他のリソースの説明(rds、ec2など)がたくさんあります。 私terraform apply --auto-approve だけのために実行する方法はありsecuritygroups.tfますか?
16 terraform 

1
TerraformでDigitalOceanチームにホストを作成するにはどうすればよいですか?
Digital Oceanのチームはごく最近で、Terraformでの使用に関するドキュメントはありません。 私が見つけることができるすべての情報は、それらを手動で操作する方法です。 私は私が次のようなことを言うことができることを望んでいました: resource "digitalocean_droplet" "host" { image = "${var.image}" name = "${var.host_name}" region = "${var.region}" size = "${var.size}" private_networking = "${var.private_networking}" ssh_keys = ["${var.ssh_fingerprint}"] team = "${var.team}" } team = "${var.team}"最後に注意してください。 TerraformはプロバイダーAPIの上のラッパーにすぎないため、これに関するフィールドのエンドポイントを見つけようとしているドキュメントを調べましたが、何も見つかりませんでした。 TerraformでDigital Oceanチームをどのように使用すればよいですか?またはmain、Terraformで自動化したいのですが、アカウントに行き詰まっていますか?
11 terraform 

4
Terraform:リソースに複数のタグを指定するための簡潔な構文はありますか?
リソースに複数のタグを付けるために、私は現在複数のtagブロックを使用しています: resource "aws_autoscaling_group" "instance" { ... tag { key = "Name" value = "${var.cluster_prefix}" propagate_at_launch = true } tag { key = "Owner" value = "${var.tag_Owner}" propagate_at_launch = true } tag { key = "Project" value = "${var.tag_Project}" propagate_at_launch = true } } うまくいきますが、もっと簡潔な構文があるのでしょうか。またpropagate_at_launch、タグごとに指定する必要があるため、ビットエラーが発生しやすくなります。 更新:この質問は、Terrafrom v0.12が出る前に書かれました。それ以降、サポートは動的ネストブロックで改善されました(以下の私の回答を参照してください)。
9 terraform 

1
AutoScalingグループの状態でのスケーリングポリシーによる、必要な容量の変更をどのように管理できますか?
AutoScalingグループの状態のスケーリングポリシーによるTerraformの望ましい容量の変更をどのように管理できますか? 具体的には、I提供仮定aws_autoscaling_groupリソースとテラフォームとdesired_capacity 4のと高いCPU使用率にスケールアップポリシー。その後、自動スケーリンググループはスケーリングポリシーを介して希望の容量6に更新されましたが、この状態はterraform .tfstateにキャプチャされません。 テラフォームを介して自動スケーリンググループの状態を後で変更したい場合、(。tfで変更されていないため)desired_capacityをリセットせずに変更するにはどうすればよいですか?どういうわけか、現在のグループサイズと一致するようにdesired_capacityの更新を自動化できますか、それとも、desired_capacityをまったく設定しないでください。

2
すべての状態を失うことなく、Terraformによって管理されるRedisクラスターにシャードを追加する方法は?
TerraformでRedisクラスターをセットアップしました。セットアップは次のようになります。 resource "aws_elasticache_replication_group" "instance" { replication_group_id = "test" node_type = "cache.t2.micro" port = 6379 parameter_group_name = "default.redis3.2.cluster.on" subnet_group_name = "${aws_elasticache_subnet_group.instance.name}" security_group_ids = ["${aws_security_group.instance.id}"] cluster_mode { replicas_per_node_group = 0 num_node_groups = "${var.cluster_size}" } automatic_failover_enabled = true apply_immediately = true } var.cluster_size2から3 に変更すると、Terraformが更新を適切に実行することを期待していました。ただし、そうではありません。 -/+ module.groupsign_redis.aws_elasticache_replication_group.instance (new resource required) id: "test" => <computed> …

3
新しいパッケージが利用可能になったときに、不変のインフラストラクチャを自動的に再構築するにはどうすればよいですか?
Terraformを使用してインフラストラクチャの展開を自動化し、Packerを使用してTerraformによって展開されるマシンイメージを作成します。不変のインフラストラクチャ設計原則に従って、パッチが適用された新しいイメージを作成してパッチを実装し、インフラストラクチャを再展開します。 この設定で、ベースイメージ内のパッケージまたはOS自体を更新してビルドパイプラインをトリガーする必要があるときを自動的に検出するために使用できる追加のツールはありますか? Chef Automateは私が探しているものに近いようですが、イメージマニフェスト自体を分析するのではなく、実行中のノードのコンプライアンスをスキャンするようです。 ありがとう!

1
既存のボリュームをデタッチし、Terraformで新しいボリュームをアタッチするにはどうすればよいですか?
既存のEC2インスタンスからEBSボリュームをデタッチして、新しいEBSボリュームをアタッチする方法はありますTerraform v0.9.2か? インスタンスを破棄して新しいボリュームで新しいボリュームを作成するのではなく、ボリュームを置き換える方が好きです。 ファイルシステムは、ボリュームをデタッチする前にオペレーティングシステム内のデバイスからマウント解除されます。また、AWSコンソールからボリュームをデタッチする問題はありません。 resource "aws_ebs_volume" "create_volume" { availability_zone = "eu-central-1a" snapshot_id = "${data.aws_ebs_snapshot.mysql.id}" type = "gp2" tags { Name = "${var.instance_name}" } } resource "aws_volume_attachment" "mysql_data" { depends_on = ["null_resource.stop_mysql_service2"] device_name = "/dev/xvdf" volume_id = "${aws_ebs_volume.create_volume.0.id}" instance_id = "i-0d48be4266da" skip_destroy = true force_detach = true } $ ./terraform apply …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.