แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒจแƒ˜แƒœ แƒ“แƒแƒ˜แƒฌแƒงแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ›แƒ แƒ’แƒ•แƒ—แƒฎแƒแƒ•แƒ แƒ“แƒแƒ’แƒ•แƒ”แƒขแƒ”แƒกแƒขแƒ แƒ›แƒแƒ—แƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฌแƒ˜แƒœแƒ แƒ“แƒฆแƒ”แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ˜แƒงแƒ แƒ›แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜. แƒ›แƒ” แƒ’แƒแƒ›แƒแƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”. แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 20 แƒฌแƒฃแƒ—แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒฅ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ แƒแƒ›. แƒ’แƒแƒœแƒ•แƒแƒแƒฎแƒšแƒ”. แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒ˜แƒแƒ“แƒ” แƒกแƒแƒแƒ—แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’... แƒ™แƒแƒ แƒ’แƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒชแƒœแƒแƒ— แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’...

แƒฃแƒœแƒ“แƒ แƒ•แƒแƒฆแƒ˜แƒแƒ แƒ, แƒ แƒแƒ› แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ–แƒแƒ แƒ›แƒแƒชแƒ˜ แƒ•แƒแƒ  (แƒ”แƒก แƒแƒ“แƒ แƒ” แƒแƒ  แƒ•แƒแƒฆแƒ˜แƒแƒ แƒ”? แƒแƒ แƒ?) แƒ“แƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ› แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒšแƒ˜แƒ“แƒ”แƒ แƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ CI/CD, แƒ’แƒแƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”: แƒ“แƒแƒ”, แƒ’แƒแƒœแƒšแƒแƒ’แƒ“แƒ”แƒก แƒ แƒแƒ’แƒแƒ แƒช แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒช แƒ›แƒแƒก แƒกแƒฃแƒ แƒก! แƒ”แƒ แƒ—แƒ˜ แƒฎแƒฃแƒ›แƒ แƒแƒ‘แƒ แƒ’แƒแƒ›แƒแƒฎแƒกแƒ”แƒœแƒ“แƒ: แƒ™แƒแƒชแƒก แƒ—แƒ”แƒ•แƒ–แƒ˜ แƒ›แƒ˜แƒ”แƒชแƒ˜ แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒ“แƒฆแƒ” แƒจแƒ”แƒญแƒแƒ›แƒก; แƒฃแƒฌแƒแƒ“แƒ”แƒ— แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒก Fed แƒ“แƒ แƒ˜แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒงแƒ”แƒšแƒจแƒ˜ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ. แƒ“แƒ แƒฌแƒแƒ•แƒ˜แƒ“แƒ แƒ˜แƒ—แƒแƒ›แƒแƒจแƒ” แƒฎแƒ แƒ˜แƒ™แƒ”แƒ‘แƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒซแƒšแƒ”แƒ‘แƒก Kuber-แƒจแƒ˜ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒแƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก แƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒก แƒ›แƒแƒกแƒจแƒ˜ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ”แƒœแƒ• (แƒ‘แƒแƒ‘แƒฃแƒแƒฉแƒ”แƒ›แƒ˜, แƒคแƒ˜แƒšแƒแƒšแƒแƒ’แƒ˜, แƒฌแƒแƒ แƒกแƒฃแƒšแƒจแƒ˜ แƒ˜แƒœแƒ’แƒšแƒ˜แƒกแƒฃแƒ แƒ˜ แƒ”แƒœแƒ˜แƒก แƒ›แƒแƒกแƒฌแƒแƒ•แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜, แƒแƒฎแƒšแƒ แƒ—แƒ˜แƒ—แƒก แƒแƒขแƒ แƒ˜แƒแƒšแƒ”แƒ‘แƒ“แƒ แƒขแƒแƒซแƒแƒ แƒจแƒ˜ แƒ“แƒ แƒแƒ› แƒฌแƒ˜แƒœแƒแƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ”แƒฅแƒกแƒžแƒ แƒ”แƒกแƒ˜แƒฃแƒšแƒแƒ“ แƒ›แƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ“แƒ).

แƒแƒกแƒ” แƒ แƒแƒ›, แƒแƒ› แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒจแƒ˜ แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ  แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”:

  1. Jenkins-แƒจแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒ—แƒแƒ•แƒแƒ“ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ“แƒแƒœ แƒแƒœ แƒกแƒฎแƒ•แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ;
  2. แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒฆแƒ แƒฃแƒ‘แƒšแƒ˜แƒก แƒ™แƒแƒœแƒกแƒแƒšแƒ—แƒแƒœ (Cloud shell) แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒ“แƒแƒœ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒแƒ’แƒ”แƒœแƒขแƒ˜แƒ—;
  3. แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒ”แƒ— แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ Google Kubernetes Engine-แƒ–แƒ”.


แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒ›แƒ”, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒฌแƒ˜แƒšแƒแƒ“ แƒแƒ แƒแƒ™แƒ”แƒ—แƒ˜แƒšแƒกแƒ˜แƒœแƒ“แƒ˜แƒกแƒ˜แƒ”แƒ แƒ˜ แƒ•แƒแƒ . แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ‘แƒ”แƒœ, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› แƒœแƒแƒฌแƒ˜แƒšแƒ˜ Google แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒจแƒ˜ แƒ“แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฎแƒแƒ แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ’แƒแƒฅแƒ•แƒ— GCP แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒกแƒแƒช แƒ”แƒก แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ แƒ”แƒฎแƒ”แƒ‘แƒ.

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฉแƒ”แƒ›แƒ˜ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒแƒขแƒงแƒฃแƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒ แƒชแƒ”แƒšแƒ˜. แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒ›แƒ˜แƒœแƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜: แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒจแƒ” แƒ“แƒแƒ•แƒ“แƒ”แƒฅแƒ˜, แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ  แƒ•แƒ˜แƒชแƒแƒ“แƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ“แƒแƒญแƒ แƒ, แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒ›แƒ–แƒ แƒแƒ  แƒ˜แƒงแƒ แƒ“แƒแƒ’แƒฃแƒ’แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒœแƒแƒฌแƒ˜แƒš-แƒœแƒแƒฌแƒ˜แƒš แƒ“แƒแƒ•แƒ’แƒฃแƒ’แƒšแƒ” แƒ“แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ›แƒแƒ•แƒแƒ’แƒ•แƒแƒ แƒ” แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ. แƒ“แƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜, แƒ แƒแƒชแƒ แƒ“แƒแƒ›แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ” แƒ”แƒก, แƒแƒ  แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒแƒก แƒ˜แƒกแƒ”แƒ• แƒ“แƒแƒ’แƒฃแƒ’แƒšแƒ“แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒชแƒแƒš-แƒชแƒแƒšแƒ™แƒ” แƒ“แƒ แƒจแƒ”แƒ•แƒแƒ“แƒ’แƒ˜แƒœแƒ, แƒ›แƒ” แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒ•แƒฌแƒ”แƒ  แƒแƒกแƒ”แƒ— แƒ—แƒแƒฆแƒšแƒ˜แƒ—แƒฃแƒ  แƒคแƒฃแƒ แƒชแƒšแƒ”แƒ‘แƒก.

แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜: 1. แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ แƒ”แƒฌแƒ”แƒ แƒ โ€žแƒฉแƒ”แƒ›แƒ—แƒ•แƒ˜แƒกโ€œ, แƒ แƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ แƒแƒ  แƒ•แƒ แƒชแƒ”แƒšแƒ“แƒ”แƒ‘แƒ. แƒ›แƒแƒฎแƒแƒ แƒฃแƒšแƒ˜ แƒ•แƒแƒ , แƒ แƒแƒ› แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ” แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜ "แƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒแƒกแƒ” แƒ’แƒแƒ›แƒ”แƒ™แƒ”แƒ—แƒ”แƒ‘แƒ˜แƒœแƒ".
2. แƒ—แƒฃ แƒœแƒแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ˜แƒ—แƒ•แƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ แƒ˜แƒšแƒ˜แƒ—, แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒงแƒ•แƒ”แƒšแƒ แƒฉแƒ”แƒ›แƒ˜ แƒฌแƒ˜แƒœแƒ แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒฃแƒกแƒขแƒ˜ แƒ›แƒแƒ แƒ˜แƒšแƒ˜แƒก แƒฎแƒกแƒœแƒแƒ แƒ˜.

Jenkins-แƒจแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ

แƒ›แƒ” แƒ•แƒ’แƒ”แƒ’แƒ›แƒแƒ• แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒก: แƒ แƒ แƒจแƒฃแƒแƒจแƒ˜แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ? แƒฎแƒ”แƒšแƒ˜แƒ— แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒกแƒ˜แƒ›แƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ“แƒ แƒฌแƒแƒ“แƒ˜แƒ—!

แƒ•แƒžแƒแƒกแƒฃแƒฎแƒแƒ‘: แƒ›แƒแƒ แƒ—แƒšแƒ แƒ–แƒแƒ แƒ›แƒแƒชแƒ˜ แƒ•แƒแƒ , แƒแƒ  แƒ›แƒ˜แƒงแƒ•แƒแƒ แƒก, แƒ แƒแƒชแƒ แƒฌแƒฃแƒฌแƒฃแƒœแƒ”แƒ‘แƒ”แƒœ: แƒ›แƒ˜แƒจแƒ, แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒ˜แƒจแƒšแƒ”แƒ‘แƒ, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฌแƒแƒ•แƒ˜แƒ“แƒ! แƒ—แƒฅแƒ•แƒ”แƒœ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒงแƒฃแƒ แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒจแƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒ˜แƒ แƒฉแƒ”แƒ•แƒœแƒ˜แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ“. แƒ—แƒฃ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ˜แƒ“แƒแƒœแƒแƒช แƒฃแƒœแƒ“แƒ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ—, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒ” แƒ•แƒแƒฌแƒงแƒแƒ‘ แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒแƒก.

