From bd97dde1e88797018c4b239cf0ef33a2585d1e45 Mon Sep 17 00:00:00 2001 From: Ryan Cook Date: Fri, 16 Sep 2016 15:30:16 -0400 Subject: [PATCH 1/4] fix of missing user data and prep work for upcoming containerized install --- .../files/brownfield-byo-bastion.json | 6 ++++++ .../roles/cloudformation-infra/files/brownfield.json | 10 ++++++++++ .../roles/cloudformation-infra/files/greenfield.json | 4 ++++ .../cloudformation-infra/files/user_data_bastion.yml | 7 +++++++ .../cloudformation-infra/files/user_data_master.yml | 7 +++++++ .../cloudformation-infra/files/user_data_node.yml | 10 +++++++++- .../roles/cloudformation-infra/tasks/main.yaml | 2 ++ 7 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_bastion.yml diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/brownfield-byo-bastion.json b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/brownfield-byo-bastion.json index efb6856ae..87c90c92a 100644 --- a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/brownfield-byo-bastion.json +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/brownfield-byo-bastion.json @@ -44,6 +44,9 @@ "Type": "String", "Default": "25" }, + "MasterUserData": { + "Type": "String" + }, "MasterEtcdVolSize": { "Type": "String", "Default": "25" @@ -96,6 +99,9 @@ "Type": "String", "Default": "gp2" }, + "NodeUserData": { + "Type": "String" + }, "NodeEmptyVolSize": { "Type": "String", "Default": "25" diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/brownfield.json b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/brownfield.json index 6501cd801..a78b6bcda 100644 --- a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/brownfield.json +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/brownfield.json @@ -48,6 +48,9 @@ "Type": "String", "Default": "gp2" }, + "BastionUserData": { + "Type": "String" + }, "MasterRootVolSize": { "Type": "String", "Default": "10" @@ -64,6 +67,9 @@ "Type": "String", "Default": "gp2" }, + "MasterUserData": { + "Type": "String" + }, "MasterDockerVolType": { "Type": "String", "Default": "gp2" @@ -100,6 +106,9 @@ "Type": "String", "Default": "30" }, + "NodeUserData": { + "Type": "String" + }, "NodeDockerVolSize": { "Type": "String", "Default": "25" @@ -714,6 +723,7 @@ "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : {"Ref": "AmiId"}, + "UserData": {"Ref": "BastionUserData"}, "KeyName" : {"Ref": "KeyName"}, "InstanceType": {"Ref": "BastionInstanceType"}, "SecurityGroupIds": [{ "Fn::GetAtt" : ["BastionSg", "GroupId"] }], diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/greenfield.json b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/greenfield.json index 4ba58a766..f76323427 100644 --- a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/greenfield.json +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/greenfield.json @@ -60,6 +60,9 @@ "Type": "String", "Default": "gp2" }, + "BastionUserData": { + "Type": "String" + }, "MasterRootVolSize": { "Type": "String", "Default": "10" @@ -917,6 +920,7 @@ "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : {"Ref": "AmiId"}, + "UserData": {"Ref": "BastionUserData"}, "KeyName" : {"Ref": "KeyName"}, "InstanceType": {"Ref": "BastionInstanceType"}, "SecurityGroupIds": [{ "Fn::GetAtt" : ["BastionSg", "GroupId"] }], diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_bastion.yml b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_bastion.yml new file mode 100644 index 000000000..750a4ade9 --- /dev/null +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_bastion.yml @@ -0,0 +1,7 @@ +#cloud-config +users: +- default + +system_info: + default_user: + name: ec2-user diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_master.yml b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_master.yml index ce8a6724a..8490c60bd 100644 --- a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_master.yml +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_master.yml @@ -23,3 +23,10 @@ write_files: EXTRA_DOCKER_STORAGE_OPTIONS="--storage-opt dm.basesize=3G" path: /etc/sysconfig/docker-storage-setup owner: root:root + +users: +- default + +system_info: + default_user: + name: ec2-user diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_node.yml b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_node.yml index 863a968be..2cb1043bc 100644 --- a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_node.yml +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_node.yml @@ -4,7 +4,7 @@ cloud_config_modules: - mounts fs_setup: -- label: emptydir +- label: etcd_storage filesystem: xfs device: /dev/xvdc partition: auto @@ -23,3 +23,11 @@ write_files: EXTRA_DOCKER_STORAGE_OPTIONS="--storage-opt dm.basesize=3G" path: /etc/sysconfig/docker-storage-setup owner: root:root + +users: +- default + +system_info: + default_user: + name: ec2-user + diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml index 276fdadc8..e6adbc246 100644 --- a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml @@ -22,6 +22,7 @@ MasterInstanceType: "{{ master_instance_type }}" AmiId: "{{ ami }}" BastionInstanceType: "{{ node_instance_type }}" + BastionUserData: "{{ lookup('template', 'files/user_data_bastion.yml') | b64encode }}" MasterRootVolSize: 10 BastionRootVolType: gp2 MasterRootVolType: gp2 @@ -70,6 +71,7 @@ MasterInstanceType: "{{ master_instance_type }}" AmiId: "{{ ami }}" BastionInstanceType: "{{ node_instance_type }}" + BastionUserData: "{{ lookup('template', 'files/user_data_bastion.yml') | b64encode }}" MasterRootVolSize: 10 BastionRootVolType: gp2 MasterRootVolType: gp2 From b63f550eef74735d7ac0626530da3e131524f496 Mon Sep 17 00:00:00 2001 From: Ryan Cook Date: Fri, 16 Sep 2016 15:32:36 -0400 Subject: [PATCH 2/4] Update user_data_node.yml --- .../roles/cloudformation-infra/files/user_data_node.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_node.yml b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_node.yml index 2cb1043bc..2711d037b 100644 --- a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_node.yml +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/files/user_data_node.yml @@ -4,7 +4,7 @@ cloud_config_modules: - mounts fs_setup: -- label: etcd_storage +- label: emptydir filesystem: xfs device: /dev/xvdc partition: auto From dd523e740bd6ae2b3f2c87b5e61ef62d1d151552 Mon Sep 17 00:00:00 2001 From: Ryan Cook Date: Mon, 19 Sep 2016 11:30:00 -0400 Subject: [PATCH 3/4] tranisition to file lookup instead of template --- .../roles/cloudformation-infra/tasks/main.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml index e6adbc246..102dc997b 100644 --- a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml @@ -22,7 +22,7 @@ MasterInstanceType: "{{ master_instance_type }}" AmiId: "{{ ami }}" BastionInstanceType: "{{ node_instance_type }}" - BastionUserData: "{{ lookup('template', 'files/user_data_bastion.yml') | b64encode }}" + BastionUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_bastion.yml') | b64encode }}" MasterRootVolSize: 10 BastionRootVolType: gp2 MasterRootVolType: gp2 @@ -30,7 +30,7 @@ MasterDockerVolType: gp2 MasterEtcdVolSize: "{{ etcd_storage }}" MasterEtcdVolType: gp2 - MasterUserData: "{{ lookup('template', 'files/user_data_master.yml') | b64encode }}" + MasterUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_master.yml') | b64encode }}" InfraInstanceType: "{{ node_instance_type }}" InfraRootVolSize: 25 InfraRootVolType: gp2 @@ -38,7 +38,7 @@ InfraDockerVolType: gp2 NodeEmptyVolSize: "{{ emptydir_storage }}" NodeEmptyVolType: gp2 - NodeUserData: "{{ lookup('template', 'files/user_data_node.yml') | b64encode }}" + NodeUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_node.yml') | b64encode }}" AppNodeInstanceType: "{{ node_instance_type }}" NodeRootVolSize: 25 NodeRootVolType: gp2 @@ -71,7 +71,7 @@ MasterInstanceType: "{{ master_instance_type }}" AmiId: "{{ ami }}" BastionInstanceType: "{{ node_instance_type }}" - BastionUserData: "{{ lookup('template', 'files/user_data_bastion.yml') | b64encode }}" + BastionUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_bastion.yml') | b64encode }}" MasterRootVolSize: 10 BastionRootVolType: gp2 MasterRootVolType: gp2 @@ -79,7 +79,7 @@ MasterDockerVolType: gp2 MasterEtcdVolSize: "{{ etcd_storage }}" MasterEtcdVolType: gp2 - MasterUserData: "{{ lookup('template', 'files/user_data_master.yml') | b64encode }}" + MasterUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_master.yml') | b64encode }}" InfraInstanceType: "{{ node_instance_type }}" InfraRootVolSize: 25 InfraRootVolType: gp2 @@ -87,7 +87,7 @@ InfraDockerVolType: gp2 NodeEmptyVolSize: "{{ emptydir_storage }}" NodeEmptyVolType: gp2 - NodeUserData: "{{ lookup('template', 'files/user_data_node.yml') | b64encode }}" + NodeUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_node.yml') | b64encode }}" AppNodeInstanceType: "{{ node_instance_type }}" NodeRootVolSize: 25 NodeRootVolType: gp2 @@ -126,7 +126,7 @@ MasterDockerVolType: gp2 MasterEtcdVolSize: "{{ etcd_storage }}" MasterEtcdVolType: gp2 - MasterUserData: "{{ lookup('template', 'files/user_data_master.yml') | b64encode }}" + MasterUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_master.yml') | b64encode }}" InfraInstanceType: "{{ node_instance_type }}" InfraRootVolSize: 25 InfraRootVolType: gp2 @@ -134,7 +134,7 @@ InfraDockerVolType: gp2 NodeEmptyVolSize: "{{ emptydir_storage }}" NodeEmptyVolType: gp2 - NodeUserData: "{{ lookup('template', 'files/user_data_node.yml') | b64encode }}" + NodeUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_node.yml') | b64encode }}" AppNodeInstanceType: "{{ node_instance_type }}" NodeRootVolSize: 25 NodeRootVolType: gp2 From 79ace11d1519854d0cdbe8717814958eb33d8b9b Mon Sep 17 00:00:00 2001 From: Ryan Cook Date: Mon, 19 Sep 2016 15:26:47 -0400 Subject: [PATCH 4/4] shorter path --- .../roles/cloudformation-infra/tasks/main.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml index 102dc997b..28242601e 100644 --- a/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml +++ b/reference-architecture/aws-ansible/playbooks/roles/cloudformation-infra/tasks/main.yaml @@ -22,7 +22,7 @@ MasterInstanceType: "{{ master_instance_type }}" AmiId: "{{ ami }}" BastionInstanceType: "{{ node_instance_type }}" - BastionUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_bastion.yml') | b64encode }}" + BastionUserData: "{{ lookup('file', 'user_data_bastion.yml') | b64encode }}" MasterRootVolSize: 10 BastionRootVolType: gp2 MasterRootVolType: gp2 @@ -30,7 +30,7 @@ MasterDockerVolType: gp2 MasterEtcdVolSize: "{{ etcd_storage }}" MasterEtcdVolType: gp2 - MasterUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_master.yml') | b64encode }}" + MasterUserData: "{{ lookup('file', 'user_data_master.yml') | b64encode }}" InfraInstanceType: "{{ node_instance_type }}" InfraRootVolSize: 25 InfraRootVolType: gp2 @@ -38,7 +38,7 @@ InfraDockerVolType: gp2 NodeEmptyVolSize: "{{ emptydir_storage }}" NodeEmptyVolType: gp2 - NodeUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_node.yml') | b64encode }}" + NodeUserData: "{{ lookup('file', 'user_data_node.yml') | b64encode }}" AppNodeInstanceType: "{{ node_instance_type }}" NodeRootVolSize: 25 NodeRootVolType: gp2 @@ -71,7 +71,7 @@ MasterInstanceType: "{{ master_instance_type }}" AmiId: "{{ ami }}" BastionInstanceType: "{{ node_instance_type }}" - BastionUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_bastion.yml') | b64encode }}" + BastionUserData: "{{ lookup('file', 'user_data_bastion.yml') | b64encode }}" MasterRootVolSize: 10 BastionRootVolType: gp2 MasterRootVolType: gp2 @@ -79,7 +79,7 @@ MasterDockerVolType: gp2 MasterEtcdVolSize: "{{ etcd_storage }}" MasterEtcdVolType: gp2 - MasterUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_master.yml') | b64encode }}" + MasterUserData: "{{ lookup('file', 'user_data_master.yml') | b64encode }}" InfraInstanceType: "{{ node_instance_type }}" InfraRootVolSize: 25 InfraRootVolType: gp2 @@ -87,7 +87,7 @@ InfraDockerVolType: gp2 NodeEmptyVolSize: "{{ emptydir_storage }}" NodeEmptyVolType: gp2 - NodeUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_node.yml') | b64encode }}" + NodeUserData: "{{ lookup('file', 'user_data_node.yml') | b64encode }}" AppNodeInstanceType: "{{ node_instance_type }}" NodeRootVolSize: 25 NodeRootVolType: gp2 @@ -126,7 +126,7 @@ MasterDockerVolType: gp2 MasterEtcdVolSize: "{{ etcd_storage }}" MasterEtcdVolType: gp2 - MasterUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_master.yml') | b64encode }}" + MasterUserData: "{{ lookup('file', 'user_data_master.yml') | b64encode }}" InfraInstanceType: "{{ node_instance_type }}" InfraRootVolSize: 25 InfraRootVolType: gp2 @@ -134,7 +134,7 @@ InfraDockerVolType: gp2 NodeEmptyVolSize: "{{ emptydir_storage }}" NodeEmptyVolType: gp2 - NodeUserData: "{{ lookup('file', 'roles/cloudformation-infra/files/user_data_node.yml') | b64encode }}" + NodeUserData: "{{ lookup('file', 'user_data_node.yml') | b64encode }}" AppNodeInstanceType: "{{ node_instance_type }}" NodeRootVolSize: 25 NodeRootVolType: gp2