run.sh 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. #!/bin/sh
  2. rm -rf /tmp/m1.data /tmp/m2.data /tmp/m3.data
  3. /etc/init.d/bind9 start
  4. # get rid of hosts so go lookup won't resolve 127.0.0.1 to localhost
  5. cat /dev/null >/etc/hosts
  6. goreman -f /certs-common-name/Procfile start &
  7. sleep 7s
  8. ETCDCTL_API=3 ./etcdctl \
  9. --cacert=/certs-common-name/ca.crt \
  10. --cert=/certs-common-name/server.crt \
  11. --key=/certs-common-name/server.key.insecure \
  12. --endpoints=https://m1.etcd.local:2379 \
  13. endpoint health --cluster
  14. sleep 2s
  15. ETCDCTL_API=3 ./etcdctl \
  16. --cacert=/certs-common-name/ca.crt \
  17. --cert=/certs-common-name/server.crt \
  18. --key=/certs-common-name/server.key.insecure \
  19. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  20. put abc def
  21. sleep 2s
  22. ETCDCTL_API=3 ./etcdctl \
  23. --cacert=/certs-common-name/ca.crt \
  24. --cert=/certs-common-name/server.crt \
  25. --key=/certs-common-name/server.key.insecure \
  26. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  27. get abc
  28. sleep 1s && printf "\n"
  29. echo "Step 1. creating root role"
  30. ETCDCTL_API=3 ./etcdctl \
  31. --cacert=/certs-common-name/ca.crt \
  32. --cert=/certs-common-name/server.crt \
  33. --key=/certs-common-name/server.key.insecure \
  34. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  35. role add root
  36. sleep 1s && printf "\n"
  37. echo "Step 2. granting readwrite 'foo' permission to role 'root'"
  38. ETCDCTL_API=3 ./etcdctl \
  39. --cacert=/certs-common-name/ca.crt \
  40. --cert=/certs-common-name/server.crt \
  41. --key=/certs-common-name/server.key.insecure \
  42. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  43. role grant-permission root readwrite foo
  44. sleep 1s && printf "\n"
  45. echo "Step 3. getting role 'root'"
  46. ETCDCTL_API=3 ./etcdctl \
  47. --cacert=/certs-common-name/ca.crt \
  48. --cert=/certs-common-name/server.crt \
  49. --key=/certs-common-name/server.key.insecure \
  50. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  51. role get root
  52. sleep 1s && printf "\n"
  53. echo "Step 4. creating user 'root'"
  54. ETCDCTL_API=3 ./etcdctl \
  55. --cacert=/certs-common-name/ca.crt \
  56. --cert=/certs-common-name/server.crt \
  57. --key=/certs-common-name/server.key.insecure \
  58. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  59. --interactive=false \
  60. user add root:123
  61. sleep 1s && printf "\n"
  62. echo "Step 5. granting role 'root' to user 'root'"
  63. ETCDCTL_API=3 ./etcdctl \
  64. --cacert=/certs-common-name/ca.crt \
  65. --cert=/certs-common-name/server.crt \
  66. --key=/certs-common-name/server.key.insecure \
  67. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  68. user grant-role root root
  69. sleep 1s && printf "\n"
  70. echo "Step 6. getting user 'root'"
  71. ETCDCTL_API=3 ./etcdctl \
  72. --cacert=/certs-common-name/ca.crt \
  73. --cert=/certs-common-name/server.crt \
  74. --key=/certs-common-name/server.key.insecure \
  75. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  76. user get root
  77. sleep 1s && printf "\n"
  78. echo "Step 7. enabling auth"
  79. ETCDCTL_API=3 ./etcdctl \
  80. --cacert=/certs-common-name/ca.crt \
  81. --cert=/certs-common-name/server.crt \
  82. --key=/certs-common-name/server.key.insecure \
  83. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  84. auth enable
  85. sleep 1s && printf "\n"
  86. echo "Step 8. writing 'foo' with 'root:123'"
  87. ETCDCTL_API=3 ./etcdctl \
  88. --cacert=/certs-common-name/ca.crt \
  89. --cert=/certs-common-name/server.crt \
  90. --key=/certs-common-name/server.key.insecure \
  91. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  92. --user=root:123 \
  93. put foo bar
  94. sleep 1s && printf "\n"
  95. echo "Step 9. writing 'aaa' with 'root:123'"
  96. ETCDCTL_API=3 ./etcdctl \
  97. --cacert=/certs-common-name/ca.crt \
  98. --cert=/certs-common-name/server.crt \
  99. --key=/certs-common-name/server.key.insecure \
  100. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  101. --user=root:123 \
  102. put aaa bbb
  103. sleep 1s && printf "\n"
  104. echo "Step 10. writing 'foo' without 'root:123'"
  105. ETCDCTL_API=3 ./etcdctl \
  106. --cacert=/certs-common-name/ca.crt \
  107. --cert=/certs-common-name/server.crt \
  108. --key=/certs-common-name/server.key.insecure \
  109. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  110. put foo bar
  111. sleep 1s && printf "\n"
  112. echo "Step 11. reading 'foo' with 'root:123'"
  113. ETCDCTL_API=3 ./etcdctl \
  114. --cacert=/certs-common-name/ca.crt \
  115. --cert=/certs-common-name/server.crt \
  116. --key=/certs-common-name/server.key.insecure \
  117. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  118. --user=root:123 \
  119. get foo
  120. sleep 1s && printf "\n"
  121. echo "Step 12. reading 'aaa' with 'root:123'"
  122. ETCDCTL_API=3 ./etcdctl \
  123. --cacert=/certs-common-name/ca.crt \
  124. --cert=/certs-common-name/server.crt \
  125. --key=/certs-common-name/server.key.insecure \
  126. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  127. --user=root:123 \
  128. get aaa
  129. sleep 1s && printf "\n"
  130. echo "Step 13. creating a new user 'test-common-name:test-pass'"
  131. ETCDCTL_API=3 ./etcdctl \
  132. --cacert=/certs-common-name/ca.crt \
  133. --cert=/certs-common-name/server.crt \
  134. --key=/certs-common-name/server.key.insecure \
  135. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  136. --user=root:123 \
  137. --interactive=false \
  138. user add test-common-name:test-pass
  139. sleep 1s && printf "\n"
  140. echo "Step 14. creating a role 'test-role'"
  141. ETCDCTL_API=3 ./etcdctl \
  142. --cacert=/certs-common-name/ca.crt \
  143. --cert=/certs-common-name/server.crt \
  144. --key=/certs-common-name/server.key.insecure \
  145. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  146. --user=root:123 \
  147. role add test-role
  148. sleep 1s && printf "\n"
  149. echo "Step 15. granting readwrite 'aaa' --prefix permission to role 'test-role'"
  150. ETCDCTL_API=3 ./etcdctl \
  151. --cacert=/certs-common-name/ca.crt \
  152. --cert=/certs-common-name/server.crt \
  153. --key=/certs-common-name/server.key.insecure \
  154. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  155. --user=root:123 \
  156. role grant-permission test-role readwrite aaa --prefix
  157. sleep 1s && printf "\n"
  158. echo "Step 16. getting role 'test-role'"
  159. ETCDCTL_API=3 ./etcdctl \
  160. --cacert=/certs-common-name/ca.crt \
  161. --cert=/certs-common-name/server.crt \
  162. --key=/certs-common-name/server.key.insecure \
  163. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  164. --user=root:123 \
  165. role get test-role
  166. sleep 1s && printf "\n"
  167. echo "Step 17. granting role 'test-role' to user 'test-common-name'"
  168. ETCDCTL_API=3 ./etcdctl \
  169. --cacert=/certs-common-name/ca.crt \
  170. --cert=/certs-common-name/server.crt \
  171. --key=/certs-common-name/server.key.insecure \
  172. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  173. --user=root:123 \
  174. user grant-role test-common-name test-role
  175. sleep 1s && printf "\n"
  176. echo "Step 18. writing 'aaa' with 'test-common-name:test-pass'"
  177. ETCDCTL_API=3 ./etcdctl \
  178. --cacert=/certs-common-name/ca.crt \
  179. --cert=/certs-common-name/server.crt \
  180. --key=/certs-common-name/server.key.insecure \
  181. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  182. --user=test-common-name:test-pass \
  183. put aaa bbb
  184. sleep 1s && printf "\n"
  185. echo "Step 19. writing 'bbb' with 'test-common-name:test-pass'"
  186. ETCDCTL_API=3 ./etcdctl \
  187. --cacert=/certs-common-name/ca.crt \
  188. --cert=/certs-common-name/server.crt \
  189. --key=/certs-common-name/server.key.insecure \
  190. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  191. --user=test-common-name:test-pass \
  192. put bbb bbb
  193. sleep 1s && printf "\n"
  194. echo "Step 20. reading 'aaa' with 'test-common-name:test-pass'"
  195. ETCDCTL_API=3 ./etcdctl \
  196. --cacert=/certs-common-name/ca.crt \
  197. --cert=/certs-common-name/server.crt \
  198. --key=/certs-common-name/server.key.insecure \
  199. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  200. --user=test-common-name:test-pass \
  201. get aaa
  202. sleep 1s && printf "\n"
  203. echo "Step 21. reading 'bbb' with 'test-common-name:test-pass'"
  204. ETCDCTL_API=3 ./etcdctl \
  205. --cacert=/certs-common-name/ca.crt \
  206. --cert=/certs-common-name/server.crt \
  207. --key=/certs-common-name/server.key.insecure \
  208. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  209. --user=test-common-name:test-pass \
  210. get bbb
  211. sleep 1s && printf "\n"
  212. echo "Step 22. writing 'aaa' with CommonName 'test-common-name'"
  213. ETCDCTL_API=3 ./etcdctl \
  214. --cacert=/certs-common-name/ca.crt \
  215. --cert=/certs-common-name/server.crt \
  216. --key=/certs-common-name/server.key.insecure \
  217. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  218. put aaa ccc
  219. sleep 1s && printf "\n"
  220. echo "Step 23. reading 'aaa' with CommonName 'test-common-name'"
  221. ETCDCTL_API=3 ./etcdctl \
  222. --cacert=/certs-common-name/ca.crt \
  223. --cert=/certs-common-name/server.crt \
  224. --key=/certs-common-name/server.key.insecure \
  225. --endpoints=https://m1.etcd.local:2379,https://m2.etcd.local:22379,https://m3.etcd.local:32379 \
  226. get aaa