[skolo] Add authorized_keys and an ansible playbook for distribution.

The initial authorized_keys file is the union of all
authorized_keys files from all jumphosts, sorted, and then run
through 'uniq'.

Docs have already been updated:
https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.mf3a1j4xx7fx

Change-Id: Iff58d0ada95ceb5707abb34f1bcb0fa3fa74423f
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/399677
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
diff --git a/skolo/ansible/Makefile b/skolo/ansible/Makefile
new file mode 100644
index 0000000..f264765
--- /dev/null
+++ b/skolo/ansible/Makefile
@@ -0,0 +1,2 @@
+push_authorized_keys_to_jumphosts:
+	ansible-playbook push_authorized_keys_to_jumphosts.yml
\ No newline at end of file
diff --git a/skolo/ansible/ansible.cfg b/skolo/ansible/ansible.cfg
new file mode 100644
index 0000000..296641c
--- /dev/null
+++ b/skolo/ansible/ansible.cfg
@@ -0,0 +1,3 @@
+[defaults]
+inventory = hosts
+host_key_checking = False
\ No newline at end of file
diff --git a/skolo/ansible/hosts b/skolo/ansible/hosts
new file mode 100644
index 0000000..57f41ef
--- /dev/null
+++ b/skolo/ansible/hosts
@@ -0,0 +1,10 @@
+[jumphosts]
+100.115.95.131
+100.115.95.143
+100.115.95.133
+100.115.95.134
+100.115.95.135
+
+[jumphosts:vars]
+ansible_connection=ssh
+ansible_user=chrome-bot
\ No newline at end of file
diff --git a/skolo/ansible/push_authorized_keys_to_jumphosts.yml b/skolo/ansible/push_authorized_keys_to_jumphosts.yml
new file mode 100644
index 0000000..399050c
--- /dev/null
+++ b/skolo/ansible/push_authorized_keys_to_jumphosts.yml
@@ -0,0 +1,9 @@
+- hosts: jumphosts
+  tasks:
+    - name: Copy authorized_keys with owner and permissions
+      ansible.builtin.copy:
+        src: ../authorized_keys
+        dest: /home/chrome-bot/.ssh/authorized_keys
+        owner: chrome-bot
+        group: chrome-bot
+        mode: '0644'
diff --git a/skolo/authorized_keys b/skolo/authorized_keys
new file mode 100644
index 0000000..b7c4c51
--- /dev/null
+++ b/skolo/authorized_keys
@@ -0,0 +1,20 @@
+# This authorized_keys files is used on all the jumphosts in the skolo.
+# The canonical version can be found at https://skia.googlesource.com/buildbot/+/refs/heads/master/skolo/authorized_keys
+# Use the ansible scripts to push updated versions of this file to each jumphost:
+#    $ cd skolo/ansible
+#    $ make push_authorized_keys_to_jumphosts
+#
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINA5Xe8LJDQw7Wi3kBjXOqy3nkjQsRohNV9rKLaHkHOB jcgregorio@google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC15Zijil1o0/YRdi/KO95tYAOG3WqpgdnyXivPwn95dZ612G01qT3lb1pP41VQ1C8Kuup343A7kySYe/5taqRKTYmYfM09iuZpzJ/HoWos5JVdOmwjxT57Suyo/NF43Vu3aLukioaVfnOOcuoLbGdgTeCx4qregpMkJNw8Llvb3ePxneyj9zD7tcnTinoH5jsV7i72ncqLhJ5lQln+KFDTSRxLjamFKdFhU9gFiWnRJhzWtaoUblxlSsKJL65JNmwg0tH13Uj8xaYsG1geEP6/TcGcKEPVNxoIAS5dEE2HJnm6+VQHXa/4EZd3ZYpx+tZceYE+8rVb8DO/e4cQ/cP9 borenet@borenet0.cnc.corp.google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Lmwq5twYOib/JwEHmWzhOPkrTokfkKtDDAqxrPYYUSFrLSIQ3k719ajhP4Ti3ZHSQ4vID3/GqeifPWVIeFp24w1EHi+4lUTAh+Dqh0ya9z8YWH18oP+qheOpXP5+EP3epAl4CEAY5zsJPVQ8C/lnkpTS6yPn5F67PF1s1CXqPzUdVI0hDr7bQ2VPRislM1VBCXfhD6AKIev0iUvAlCKrTngFK01l0lIVmShSXnZfcKe/AINnqCZNJlUhfAUABe/XZeLlOtGyFcLg8etFfmOvk2uRzUpt/1Rapolu6G690mgNZ5Mf5Q9T1XC+8nHEcKhIwT+UAUesKGHItW/JZOmt csmartdalton@csd-hammer.c.googlers.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrcMaIJ9JFilOHk3ZQyrZiesykOFhg0PsIF2fYruGIrwDoPK2yBIOL04t0OS6eYNMX53dl5ZtDEDTxHRcFuf/yMkaAIQ7YNk8k6FD7OlgNJxIwcuDzqVbitTGbL1inizT4Yoz+wqz5Osw8s2DqsnAI4G2iLa6tRjhJ3RxvNNBUG91RM2etlIjHr483Z3dvBHxUkRUQZDk1GAL1cOykNX90ebWNajbrmojrhNb/72z5iwGVIfk3hCy6Ad7PEGy6syH0/y6DscLN2a1mtpxbZTzgO286v9HMWmUHBfBsVwYhMrYGWCW1KOg4GpepjoOgLlfzQXU1lVqKhkkfR3+hgaaj csmartdalton@csmartdalton-macbookpro.roam.corp.google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzbLuVSNK1kRFA7OYRjXI/pm08M593QgPd7JIDCcJPLPSqPzNNniSRHVlFwVV98KyuqwScb3xA5jdfkMjvzHwK1I7/ANQF6bxRoWizsCfRw94qdY3RR9kaXtADeHor+8pftJothYQq8K1vGuYkdBgnw9RK/TfnCold/0lI4nSKnyXHfuatgV+bImqPgYVjxi7LwxSlta08a2fGia7M+gLf+WvxsrkNQawvJ/lM127fYih0MK+qSE8SBaRsqnonc4hCd4e1iY+o1kNxoFfvQPzrAB82+37XS6eQlyvQbpig4zTCa4lWCOfM7Ad2Mu0H793mile/iyNGPwQ3JeYjE7aN lovisolo@google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBpfsym1NNk4i4NqeKcGy768/bu0ClXUzRedDoK5nj8dvASa+lg5d/vq1yd9gESjWJhcGI6xw8ooRE19h0xFqpriPtfyX7Aued/2u0yDKwXD/404Za7i+kTnEZ94TukkS+vp4rFEZZ0ZKl9CVvYPTL1X0ZcfMA+v9Kye9ps5iMEabGWWu8mlGLJ98rJHuqYfiGtiU6Bp0NqdvTmSF3oQn3DejcXIfYO8X/Nyq7Rn73ygEm2DlEoFeW/afupLnJ4/r0xYpO/LI+dWRsmNRKsNslm60E/+KMMpZONOvan0uLk57mTIPGMiBxyn07/bxad7yzPM2gBNpXUZ20Ml4lbp2b rmistry@rmistry1.cnc.corp.google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBXQu2fcQhmmQgD6w8w7IF4hokf/nElkX+SGiwmd7B1VjrOpGYI+079J/LoMVVs8AHkAPJKwsaPdCEiiVI/9njRDbvF4mxDHMlFd8/ctNpMTGHf6ujWXOk+vHGwDrFsCPiPJBc5hsYMnOc7T/qFbnxhzjWt/xMCDoCsMjzdBgJUJYv37PvvGD/Q33l+C6hqyVXAQ381yVABbqDvsaXzmmr6nzzDrdEDc6SVLlYa7yjI07CNKIhc7/gyghHqeSbQ7zVLHya5sFhFyJDgLebKStE1uAQPIewqB8QNbv12smmyh429T6c1Wt9gyh5CSpUdnqMk5m6ORDKKUNRcGctkI8t egdaniel@egdaniel2.cnc.corp.google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDUJM5fFfrHua25SCAL5flEfZGJ41fcwYdZIve+u3MCgEoLIq+2yvQwEHgBp+Zszxpsfk8lQEKYWnOidhvNHIQVRYU6akLjMZ+d3V6pL7sJWErZ8NU8GKQC3872birZQvDWB2XWXIKiSAd6Qv/AmmRX0qbcKF1BXm7aJ9wHJzzWCyB7WExWajq7JnOaUQJtCZG1Vppoc+2mZDCHLfJOJZjlIiXOEeTjXK+JenFaOYIqa5Pk/crEGHj1seqbSzWlkhg8xjgE9umf9683s23aQhMU8gTigjyHAujcpiAbDwfaIIfmsFG3RWKsv3vtg8SJhz+4JkjYfn3A2SqJ1OsrCi3 hevrard@google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDeEHMk6PK+uhA0F7d+TzGbuiYubPVjEk8o7nQ1vZzoiQtWs2tep+yRILB3auWEYEgGnuex4axh5YXnOguWLLUiIgpDAVwWFOjyQQfTcDGcpABeoVN8tJToRh6vTIdp4CqqMAaa3DuMZA4Ca2Zsmq4lMt29Jcr/EWyWoK/HeK+0+8K1E2EMPHzu/H8atJzVyxaw9XIF4O9jslPHglIXkO3almwX+q4QFRkcE6ls0DkTmBq2pWcpdChHXnFgTufQ5mgENnOGtbkGCKTlF9vmxta8Ym9xCSB3mQydWijCtaHxXfZLUZeTfC/InChQMQTvIuxttkqT079YjXZWzgSSMfrd bsheedy@bsheedy-linux.kir.corp.google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDG6+8JEDFVEqNTB+sauO7pYT4AdiGbXp8GEIsfMl9sLEcQU9kIW1AyaUdlobonUm+dG/ZkCm7mHnV0OGbjr/fQ9BDdotdQWT6mgSaW6+QzpWZddcSzRMdO9nRC3OhP9FWnWpT9jWKEot90RvZn+67oDpCWh0jJ08R3gVhH0ognAfW5VdwCUdt+3R4NDgyhSiL2oMdO/JlkYDZakJDwQ9t+66yIaxrhEX0zzv8dMhrelBn3R8GF6hR33N9v4T28NortB/wf7IrjYnhzD9J1qjeS26DGi36kdWiHE8XmJI5YxevlYWozgivE+2K9qvWQQOLbNegI/mxBTnBbfXwOLS3d bsalomon@bsalomon-linux3.cnc.corp.google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMTIGKXJ21Ka2J92gy9hLQyFWquMoC19HofIElrRihEfW+jVEVH393T7RB2w6yONHJ9iK96isen3TtiscDIg6qBkpp+xLJwAGsN5ensjNrwY0E098Veb4zqEmk4FyMpofzxhxXZDYu3B8M7qUXvu104sAYFR7dJl+f70JOk3FJyqUOR/Q5WSXmQXvxS+rJdd8HcPiehafHD7Z1W/mjFzxnoVHXheq5Tv4Zi7BOR93NvjsqQdEXrj9lW/uRUrqptRuQZi/w9/99FRn1TePXl0WUt6eZwTfmL71ljf0cvK/2/ImWZF3ZEKm+VTXLT+E+m+dWNcC45D0Pdzn7FbYv02F1 mtklein@mtklein.cnc.corp.google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDq95ssw4BJuafu+BsdZhuyi3wLduLAtPFBKxIm30/0IEhsUSF8Jl4WGIwi7f6enltL4/7OPM9hM0mMzw7AnKS9kzUrO7GCqkAjvYVpZl8VZTQ0MeNVbwekiI5fb36iF7GeNUB26DRMpHdcK8VphqEXTED+6LcjKrllbQEwNSTo5h1GtRWpivBXg8aaJwtPSs4Q3vI056i9kUN8loaWiUmXH6pXakAh5nZIXTRiqru3RgDPIimz5AjJLwnJiTuFSn9xAWXW4lpx8sVPDnOfCdbXWLMsIFkdi62qIhAEirym5U644hgU9dlK/G6kobZNi9GvT1CFo+0N3xzKoxDUrQ2L borenet@borenet0.cnc.corp.google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC28P5U77BLvODOZ/Xxe81Lmkx7wmBeMacielhkVnKnLbsVfSNTYPkSNw45lr5tvGEKuHvSkrMHs8hw8QySixkGv86fWqh3dpBxSON02hXXAkFw9g44+tNBtFWlUIEf65lA5AOw3z/ZXgEihiuq/dAxK/F6JPCSQxg53LoUgAGj8CC6OXsm8yoPQhO4fVw5jKf2LDC5Mv8217sP7LG0oO4Yss+NzZ6TzrR9uow5qXrUmF2OM+BEtA7krvLx4UkWGzxwNY/2/tmCFu8z6kSsuoxYeY48YwR6+++xwZezJhBkWeipiiB95/IngXkFTUiYiUcv00CiIujV0IMbjHEYWITbZ8mkYPEbvK9kaLE5TA5hyHWcD2fdgx8imT9eoWIQFUkPAPsB1YNejgHjPQfajjtEF3WuIYHYfMydF8Ur95aaAluuNmsVDeEdESG1bg6QihW4DslIUY30B2fFinzlFao0C3LYTysr/yCuQf4woatQ7qb6FNIkh9NiCfsRiSFjhx+0eaC7sGc4ObT5HsRxtgcR9Bta+0RzjooVSAG9X455J4hVNK+POnzFIf2DkidZKwL0Bjn7zitkThcPGjekDCVe+xQsklWjB/JJVsc9AvapVyxpYWv4dkMk0Osl+EXiLDYS2Ds5eKsDrF68iiH6pc94qcpDMJGEkP5idaVkNaOKqQ== kjlubick@google.com
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCnhJNO5NPH4vtwru7xicmXd/KgyTLJngjFKcCrzB0JwvINXvC4DNQJ1FOLFMKJmGcvlTOht2/80xNFazg3UIka/xSttP2CsYO5+8JZQEcnvG2fOOx9dZPIJGsZfcU4A2JEzng3VPI1jjjTcDfahk9XjRC5xuXqtjHuUepCO4e4HWj81Tljv+JXtPldQVMkaRwFvvzO/RLHVW3X48GIJZ3VrtGGpg2BX250ickFQ4EcIca6uy7hic3lOwJ+zq8yaYd8PSN5BaHNfMFVCH1Fm21zTdt+JuqPT0hf6sBccMx/vP3+Pz40DUuFAuvoCFl3bBfDbU0MvCGowbPmdym2weCgpcQKctqBb53TYKO3eUmD38AZ3H51csiCVrsjousOxepWpK9H55rYBrDA2lIHHQjeZoXI5uTby8ZktffgOJAD27X13KRW5G7B8CLheXzKqxFq3vn2A6nRiMi6tPr/BUQedyzyfIpA2etpiYxgSn7dY6Mg9OuowHbIwYae4sTRMYZ0dC2G6kMPW+BFr1OgMWF7giuK/J3NdNA9GtiNhT8toXpAz2p4Px2cpHoi958bqM6m6JbTIFYeBYPNqua0kDwse0mn128s1V4ZPsPQEVrllNl8a1vHmV40Ile3+2E98gbpYRYsaRAvXCbmiHQipHebnXxfbLr/nVypoTw+U6r/5w== michaelludwig@google.com
diff --git a/skolo/bash/skolo.sh b/skolo/bash/skolo.sh
index 03893e6..bdb942c 100644
--- a/skolo/bash/skolo.sh
+++ b/skolo/bash/skolo.sh
@@ -7,6 +7,7 @@
 alias skolo_rack1='ssh chrome-bot@100.115.95.143'
 alias skolo_rack2='ssh chrome-bot@100.115.95.133'
 alias skolo_rack3='ssh chrome-bot@100.115.95.134'
+alias skolo_rack4='ssh chrome-bot@100.115.95.135'
 alias skolo_rpi='ssh chrome-bot@100.115.95.143'
 alias skolo_rpi2='ssh chrome-bot@100.115.95.135'
 alias skolo_win2='ssh chrome-bot@100.115.95.133'