1
1
2
+ resource "tls_private_key" "private_key" {
3
+ algorithm = " RSA"
4
+ rsa_bits = 4096
5
+ }
6
+
7
+ resource "aws_key_pair" "generated_key" {
8
+ key_name = " ScyllaDB-Enterprise-DEMO-key"
9
+ public_key = tls_private_key. private_key . public_key_openssh
10
+ }
11
+
2
12
resource "aws_instance" "scylladb_seed" {
3
13
count = 1
4
14
ami = var. scylla_ami_id
5
15
instance_type = var. scylla_node_type
6
- key_name = var . aws_key_pair
16
+ key_name = aws_key_pair. generated_key . key_name
7
17
8
18
subnet_id = element (aws_subnet. public_subnet . * . id , count. index )
9
19
security_groups = [aws_security_group . sg . id ]
40
50
connection {
41
51
type = " ssh"
42
52
user = " ubuntu"
43
- private_key = file (var . ssh_private_key )
53
+ private_key = tls_private_key . private_key . private_key_pem
44
54
host = coalesce (self. public_ip , self. private_ip )
45
55
agent = true
46
56
}
@@ -51,7 +61,7 @@ resource "aws_instance" "scylladb_nonseeds" {
51
61
count = var. scylla_node_count - 1
52
62
ami = var. scylla_ami_id
53
63
instance_type = var. scylla_node_type
54
- key_name = var . aws_key_pair
64
+ key_name = aws_key_pair. generated_key . key_name
55
65
56
66
subnet_id = element (aws_subnet. public_subnet . * . id , count. index )
57
67
security_groups = [aws_security_group . sg . id ]
77
87
depends_on = [aws_instance . scylladb_seed ]
78
88
}
79
89
90
+ # Generate private key file for Ansible
91
+ resource "local_file" "keyfile_ansible_config" {
92
+ content = <<- DOC
93
+ -----BEGIN RSA PRIVATE KEY-----
94
+ ${ tls_private_key . private_key . private_key_pem }
95
+ -----END RSA PRIVATE KEY-----
96
+
97
+ DOC
98
+ filename = " ./ansible/key.pem"
99
+ }
100
+
80
101
# Gerenate Ansible config file
81
102
resource "local_file" "file_ansible_config" {
82
103
content = <<- DOC
@@ -89,8 +110,8 @@ resource "local_file" "file_ansible_config" {
89
110
host_key_checking=False
90
111
interpreter_python=auto_silent
91
112
force_valid_group_names=ignore
92
- private_key_file=${ var . ssh_private_key }
93
- remote_user=${ var . instance_username }
113
+ private_key_file=key.pem
114
+ remote_user=scyllaadm
94
115
95
116
DOC
96
117
filename = " ./ansible/ansible.cfg"
0 commit comments