Ssh рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рдХреНрд▓рд╛рдЙрдб рд╕реЗ рд╕рд░реНрд╡рд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рд╕рд╛рд░ред рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдЬреЛ рд╕рд░реНрд╡рд░ рдХреА рд╕реВрдЪреА рд╕реЗ ssh рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛рддрд╛ рд╣реИред рдЙрдмрдВрдЯреВ 18 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЧреБрдбрд▓ рдХреНрд▓рд╛рдЙрдб рдПрд╕рдбреАрдХреЗ, рдкрд╛рдпрдерди 2.7, рдмреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред


рдЙрди рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддреЗрдЬ рд╡реГрджреНрдзрд┐ рдХреЗ рдмрд╛рдж, рдЬрд┐рдирдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╕реНрдЯреЛрд░реЗрдЬ рдФрд░ рд╕реАрдПрдордбреАрдмреА рдЕрдм рдРрд╕реЗ рдСрдкрд░реЗрд╢рдирд▓ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЙрди рджрд┐рдиреЛрдВ рдореЗрдВ рдЬрдм рдореБрдЭреЗ рдмрд╕ рджрд┐рд▓ рд╕реЗ рд╕рднреА рдЖрдИрдкреА рдФрд░ рд╡рд┐рд╡рд░рдг рдпрд╛рдж рдереЗред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ CMDB рд╣рдо рдЕрднреА рддрдХ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреНрд╡рд░рд┐рдд рдкрд╣реБрдВрдЪ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд╕рд░реНрд╡рд░ рдХреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред


рдЕрдЧрд▓рд╛ - рд▓рд┐рдирдХреНрд╕ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ (рдЙрдмрдВрдЯреВ 18 рдкрд░ рдкреНрд░рджрд░реНрд╢рди)ред рд╢рд╛рдпрдж рдпрд╣ рдЕрдиреНрдп рд╡рд┐рддрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░, рд╢рд╛рдпрдж, рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рднреА рд╣реИ - рдореИрдВрдиреЗ рдирд╣реАрдВ рджреЗрдЦрд╛ред


рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ:


  • рджреЛрд╣рд░рд╛рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред рдХрдИ рдкреНрд░рд╢рд╛рд╕рдХ
    рдФрд░ рдЖрдкрдХреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд░рд┐рдореЛрдЯ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ - рдХрдо рд╕реЗ рдХрдо рд╣рд░ рд▓реИрдкрдЯреЙрдк рдореЗрдВ рдПрдХ рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдЖрдк рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдп "рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рдбреАрдмрдЧ рдХрд┐рдП рдЧрдП" рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
  • рд╕рд░реНрд╡рд░ рдЬреЛрдбрд╝реЗ, рд╣рдЯрд╛рдП рдЧрдП, рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкрддреЗ рд╣реИрдВред рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ ssh рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЙрд░реНрдл тАЛтАЛрдореЗрдЬрдмрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, gcloud cli GCP рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдФрд░ рдкрд╛рдпрдерди 2.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рд╕рдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдмрдВрдЯреВ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдерд╛)ред рдХрдЯ рдХреЗ рдиреАрдЪреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯред


рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди


рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдерд╛: рдЙрдкрдирд╛рдо рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЙрдирдХреЗ рд╡рд░реНрддрдорд╛рди рдкрддреЛрдВ рдХреА рд╕реВрдЪреА рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░рдЦреЗрдВ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрд╕реА рд╕рдордп, рд╕реВрдЪреА рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдЬреАрд╕реАрдкреА рд╕реЗ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХрдИ рдХрд╛рд░реНрдп рдереЗ:


  1. рдХреЗрд╡рд▓ рдПрдХ рдпрд╛рджрдЧрд╛рд░ рдирд╛рдо рдЯрд╛рдЗрдк рдХрд░рдХреЗ рд╣реЛрд╕реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ (рд╣рдо рдЖрдорддреМрд░ рдкрд░ рд╕рдЦреНрдд рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╛рдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рдирд╛рдо рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ)ред рдирд╛рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрджрд┐ рд╕рд░реНрд╡рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдпрд╛ рд╣рдорд╛рд░реЗ cmdb рдХреЗ рдЕрдВрджрд░ рдЕрдиреНрдп рдирд╛рдо (рдпрджрд┐ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╛рдо рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдирд╛рдо рдпрд╛рдж рд░рдЦрдирд╛ рдПрдХ рдкрддреЗ рд╕реЗ рдЖрд╕рд╛рди рд╣реИред рдкрддрд╛ рднреА рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред
  2. рдорд╛рдиреНрдп рдкрддреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрддрдорд╛рди рд╣реЛрд╕реНрдЯ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдХреНрдпреЛрдВрдХрд┐ рдореБрдЦреНрдп рдордВрдЪ рдЬреАрд╕реАрдкреА рд╣реИ рдФрд░ 90% рд╕рд░реНрд╡рд░ рд╣реИрдВ, рдлрд┐рд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд▓ рдХреА рдЬрд╛рдПрдЧреА, рди рдХрд┐ рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ред
  3. Hostname рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗрдВред рдпрджреНрдпрдкрд┐ рд╡реЗ рдпрд╛рдж рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рд░рд╣реА рд╣реИ, рдФрд░ рдореЗрдореЛрд░реА рдЕрд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ :) рд╣рд╛рдВ, рдФрд░ рдирдП рдкреНрд░рд╢рд╛рд╕рдХ рдЖрд╕рд╛рди рд╣реИрдВред
  4. рдЕрджреНрдпрддрди рдЙрдкрдирд╛рдо рдмрдВрдбрд▓ - рдкрддрд╛ рдмрджрд▓рдиреЗ рдкрд░ рд╣реА рдкрддрд╛ рд▓рдЧрд╛рдПрдВред рд╕рднреА рдмрдВрдбрд▓реЛрдВ рдХреЗ рдкреВрд░реНрдг рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рдЬреАрд╕реАрдкреА рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓реЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЕрднреА рддрдХ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ :(

рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди


рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо


рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ ssh рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдЕрдиреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред


рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рди: ~ / .ssh / config


рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИрдВ:


HOST alias_ HostName ip__- 

рдЖрдк рдпрд╣рд╛рдБ , рдпрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред


рдЖрдЧреЗ рдХреЗ рдХрджрдо


  1. рд╡рд┐рднрд┐рдиреНрди рд╣реЛрд╕реНрдЯ рд╕рдореВрд╣реЛрдВ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╡реНрдпрд╛рдореЛрд╣ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ред
  2. рдЖрдХрд╕реНрдорд┐рдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдмрдЪрд╛рдиреЗ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдмреИрдХрдЕрдк рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рд╣реЛрд╕реНрдЯ рдирд╛рдо рдЦреЛрдЬреЗрдВ


рдпрд╣рд╛рдБ рдирд┐рд░реНрдгрдп рдореЗрд░рд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдмреЗрди рд▓реЙрдмреЙ рдХрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ sed рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП (рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд▓рдВрдмрд╛ рдирд┐рдпрдо) рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:


 alias sshhosts="sed -rn 's/^\s*HOST\s+(.*)\s*/\1/ip' ~/.ssh/config" 

рдпрджрд┐ рдЖрдкрдХреЛ рдирд╛рдо рднрд╛рдЧ рджреНрд╡рд╛рд░рд╛ рд╣реЛрд╕реНрдЯ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ grep рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реЗ рдкреВрд░рд┐рдд рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИ:


 sshhost | grep '---' 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИрдВ ред


рдореЗрдЬрдмрд╛рди рдирд╛рдо рд╕реНрд╡рддрдГ рдкреВрд░реНрдг


Onix74 рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рд▓рд╛рдЗрди рдХреЛ ~ / .bash_completion рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:


 complete -W "$(grep "^HOST " ~/.ssh/config | grep -v "\*" | sed 's/[^ ]* *\(.*\)/\1/')" ssh 

Ssh рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдЕрд▓рд┐рдпрд╛рд╕ рд╕рд░реНрд╡рд░ рдХреА рд╕реВрдЪреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╛рдиреА Ssh рд╕рд░реНрд╡рд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк ssh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдмрд╛рд╢ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЖрдЧреЗ рдХреЗ рдХрджрдо


рдореИрдВ рдореЗрдЬрдмрд╛рди рдХреЛ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХреЗрдВ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХреЗрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ Ansible рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧреА; рд╡рд┐рднрд┐рдиреНрди рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рддрдирд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдмрд╛рдХреА рд╣реИред


рдЬреАрд╕реАрдкреА рд╕реЗ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ


рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣рд╛рдВ рдпрд╣ рдЕрдиреБрднрд╡ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ)ред рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GCloud SDK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬрдмрдХрд┐ рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдордп рдХреЗ рдмрд╛рдж рдпрд╣ рдореБрдЭреЗ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдХрдо рдФрд░ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░ рдкреНрд░рд╢рд╛рд╕рди рдХреА рджрд┐рдирдЪрд░реНрдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджреЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореБрдЦреНрдп рддрд░реНрдХ рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред
рд╕рдВрднрд╡рддрдГ, рд╡рд╣реА рдХрд░реНрд▓ рдФрд░ рдЬреАрд╕реАрдкреА рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рдорд╛рдзрд╛рди рдЕрдзрд┐рдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реЛрдЧрд╛ (рдЪреВрдВрдХрд┐ GCloud SDK рдХреЛ рдЕрд▓рдЧ рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдкреНрд░рд╛рд░рдВрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдЗрддрдиреЗ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ)ред


рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ json рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдпрджреНрдпрдкрд┐ рдЗрд╕рдиреЗ рдкреНрд░рд╛рдкреНрдд рдЙрддреНрддрд░ рдХреА рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдПрд╕рдбреАрдХреЗ рдореЗрдВ рдкреНрд░рд╛рд░реВрдкрдг рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реЛрдЪрд╛ред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдирд┐рдореНрди рдЖрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реБрдП:


 gcloud compute instances list --filter="status:running" --format="json(name, status, networkInterfaces[].accessConfigs[])" 

рдпрд╣ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд╕рд░реНрд╡рд░ (рджреВрд╕рд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ) рдХреЛ рдЙрдирдХреЗ рдирд╛рдо рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред рдЕрдм рддрдХ, рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд╣рд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо json рдореЗрдВ рдЖрддрд╛ рд╣реИ:


 [ ---...---- { "name": "-", "networkInterfaces": [ { "accessConfigs": [ { "kind": "compute#accessConfig", "name": "External NAT", "natIP": "ip-", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ] } ], "status": "RUNNING" }, ----...--- ] 

рдЖрдЧреЗ рдХреЗ рдХрджрдо


рдРрд╕рд╛ рдкреНрд░рд╛рд░реВрдк рдвреВрдВрдвреЗрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдмрд╛рдж рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдХрдо рдпрд╛ рдХрдо рдХрд░ рджреЗрдЧрд╛ред


рдЬреАрд╕реАрдкреА рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЙрдкрдирд╛рдо рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреЛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЕрдЬрдЧрд░ 2.7 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛:


  1. рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛;
  2. рдЕрдЬрдЧрд░ 2.7 рд▓рд┐рдирдХреНрд╕ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣реИ - рдХрд╣реАрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЬреАрдд рдЕрдм рднреА рдЖрдкрдХреЛ рджреВрд╕рд░реА рдкреНрд░рдгрд╛рд▓реА рд▓рдЧрд╛рдиреЗ рдФрд░ рдЙрдмрдВрдЯреВ рдХреЛ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


  1. рд╣рдо рдЕрдЬрдЧрд░ рд╕реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реБрдП, рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Google рдХреНрд▓рд╛рдЙрдб рд╕реЗ рд╕рд░реНрд╡рд░ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
  2. рд╣рдо рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк JSON рдХреЛ рдЕрдЬрдЧрд░ рдХреЗ рдЕрдиреБрдХреВрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВред
  3. рд╣рдо ssh рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рджреЗрддреЗ рд╣реИрдВ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдЙрдЯрдкреБрдЯ ~ / .ssh / config рдпрд╛ рдХреБрдЫ рдордзреНрдпрд╡рд░реНрддреА рдлрд╝рд╛рдЗрд▓ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрдЦреЗрдВ
 #!/usr/bin/python import commands import json sComputeListOutput = commands.getoutput('gcloud compute instances list --filter="status:running" --format="json(name, status, networkInterfaces[].accessConfigs[])" ') s = json.loads(sComputeListOutput) for server in s: print 'HOST ',server['name'] print ' HostName ',server['networkInterfaces'][0]['accessConfigs'][0]['natIP'] 

рдХреЗрд╡рд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛


рдпрд╣ рдХрд╛рд░реНрдп рдЕрднреА рднреА рдЬрд╛рд░реА рд╣реИред рдореИрдВ рдПрдХ рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рднреАрддрд░ ssh / config рдлрд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдкреВрд░реЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрддрд╛ рд╣реВрдВред рдпрд╛ рдЕрд▓рдЧ рд╕реЗ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдЕрдВрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреБрд▓рдирд╛ рдХрд░реЗрдВ - рдпрд╣ рдЖрдкрдХреЛ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

Source: https://habr.com/ru/post/hi484500/


All Articles