แƒ’แƒ”แƒ’แƒ›แƒ แƒแƒกแƒ”แƒ—แƒ˜แƒ: แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒจแƒ”แƒ’แƒ•แƒ”แƒซแƒšแƒ แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒกแƒ˜แƒ˜แƒ“แƒแƒœ, แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜. แƒ”แƒœแƒ•, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒก แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒก แƒ“แƒ แƒฃแƒ‘แƒ˜แƒซแƒ’แƒ”แƒ‘แƒก แƒ›แƒแƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒฅแƒ˜แƒ“แƒแƒœ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒฃแƒ‘แƒ”แƒ แƒจแƒ˜ แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒจแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒจแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒ แƒ“แƒ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก, แƒ”แƒก แƒ—แƒ”แƒ›แƒแƒก แƒแƒ  แƒ”แƒฎแƒ”แƒ‘แƒ. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒ›แƒ–แƒแƒ“ แƒแƒ แƒ˜แƒก. แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ˜ แƒ แƒแƒ›: แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒแƒžแƒ แƒ˜แƒแƒ แƒ˜ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ›แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒชแƒ•แƒšแƒแƒ“แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒจแƒ˜. แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜, แƒ›แƒแƒ“แƒ˜แƒ—, แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒ˜แƒงแƒแƒก แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ BUILD_VERSION, แƒแƒ›แƒแƒ–แƒ” แƒ“แƒแƒฌแƒ•แƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒแƒ  แƒจแƒ”แƒ•แƒฉแƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ“แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒแƒฎแƒšแƒแƒก แƒ›แƒ˜แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒแƒก.

แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก. แƒแƒ แƒ˜ แƒ แƒแƒ› แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ’แƒแƒ›แƒแƒฎแƒกแƒ”แƒœแƒ“แƒ:

  • แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก API, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜ แƒกแƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก;
  • แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒ”แƒ— แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ˜แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ (แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ”แƒก แƒแƒ แƒ˜แƒก JFrog Artifactory, แƒ แƒแƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜).

Jenkins Remote Access API

แƒ“แƒแƒ›แƒ™แƒ•แƒ˜แƒ“แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜ แƒขแƒ แƒแƒ“แƒ˜แƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ›แƒ˜แƒ แƒฉแƒ”แƒ•แƒœแƒ˜แƒ, แƒ—แƒแƒ•แƒ˜ แƒแƒ•แƒแƒ แƒ˜แƒ“แƒ แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ• แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒก.
แƒ—แƒแƒ•แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒ•แƒชแƒ”แƒ› แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ‘แƒ–แƒแƒชแƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒš แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒก API แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜:

แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก API-แƒก แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒ— แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ“แƒ˜ แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒ–แƒ”. <โ€ฆ> แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒจแƒ”แƒ›แƒแƒ—แƒแƒ•แƒแƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ REST-แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒกแƒขแƒ˜แƒšแƒ˜แƒ—. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒแƒ  แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒจแƒ˜, แƒแƒ แƒแƒ›แƒ”แƒ“ URL, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ ".../api/"แƒกแƒแƒ“"..." แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ API แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜.

แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ—แƒฃ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒ—, แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build, แƒ›แƒแƒจแƒ˜แƒœ แƒแƒ› แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒก API แƒกแƒแƒกแƒขแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒแƒฅ http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜, แƒ แƒ แƒคแƒแƒ แƒ›แƒ˜แƒ— แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ›แƒแƒฎแƒ•แƒ˜แƒšแƒแƒ— แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ XML-แƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ API แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒคแƒ˜แƒšแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก.

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒกแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ’แƒ•แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก (แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜) แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ (แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“):

http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]

แƒจแƒ”แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒก?

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒคแƒ˜แƒšแƒขแƒ แƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒ—แƒแƒ•แƒ แƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒ— แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ. แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ &แƒ’แƒแƒ›แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ แƒ“แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒชแƒ”แƒ›แƒ— แƒ’แƒ–แƒแƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒกแƒ™แƒ”แƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒขแƒแƒšแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ. แฒ“แƒ˜แƒแƒฎ แƒ“แƒ˜แƒแƒฎ. แƒแƒ แƒ›แƒแƒ’แƒ˜ แƒฃแƒแƒ แƒงแƒแƒคแƒ˜แƒ—แƒ˜ แƒแƒ แƒ˜แƒก แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ แƒ˜แƒชแƒฎแƒแƒ•แƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก, แƒ แƒแƒช แƒแƒ  แƒ’แƒ•แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก:

http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result!='SUCCESS']

แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ—แƒ แƒกแƒ˜แƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜
แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

แƒ˜แƒกแƒ”, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒกแƒแƒ แƒ—แƒแƒ‘แƒแƒ“, แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒคแƒ˜แƒšแƒขแƒ แƒ›แƒ แƒแƒ  แƒ›แƒแƒ’แƒ•แƒแƒขแƒงแƒฃแƒ (แƒคแƒ˜แƒšแƒขแƒ แƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒ˜แƒขแƒงแƒฃแƒ”แƒ‘แƒ˜แƒแƒœ!) แƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒแƒ— "แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก" แƒกแƒ˜แƒ:

http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result='SUCCESS']

แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜
แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒ“แƒแƒœ

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒ”แƒแƒ แƒ” แƒ’แƒ–แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“. แƒ›แƒ” แƒฃแƒคแƒ แƒ แƒ›แƒแƒ›แƒฌแƒแƒœแƒก, แƒ•แƒ˜แƒ“แƒ แƒ” แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก API-แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ. แƒ™แƒแƒ แƒ’แƒแƒ“, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ—แƒฃ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒแƒจแƒ”แƒœแƒ“แƒ, แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ˜แƒก แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒกแƒแƒชแƒแƒ•แƒ˜ แƒแƒ แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒกแƒแƒชแƒแƒ•แƒ˜. แƒ›แƒแƒกแƒฌแƒแƒœแƒก. แƒ™แƒแƒ แƒ’แƒ˜, แƒ›แƒแƒ“แƒ˜แƒ— แƒ•แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ›แƒแƒก, แƒ แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒ แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“. แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒก แƒ“แƒแƒ•แƒแƒฎแƒ•แƒ”แƒ•แƒ—, แƒฉแƒแƒ•แƒญแƒ˜แƒ›แƒแƒ•แƒ— แƒ“แƒ แƒ•แƒแƒคแƒจแƒ•แƒœแƒ˜แƒ—. แƒ—แƒฃ แƒ•แƒ˜แƒœแƒ›แƒ”แƒก แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก แƒแƒœแƒšแƒแƒ˜แƒœแƒ”แƒ แƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒ˜แƒก แƒกแƒžแƒแƒ˜แƒšแƒ”แƒ แƒ˜แƒก แƒฅแƒ•แƒ”แƒจแƒแƒ.

