diff --git a/README.md b/README.md index 258c7c65b843657111f1754009c1bb21cf3ebad4..95d256949fbb6f2e95d3be047def47cf5c0070f4 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,12 @@ * Install [terraform](https://www.terraform.io/downloads.html) 1.0 or greater * Configure some application credentials in the [RC Openstack dashboard](https://dashboard.cloud.rc.uab.edu/identity/application_credentials/) * Add a key pair (in the [Key Pairs](https://dashboard.cloud.rc.uab.edu/project/key_pairs) section) +* Add your private key to an ssh-agent session: + +```bash +eval $(ssh-agent) +ssh-add ~/path/to/private/key +``` # Quickstart diff --git a/compute.tf b/compute.tf index 82fc1cb166b4ffd1a032be376e9991421a6d3f0c..d12737e357683ff9249deea2ef3e4ccc2cb3dc42 100644 --- a/compute.tf +++ b/compute.tf @@ -12,7 +12,7 @@ data "openstack_compute_flavor_v2" "m1_small" { # template file cloud-init.yml -# + data "template_file" "cloud_init_admin_yml" { template = file("${path.module}/templates/cloud-init-admin.yml") vars = { @@ -31,6 +31,15 @@ data "template_file" "cloud_init_yml" { } } +# template file for cluster.json + +data "template_file" "cluster_json" { + template = file("${path.module}/templates/cluster.json") + vars = { + mon_bootstrap_ip = openstack_compute_instance_v2.mon[0].network[0].fixed_ip_v4 + } +} + # admin node resource "openstack_compute_instance_v2" "admin" { @@ -57,11 +66,23 @@ resource "openstack_compute_instance_v2" "admin" { network { uuid = openstack_networking_network_v2.public_network.id } + } resource "openstack_compute_floatingip_associate_v2" "admin_association" { floating_ip = openstack_compute_floatingip_v2.floating_ip.address instance_id = openstack_compute_instance_v2.admin.id + + provisioner "file" { + content = data.template_file.cluster_json.rendered + destination = "/home/sles/cluster.json" + + connection { + type = "ssh" + user = "sles" + host = openstack_compute_floatingip_v2.floating_ip.address + } + } } # OSD nodes diff --git a/templates/cluster.json b/templates/cluster.json new file mode 100644 index 0000000000000000000000000000000000000000..685a67910bfe64b5c4895fe080f47e55e238abc0 --- /dev/null +++ b/templates/cluster.json @@ -0,0 +1,53 @@ +{ + "bootstrap_ceph_conf": { + "global": { + "cluster_network": "10.0.100.0/24" + } + }, + "bootstrap_minion": "mon01", + "bootstrap_mon_ip": "${mon_bootstrap_ip}", + "container": { + "images": { + "ceph": "registry.suse.com/ses/7/ceph/ceph" + }, + "registries_enabled": true + }, + "dashboard": { + "password": "admin", + "password_update_required": false, + "username": "admin" + }, + "minions": { + "admin": [ + "admin" + ], + "all": [ + "mon01", + "osd02", + "mds01", + "osd01", + "osd03", + "admin" + ], + "cephadm": [ + "mon01", + "osd02", + "mds01", + "osd01", + "osd03", + "admin" + ], + "latency": [], + "throughput": [] + }, + "ssh": { + "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAmubZLzWK34JgVdarIYka65HxCS7W1MbviyVu9eIT4Oy3Crdj\nBWv/J10Rit/BMl4qS/fZoZ94HS+E9OIcH1mZoZnyKkwmJcQaNYyyQ3wV8gcBkbD2\ngznLr9GkDW2W39xdCd1wos0GkYxFlDnrnJsGM0F4Pntx1y6AbRz5wZhWx4sYN8gE\neu/Sje+vDz4GVCmSxud33eg7bGqIA3B6Bqa6A4Ynmnzt2UrXRfzKaUd2OkI0KRvF\nOpNfviH5qqEFJaY/kZKdxEEF3nPAJGDxIdRN7V+HYvdPfRHQ0AJ7mCCPf/lRhJFz\nCuZgSUn+8T9RDNs9N1qmAv2g1U2PFALl44bGGQIDAQABAoIBAAGUfj2liaua/FmT\nzX4TlHM3s2I5GJbmCpZ8RMP8UOCX+YwB7+AjyGAB6oZknudhH4RT3GPyKPr/O5d1\n4PyO4OrNk7NLwI3dELlgHIdksiKcYK84Q2N2SPYbqNU8O3BAIrDRke8PMVR1vlXz\nO0yHJkqKjevxPWmI/2VdiMypPaVeaUoqqBI5ZJBs2KWoms4QpW2M+gl3i9vps79G\nNBF2ekBlTSKmXKKf8GHIQXsRgXGcKm6xo2VL+vZaMedDddZvKvH/57EWD8ncOllV\nzbf841Oaur1jXi3FtYNc4XOzJNTL+Nkf/Db+JJK7PiAPzHlhlx+qVsojTfEzjWWa\nmBiVgUsCgYEAw83XRsKt9QsyDfZbv8qbrMwkZB4b7TMHI9gZRBD7+vyI0XOdaUW+\n2RFDlHjAf9fLn5Swnx7B24LpdNvjHT31HJeCOkTfI93m3G11gk7iQ3a2t/P7Egpv\nlFKDFlAiBiJ24j3a+1+JUOeVwhUHFimAKojq0zELELY5b8WH9M7pQR8CgYEAyoXq\nhdrtgaxTJHI0n4Hp//HMngO9PuwCccXg8MYp/nQb9dwCEL1ze1hI6BPDdqCmbrjF\nfXIHaa48cRoLB+vm/J42zTG9EnmOJlK4evd53dplR6JCSy4hEum4hpEZtsRn9LIx\ndGw7VeRcBft1fOCmgvp3TudbRK26eZ9JFQJi+ccCgYA8NTdVEtfa2a5yjKZ5uxtT\nbxJhlsCPl3lClFhwjaht7OlFPn/QtxmQNbbKGLdYmEqMr3P/+b0yena+8D5N55dP\nS2dH85WJudobPa08fHUmuYJF3kf9rCfTO+wDGHDd4gscVljXovDeZ9es7jpXnjtC\n2QccGaCFawMOU3cS1+zxkQKBgCeZ3g0EjTKxDqTuzAlwruAEWR2A362BGs1Cg0Sx\nix6dd6Ywuhqp4P36em8fBjaZHVJDQSLRfE+W6Wy4SfXnlAhLq62eDzmgmUI3JKmu\n4J6YCPvj55Cp2X/IQfPWRa/uYeGAQplgXI3kFHZ7ADNF/mlYLqI4LSmVywPjOLgp\n+k6bAoGBAJbhN6C6gIT4ess2Eh0iJNjeqoLQDhDjB/QIrugpm9HNYST0rP1f2vMy\nWpBamr14nsoRRyiZxcU2dSjBGpSP+F00k6NzqrKOW/HZFBWDT/cNNYnTRpneRAB4\n3gZRZcTsmQVUhhHp/RE5JpWqRntJGQkduuN0DfVH7tQEKtKaWiEC\n-----END RSA PRIVATE KEY-----", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCa5tkvNYrfgmBV1qshiRrrkfEJLtbUxu+LJW714hPg7LcKt2MFa/8nXRGK38EyXipL99mhn3gdL4T04hwfWZmhmfIqTCYlxBo1jLJDfBXyBwGRsPaDOcuv0aQNbZbf3F0J3XCizQaRjEWUOeucmwYzQXg+e3HXLoBtHPnBmFbHixg3yAR679KN768PPgZUKZLG53fd6DtsaogDcHoGproDhieafO3ZStdF/MppR3Y6QjQpG8U6k1++IfmqoQUlpj+Rkp3EQQXec8AkYPEh1E3tX4di9099EdDQAnuYII9/+VGEkXMK5mBJSf7xP1EM2z03WqYC/aDVTY8UAuXjhsYZ" + }, + "time_server": { + "enabled": true, + "server_hosts": [ + "pool.ntp.org" + ] + } +}