diff --git a/ansible/bootstrap-win.yml b/ansible/bootstrap-win.yml new file mode 100644 index 0000000..5141a04 --- /dev/null +++ b/ansible/bootstrap-win.yml @@ -0,0 +1,5 @@ +--- +- name: Bootstrap windows host + hosts: all + roles: + - infra-role-bootstrap-windows diff --git a/ansible/inventory/test b/ansible/inventory/test index 7537144..6ebbc8c 100644 --- a/ansible/inventory/test +++ b/ansible/inventory/test @@ -42,6 +42,7 @@ unstable-small-01.aws-eu-central-1a.nimbus.pyrmont hostname=unstable-small-01.aw unstable-small-02.aws-eu-central-1a.nimbus.pyrmont hostname=unstable-small-02.aws-eu-central-1a.nimbus.pyrmont ansible_host=18.193.206.240 env=nimbus stage=pyrmont data_center=aws-eu-central-1a region=eu-central-1a dns_entry=unstable-small-02.aws-eu-central-1a.nimbus.pyrmont.statusim.net unstable-small-03.aws-eu-central-1a.nimbus.pyrmont hostname=unstable-small-03.aws-eu-central-1a.nimbus.pyrmont ansible_host=52.28.209.174 env=nimbus stage=pyrmont data_center=aws-eu-central-1a region=eu-central-1a dns_entry=unstable-small-03.aws-eu-central-1a.nimbus.pyrmont.statusim.net unstable-small-04.aws-eu-central-1a.nimbus.pyrmont hostname=unstable-small-04.aws-eu-central-1a.nimbus.pyrmont ansible_host=3.125.21.130 env=nimbus stage=pyrmont data_center=aws-eu-central-1a region=eu-central-1a dns_entry=unstable-small-04.aws-eu-central-1a.nimbus.pyrmont.statusim.net +windows-01.gc-us-central1-a.nimbus.prater hostname=windows-01.gc-us-central1-a.nimbus.prater ansible_host=35.232.80.244 env=nimbus stage=prater data_center=gc-us-central1-a region=us-central1-a dns_entry=windows-01.gc-us-central1-a.nimbus.prater.statusim.net [aws-eu-central-1a] goerli-01.aws-eu-central-1a.nimbus.geth @@ -88,6 +89,9 @@ unstable-small-04.aws-eu-central-1a.nimbus.pyrmont [dash.nimbus] node-01.aws-eu-central-1a.dash.nimbus +[gc-us-central1-a] +windows-01.gc-us-central1-a.nimbus.prater + [he-eu-hel1] stable-metal-01.he-eu-hel1.nimbus.mainnet @@ -144,6 +148,9 @@ u-libp2p-s-large-01.aws-eu-central-1a.nimbus.prater [nimbus-prater-unstable-libp2p-unstable] u-libp2p-u-large-01.aws-eu-central-1a.nimbus.prater +[nimbus-prater-windows] +windows-01.gc-us-central1-a.nimbus.prater + [nimbus-pyrmont-stable] stable-large-01.aws-eu-central-1a.nimbus.pyrmont stable-small-01.aws-eu-central-1a.nimbus.pyrmont diff --git a/ansible/requirements.yml b/ansible/requirements.yml index f4bcfdb..abec238 100644 --- a/ansible/requirements.yml +++ b/ansible/requirements.yml @@ -19,6 +19,11 @@ version: c0223e6144f8658083491319085c7f40996a9b1c scm: git +- name: infra-role-bootstrap-windows + src: git@github.com:status-im/infra-role-bootstrap.git + version: 03a7a07d06ba6b34e99c57b79a5767e9d2e10a1d + scm: git + - name: oauth-proxy src: git@github.com:status-im/infra-role-oauth-proxy.git version: 567b4cf59d97f87be78e77e62684214f6de03096 diff --git a/prater.tf b/prater.tf index aae9db8..6958177 100644 --- a/prater.tf +++ b/prater.tf @@ -145,3 +145,26 @@ module "nimbus_nodes_prater_unstable_libp2p_unstable_large" { secgroup_id = module.nimbus_network.secgroup.id keypair_name = aws_key_pair.arthurk.key_name } + +module "nimbus_nodes_prater_unstable_windows" { + source = "github.com/status-im/infra-tf-google-cloud" + + /* Specific */ + name = "windows" + env = "nimbus" + stage = "prater" + group = "nimbus-prater-windows" + domain = var.domain + zone = "us-central1-a" + + /* System */ + image = "windows-cloud/windows-server-2019-dc-core-v20210511" + win_password = data.pass_password.windows_user_pass.password + ansible_playbook = "${path.cwd}/ansible/bootstrap-win.yml" + + /* Scaling */ + type = "n2-standard-2" /* 2 vCPUs, 8GB RAM */ + host_count = 1 + root_vol_size = 80 + root_vol_type = "pd-ssd" +} diff --git a/providers.tf b/providers.tf index b5a1a62..5f2ae0c 100644 --- a/providers.tf +++ b/providers.tf @@ -4,6 +4,12 @@ provider "aws" { secret_key = data.pass_password.aws_secret_key.password } +provider "google" { + credentials = data.pass_password.google_cloud_cred_json.full + project = "russia-servers" + region = "us-central1" +} + provider "cloudflare" { email = data.pass_password.cloudflare_email.password api_key = data.pass_password.cloudflare_token.password diff --git a/secrets.tf b/secrets.tf index 8625041..417805b 100644 --- a/secrets.tf +++ b/secrets.tf @@ -22,3 +22,13 @@ data "pass_password" "aws_access_key" { data "pass_password" "aws_secret_key" { path = "cloud/AWS/Nimbus/secret-key" } + +/* Google Cloud API auth JSON */ +data "pass_password" "google_cloud_cred_json" { + path = "cloud/GoogleCloud/json" +} + +/* Windows user bootstrap password */ +data "pass_password" "windows_user_pass" { + path = "hosts/windows-pass" +}