แƒ”แƒ แƒ—แƒ˜ แƒฎแƒแƒ–แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ
แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ— แƒแƒ แƒ˜ แƒ แƒแƒ›: แƒ›แƒ” แƒ’แƒแƒ“แƒแƒ•แƒชแƒ”แƒ› แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒก แƒกแƒแƒ—แƒแƒฃแƒ แƒจแƒ˜ แƒ“แƒ แƒแƒ  แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒ“แƒแƒœ แƒ“แƒ แƒ•แƒ˜แƒ แƒฉแƒ”แƒ• แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ แƒ”แƒ แƒ—แƒ˜ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜. แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ แƒ”แƒแƒšแƒแƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“:

curl -H "X-JFrog-Art-Api:VeryLongAPIKey" -s http://arts.myre.po/artifactory/awesomeapp/ | sed 's/a href=//' | grep "$(date +%b)-$(date +%Y)|$(date +%b --date='-1 month')-$(date +%Y)" | awk '{print $1}' | grep -oP '>K[^/]+' )

แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒจแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒ”แƒ— แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒฌแƒงแƒแƒ แƒ. แƒ›แƒแƒ“แƒ˜แƒ— แƒแƒฎแƒšแƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒจแƒ˜. แƒฉแƒ”แƒ›แƒ—แƒ•แƒ˜แƒก แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒ˜แƒงแƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒแƒจแƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ. แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒแƒ“แƒ, แƒ—แƒฃ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒงแƒ "แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ".

แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒแƒฎแƒ•แƒ˜แƒ”แƒ— แƒ‘แƒแƒšแƒแƒจแƒ˜. แƒ“แƒแƒแƒญแƒ˜แƒ แƒ”แƒ— แƒฆแƒ˜แƒšแƒแƒ™แƒ”แƒ‘แƒก: แƒ“แƒแƒแƒ›แƒแƒขแƒ” แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ˜ -> แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ (แƒ”แƒ แƒ—แƒฏแƒ”แƒ แƒแƒ“แƒ˜). แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒจแƒ˜ แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ, แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— shell แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ.

แƒแƒฎแƒšแƒ แƒ™แƒ˜ แƒกแƒแƒฎแƒแƒšแƒ˜แƒกแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜. แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜ แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜. XML แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜. แƒ’แƒ–แƒแƒ“ http://ะฟัƒั‚ัŒ-ะดะพ-ะทะฐะดะฐะฝะธั/config.xml แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜, แƒ“แƒแƒแƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒแƒ— แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ  แƒ“แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒแƒ— แƒ˜แƒฅ, แƒกแƒแƒ“แƒแƒช แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ—.

แƒ’แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒ—, แƒ–แƒ”แƒ›แƒแƒ— แƒจแƒ”แƒ•แƒ—แƒแƒœแƒฎแƒ›แƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก BUILD_VERSION?

แƒ’แƒแƒ“แƒ›แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒ“แƒ แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ›แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—. แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ–แƒ”แƒ แƒ“แƒ แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒกแƒแƒ.

แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜ แƒกแƒžแƒแƒ˜แƒšแƒ”แƒ แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ.

แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ config.xml แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒ˜ แƒ”แƒ แƒ—แƒœแƒแƒ˜แƒ แƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒแƒ“แƒ”แƒก. แƒ’แƒแƒ แƒ“แƒ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜แƒก แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒ™แƒแƒ แƒ’แƒฃแƒšแƒ˜
แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

แฒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒแƒ ? แƒ”แƒกแƒ” แƒ˜แƒ’แƒ˜, แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ‘แƒ˜แƒšแƒ“แƒ˜แƒœแƒ’แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.
แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒ›แƒแƒœแƒแƒ—แƒ•แƒแƒšแƒก, แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก, แƒฉแƒแƒฌแƒ”แƒ แƒก แƒ›แƒแƒกแƒจแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒ›แƒแƒœแƒแƒ—แƒ•แƒแƒšแƒก แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก. แƒ“แƒ˜แƒแƒฎ. แฒกแƒฌแƒแƒ แƒ˜แƒ. แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ XML-แƒจแƒ˜ แƒ˜แƒ› แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก, แƒกแƒแƒ“แƒแƒช แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ (แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’). แƒ›แƒ” แƒ•แƒ˜แƒชแƒ˜, แƒ แƒแƒ› แƒ›แƒกแƒแƒคแƒšแƒ˜แƒแƒจแƒ˜ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒ˜แƒแƒœ แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒกแƒขแƒ˜แƒ™แƒ˜ แƒ—แƒแƒงแƒ•แƒแƒœแƒ˜แƒกแƒ›แƒชแƒ”แƒ›แƒšแƒ”แƒ‘แƒ˜. แƒ›แƒ” แƒ›แƒแƒ— แƒแƒ  แƒ•แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜. แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— xmlstarler แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ”, แƒกแƒแƒ“แƒแƒช แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ. แƒ›แƒ”แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒช แƒ˜แƒกแƒ” แƒ“แƒ˜แƒ“แƒ˜ แƒคแƒแƒกแƒ˜แƒ, แƒ แƒแƒ—แƒ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ˜แƒชแƒ˜แƒšแƒแƒ— XML แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ sed-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒกแƒžแƒแƒ˜แƒšแƒ”แƒ แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— แƒ™แƒแƒ“แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒ แƒฃแƒšแƒแƒ“ แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒแƒก.

แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒ“แƒแƒœ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒ›แƒ“แƒ”

#!/bin/bash
############## ะกะบะฐั‡ะธะฒะฐะตะผ ะบะพะฝั„ะธะณ
curl -X GET -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml -o appConfig.xml

############## ะฃะดะฐะปัะตะผ ะธ ะทะฐะฝะพะฒะพ ัะพะทะดะฐะตะผ xml-ัะปะตะผะตะฝั‚ ะดะปั ัะฟะธัะบะฐ ะฒะตั€ัะธะน
xmlstarlet ed --inplace -d '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' appConfig.xml

xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]' --type elem -n a appConfig.xml

xmlstarlet ed --inplace --insert '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a' --type attr -n class -v string-array appConfig.xml

############## ะงะธั‚ะฐะตะผ ะฒ ะผะฐััะธะฒ ัะฟะธัะพะบ ะฒะตั€ัะธะน ะธะท ั€ะตะฟะพะทะธั‚ะพั€ะธั
readarray -t vers < <( curl -H "X-JFrog-Art-Api:Api:VeryLongAPIKey" -s http://arts.myre.po/artifactory/awesomeapp/ | sed 's/a href=//' | grep "$(date +%b)-$(date +%Y)|$(date +%b --date='-1 month')-$(date +%Y)" | awk '{print $1}' | grep -oP '>K[^/]+' )

############## ะŸะธัˆะตะผ ะผะฐััะธะฒ ัะปะตะผะตะฝั‚ ะทะฐ ัะปะตะผะตะฝั‚ะพะผ ะฒ ะบะพะฝั„ะธะณ
printf '%sn' "${vers[@]}" | sort -r | 
                while IFS= read -r line
                do
                    xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' --type elem -n string -v "$line" appConfig.xml
                done

############## ะšะปะฐะดะตะผ ะบะพะฝั„ะธะณ ะฒะทะฐะด
curl -X POST -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml --data-binary @appConfig.xml

############## ะŸั€ะธะฒะพะดะธะผ ั€ะฐะฑะพั‡ะตะต ะผะตัั‚ะพ ะฒ ะฟะพั€ัะดะพะบ
rm -f appConfig.xml

แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒœแƒ˜แƒแƒ— แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒ“แƒ แƒฉแƒ”แƒ›แƒœแƒแƒ˜แƒ แƒ˜ แƒ–แƒแƒ แƒ›แƒแƒชแƒ˜ แƒฎแƒแƒ แƒ—, แƒ›แƒแƒจแƒ˜แƒœ แƒกแƒžแƒแƒ˜แƒšแƒ”แƒ แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒแƒ แƒ˜แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ™แƒแƒ“แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒกแƒ’แƒแƒœ:

แƒ“แƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒ“แƒแƒœ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒ›แƒ“แƒ”
แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ— แƒ”แƒก: แƒฉแƒ”แƒ›แƒ˜ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒ‘แƒ แƒ แƒ˜แƒ’แƒ˜แƒ—แƒ˜ แƒœแƒแƒ›แƒ แƒ˜แƒกแƒ แƒ“แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒœแƒแƒ›แƒ แƒ˜แƒกแƒ’แƒแƒœ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ แƒแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜แƒ—. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, awk แƒฌแƒงแƒ•แƒ”แƒขแƒก แƒแƒ แƒแƒกแƒแƒญแƒ˜แƒ แƒ แƒœแƒแƒฌแƒ˜แƒšแƒก. แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ—แƒแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒ”แƒก แƒฎแƒแƒ–แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ”แƒ‘แƒ–แƒ”.

#!/bin/bash
############## ะกะบะฐั‡ะธะฒะฐะตะผ ะบะพะฝั„ะธะณ
curl -X GET -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml -o appConfig.xml

############## ะฃะดะฐะปัะตะผ ะธ ะทะฐะฝะพะฒะพ ัะพะทะดะฐะตะผ xml-ัะปะตะผะตะฝั‚ ะดะปั ัะฟะธัะบะฐ ะฒะตั€ัะธะน
xmlstarlet ed --inplace -d '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' appConfig.xml

xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]' --type elem -n a appConfig.xml

xmlstarlet ed --inplace --insert '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a' --type attr -n class -v string-array appConfig.xml

############## ะŸะธัˆะตะผ ะฒ ั„ะฐะนะป ัะฟะธัะพะบ ะฒะตั€ัะธะน ะธะท Jenkins
curl -g -X GET -u username:apiKey 'http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result!=%22SUCCESS%22]&pretty=true' -o builds.xml

############## ะงะธั‚ะฐะตะผ ะฒ ะผะฐััะธะฒ ัะฟะธัะพะบ ะฒะตั€ัะธะน ะธะท XML
readarray vers < <(xmlstarlet sel -t -v "freeStyleProject/allBuild/displayName" builds.xml | awk -F":" '{print $2}')

############## ะŸะธัˆะตะผ ะผะฐััะธะฒ ัะปะตะผะตะฝั‚ ะทะฐ ัะปะตะผะตะฝั‚ะพะผ ะฒ ะบะพะฝั„ะธะณ
printf '%sn' "${vers[@]}" | sort -r | 
                while IFS= read -r line
                do
                    xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' --type elem -n string -v "$line" appConfig.xml
                done

############## ะšะปะฐะดะตะผ ะบะพะฝั„ะธะณ ะฒะทะฐะด
curl -X POST -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml --data-binary @appConfig.xml

############## ะŸั€ะธะฒะพะดะธะผ ั€ะฐะฑะพั‡ะตะต ะผะตัั‚ะพ ะฒ ะฟะพั€ัะดะพะบ
rm -f appConfig.xml

แƒ—แƒ”แƒแƒ แƒ˜แƒฃแƒšแƒแƒ“, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒกแƒชแƒแƒ“แƒ”แƒ— แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ™แƒแƒ“แƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒแƒจแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒฃแƒœแƒ“แƒ แƒ’แƒฅแƒแƒœแƒ“แƒ”แƒ— แƒฉแƒแƒ›แƒแƒกแƒแƒจแƒšแƒ”แƒšแƒ˜ แƒกแƒ˜แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒ—. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜ แƒกแƒžแƒแƒ˜แƒšแƒ”แƒ แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ.

แƒกแƒฌแƒแƒ แƒแƒ“ แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ
แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

แƒ—แƒฃ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ“แƒแƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ—-แƒฉแƒแƒกแƒ•แƒ˜แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ›แƒแƒกแƒจแƒ˜ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— shell แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜.

แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ Cloud shell-แƒ—แƒแƒœ

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒงแƒแƒ•แƒก แƒ™แƒแƒšแƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Ansible-แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒก แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒก. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒกแƒแƒฅแƒ›แƒ” แƒ”แƒฎแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒแƒก, แƒ›แƒฎแƒ”แƒ“แƒ•แƒ”แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ แƒกแƒแƒ›แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜: แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— Docker-แƒ˜ Docker-แƒจแƒ˜, แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— Docker แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Ansible-แƒ–แƒ”, แƒแƒœ แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒ—แƒแƒœแƒฎแƒ›แƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒ’แƒแƒ•แƒฉแƒฃแƒ›แƒ“แƒ”แƒ— แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜. แƒ’แƒแƒฎแƒกแƒแƒ•แƒก?

แƒ›แƒ” แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”: แƒ™แƒแƒ แƒ’แƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ "แƒงแƒฃแƒ—แƒ˜แƒ“แƒแƒœ" แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ“แƒ”แƒก แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒ แƒแƒขแƒแƒ› แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ’แƒแƒฌแƒฃแƒฎแƒแƒ—? แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ” แƒกแƒฃแƒคแƒ—แƒ, แƒแƒ แƒ? แƒ›แƒ” แƒ›แƒ˜แƒœแƒ“แƒ แƒจแƒ”แƒ•แƒแƒ’แƒ แƒแƒ•แƒ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ™แƒฃแƒ‘แƒ”แƒ แƒจแƒ˜ แƒ˜แƒฅแƒ˜แƒ“แƒแƒœ. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, Google-แƒก แƒแƒฅแƒ•แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒ“แƒ˜แƒ“แƒแƒ แƒ˜ แƒแƒ แƒฎแƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒก แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒจแƒ˜, แƒ แƒแƒช แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒแƒก แƒ›แƒแƒแƒฎแƒ“แƒ”แƒœแƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ”แƒ–แƒ”.

แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒ™แƒแƒœแƒกแƒแƒšแƒ—แƒแƒœ แƒ“แƒแƒกแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒแƒ แƒ˜ แƒ แƒแƒ›: gcloud แƒ“แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ Google Cloud API VM แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒœแƒแƒช แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ.

แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒœแƒช แƒ’แƒ”แƒ’แƒ›แƒแƒ•แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒแƒ แƒ Google แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒ˜แƒ“แƒแƒœ
Google แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒแƒก แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ—แƒแƒ•แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒจแƒ˜. แƒ”แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ— แƒ™แƒแƒœแƒกแƒแƒšแƒก แƒ—แƒฃแƒœแƒ“แƒแƒช แƒงแƒแƒ•แƒ˜แƒก แƒแƒžแƒแƒ แƒแƒขแƒ˜แƒ“แƒแƒœ, แƒ—แƒฃ แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก *nix แƒ“แƒ แƒแƒฅแƒ•แƒก แƒ™แƒแƒœแƒกแƒแƒšแƒ˜.

แƒ—แƒฃ แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ, แƒ แƒแƒ› แƒแƒ› แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜ แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ•แƒแƒจแƒฃแƒฅแƒ แƒ”แƒก แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜, แƒ“แƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜. แƒ—แƒฃ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒก แƒฎแƒ›แƒ”แƒ‘แƒก แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ—, แƒ“แƒแƒ•แƒฌแƒ”แƒ  แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒแƒก แƒแƒ› แƒ—แƒ”แƒ›แƒแƒ–แƒ”.

แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒญแƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒกแƒ˜ แƒ’แƒ–แƒแƒ แƒ•แƒ”แƒ‘ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜.

  1. แƒจแƒ”แƒแƒฉแƒ”แƒ แƒ” VM แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒจแƒ˜ แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ— แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒ™แƒแƒœแƒกแƒแƒšแƒก.
  2. แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ“แƒแƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ— แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒก.
  3. แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒ‘แƒแƒšแƒแƒจแƒ˜ แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒ˜ แƒกแƒ แƒฃแƒšแƒ˜ แƒฌแƒ•แƒ“แƒแƒ›แƒ Cloud API-แƒ–แƒ”.

    Screenshot
    แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

  4. แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ”แƒ’แƒ–แƒ”แƒ›แƒžแƒšแƒแƒ แƒ˜.

แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช VM แƒ“แƒแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก, แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ˜แƒ— แƒ›แƒแƒก SSH-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ:

gcloud alpha cloud-shell ssh

แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ
แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ GKE-แƒ–แƒ”

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒงแƒ•แƒ”แƒšแƒแƒœแƒแƒ˜แƒ แƒแƒ“ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— IaC-แƒ–แƒ” (แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜), แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ Git-แƒจแƒ˜. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒ›แƒฎแƒ แƒ˜แƒ•. แƒ“แƒ แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ yaml แƒคแƒแƒ˜แƒšแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒก แƒแƒ›แƒแƒชแƒแƒœแƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ—แƒแƒ•แƒ˜แƒกแƒ—แƒแƒ•แƒแƒ“ แƒแƒกแƒ”แƒ•แƒ” แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜แƒ. แƒ”แƒก แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒฎแƒ แƒ˜แƒ“แƒแƒœ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ•แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒแƒ‘, แƒ’แƒ”แƒ’แƒ›แƒ แƒแƒกแƒ”แƒ—แƒ˜แƒ:

  1. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒก BUILD_VERSION แƒ“แƒ แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ , แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒ’แƒแƒ“แƒแƒ˜แƒชแƒ”แƒ›แƒ แƒ”แƒœแƒ•.
  2. แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— dockerfile Git-แƒ“แƒแƒœ.
  3. แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— yaml แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  4. แƒฉแƒ•แƒ”แƒœ แƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒแƒ แƒ˜แƒ•แƒ” แƒคแƒแƒ˜แƒšแƒก scp-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜.
  5. แƒฉแƒ•แƒ”แƒœ แƒ˜แƒฅ แƒ•แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒก แƒ“แƒ แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜
  6. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก แƒ™แƒฃแƒ‘แƒ”แƒ แƒ–แƒ”.

แƒ›แƒแƒ“แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒแƒ“ แƒ•แƒ˜แƒงแƒแƒ—. แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒกแƒแƒฃแƒ‘แƒแƒ แƒ˜ แƒ”แƒœแƒ•, แƒ›แƒแƒจแƒ˜แƒœ แƒ“แƒแƒ•แƒฃแƒจแƒ•แƒแƒ—, แƒ แƒแƒ› แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒชแƒ”แƒ— แƒแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜: PARAM1 ะธ PARAM2. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒ›แƒแƒ— แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒขแƒ˜แƒžแƒ˜ - แƒกแƒ˜แƒ›แƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜.

Screenshot
แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— yaml-แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒ— echo แƒจแƒ”แƒ˜แƒขแƒแƒœแƒแƒก. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ‘แƒ”แƒœ, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก dockerfile PARAM1 ะธ PARAM2แƒ แƒแƒ› แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒกแƒแƒแƒชแƒแƒ แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ“แƒ แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒ— แƒ“แƒ”แƒ•แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜ แƒ’แƒ–แƒแƒจแƒ˜ gcr.io/awesomeapp/awesomeapp-$BUILD_VERSIONแƒกแƒแƒ“ $BUILD_VERSION แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ แƒฉแƒ”แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒฉแƒแƒ›แƒแƒกแƒแƒจแƒšแƒ”แƒšแƒ˜ แƒกแƒ˜แƒ˜แƒ“แƒแƒœ.

แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒกแƒ˜แƒ

touch deploy.yaml
echo "apiVersion: apps/v1" >> deploy.yaml
echo "kind: Deployment" >> deploy.yaml
echo "metadata:" >> deploy.yaml
echo "  name: awesomeapp" >> deploy.yaml
echo "spec:" >> deploy.yaml
echo "  replicas: 1" >> deploy.yaml
echo "  selector:" >> deploy.yaml
echo "    matchLabels:" >> deploy.yaml
echo "      run: awesomeapp" >> deploy.yaml
echo "  template:" >> deploy.yaml
echo "    metadata:" >> deploy.yaml
echo "      labels:" >> deploy.yaml
echo "        run: awesomeapp" >> deploy.yaml
echo "    spec:" >> deploy.yaml
echo "      containers:" >> deploy.yaml
echo "      - name: awesomeapp" >> deploy.yaml
echo "        image: gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION:latest" >> deploy.yaml
echo "        env:" >> deploy.yaml
echo "        - name: PARAM1" >> deploy.yaml
echo "          value: $PARAM1" >> deploy.yaml
echo "        - name: PARAM2" >> deploy.yaml
echo "          value: $PARAM2" >> deploy.yaml

แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒแƒ’แƒ”แƒœแƒขแƒ˜ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ gcloud alpha cloud-shell ssh แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜ แƒ›แƒ˜แƒฃแƒฌแƒ•แƒ“แƒแƒ›แƒ”แƒšแƒ˜แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒก แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— -- แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒ— แƒกแƒแƒฎแƒšแƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒก แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜ แƒซแƒ•แƒ”แƒšแƒ˜ dockerfile-แƒ“แƒแƒœ:

gcloud alpha cloud-shell ssh --command="rm -f Dockerfile"

แƒ›แƒแƒแƒ—แƒแƒ•แƒกแƒ”แƒ— แƒแƒฎแƒšแƒแƒ“ แƒ’แƒแƒ“แƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ dockerfile แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ™แƒแƒœแƒกแƒแƒšแƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜ scp-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—:

gcloud alpha cloud-shell scp localhost:./Dockerfile cloudshell:~

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ—, แƒ›แƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ— แƒ“แƒ แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜:

gcloud alpha cloud-shell ssh --command="docker build -t awesomeapp-$BUILD_VERSION ./ --build-arg BUILD_VERSION=$BUILD_VERSION --no-cache"
gcloud alpha cloud-shell ssh --command="docker tag awesomeapp-$BUILD_VERSION gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION"
gcloud alpha cloud-shell ssh --command="docker push gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION"

แƒฉแƒ•แƒ”แƒœ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก. แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒคแƒ˜แƒฅแƒขแƒ˜แƒฃแƒ  แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒก, แƒกแƒแƒ“แƒแƒช แƒฎแƒ“แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ (แƒแƒ•แƒกแƒ›-แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜) แƒ“แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ (แƒ’แƒแƒกแƒแƒแƒชแƒแƒ แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜), แƒกแƒแƒ“แƒแƒช แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก.

gcloud alpha cloud-shell ssh --command="rm -f deploy.yaml"
gcloud alpha cloud-shell scp localhost:./deploy.yaml cloudshell:~
gcloud alpha cloud-shell ssh --command="gcloud container clusters get-credentials awsm-cluster --zone us-central1-c --project awesome-project && 
kubectl apply -f deploy.yaml"

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ— แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก, แƒ•แƒฎแƒกแƒœแƒ˜แƒ— แƒ™แƒแƒœแƒกแƒแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒก แƒ“แƒ แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ•แƒœแƒแƒฎแƒแƒ•แƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒš แƒแƒฌแƒงแƒแƒ‘แƒแƒก.

Screenshot
แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ

Screenshot
แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก GKE-แƒจแƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, SMS-แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒก แƒฅแƒฃแƒ แƒ—แƒฃแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—

แƒ›แƒ” แƒ’แƒแƒœแƒ–แƒ แƒแƒฎ แƒ“แƒแƒ•แƒแƒ˜แƒ’แƒœแƒแƒ แƒ” แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ Ingress. แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒก แƒ’แƒแƒ›แƒ: แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—, แƒ˜แƒก แƒ“แƒแƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ˜, แƒแƒ  แƒแƒฅแƒ•แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒแƒก แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ— แƒแƒ› แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ”แƒก แƒชแƒแƒขแƒ แƒกแƒชแƒ˜แƒšแƒ“แƒ”แƒ‘แƒ แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒก.

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“

แƒงแƒ•แƒ”แƒšแƒ แƒ–แƒ”แƒ›แƒแƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜, แƒแƒšแƒ‘แƒแƒ—, แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ—แƒ˜ แƒ›แƒฃแƒฃแƒšแƒ˜แƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒขแƒแƒ›แƒฆแƒแƒช แƒแƒ  แƒ›แƒแƒ›แƒฌแƒแƒœแƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜. แƒ˜แƒกแƒ”, แƒฃแƒคแƒ แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“, แƒ›แƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒแƒกแƒแƒฌแƒแƒ แƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒ›แƒ˜แƒ•แƒ›แƒแƒ แƒ—แƒแƒ•.

แƒ“แƒ แƒ›แƒ” แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ›แƒแƒ›แƒฌแƒแƒœแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ—แƒ”แƒ›แƒ˜แƒก แƒแƒฎแƒกแƒœแƒ แƒฉแƒ”แƒ›แƒ—แƒ•แƒ˜แƒก. แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒขแƒ”แƒฅแƒกแƒขแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒ’แƒ–แƒ, แƒ แƒแƒ—แƒ แƒ’แƒแƒ’แƒ˜แƒ–แƒ˜แƒแƒ แƒแƒ— แƒ˜แƒก แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒ” แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ” แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœแƒ•แƒ” แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒกแƒแƒก. แƒ’แƒแƒฃแƒ–แƒ˜แƒแƒ แƒ” แƒ›แƒแƒ—, แƒ•แƒ˜แƒœแƒช แƒ›แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒแƒ“ แƒกแƒฃแƒšแƒแƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜ แƒ›แƒ’แƒ”แƒšแƒ˜ แƒ“แƒ”แƒ•แƒแƒžแƒจแƒ˜. แƒ—แƒฃ แƒฉแƒ”แƒ›แƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ”แƒ‘แƒ˜ แƒ•แƒ˜แƒœแƒ›แƒ”แƒก แƒ›แƒแƒ˜แƒœแƒช แƒ“แƒแƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ, แƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒ˜ แƒ•แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ˜.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