рдЬреЗрдирдХрд┐рдВрд╕ рдиреЛрдб рдкрд░ рдПрд╕рдПрд╕рдПрдЪ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдмрд┐рдирд╛



рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдиреЗ рдХрднреА рдЬреЗрдирд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдирдХрд┐рдиреНрд╕ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рдиреЛрдб рдкрд░ рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдЬрдм рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рддреЛ рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╛рдпрд╛ - рдореИрдВрдиреЗ рдЬреЗрдирдХрд┐рдиреНрд╕ рдФрд░ рдЗрд╕рдХреЗ рджрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рдкрд╛рдИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдореИрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ред


рдЦреЛрд▓ рдХреЗ рд▓рд┐рдП рд╣реЛ рд░рд╣реА рд╣реИ

рдЬреЗрдирдХрд┐рдВрд╕ рдХреЗ рдЖрдВрддреЛрдВ рдореЗрдВ рдЕрдлрд╡рд╛рд╣ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрд╕реЛрд▓ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЖрдкрдХреЛ рдиреЛрдбреНрд╕ рдкрд░ рдЧреНрд░реВрд╡реА рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ? рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкрд░ .execute () рдХреЗ рд▓рд┐рдП рд╢реЗрд▓ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдХреЗрд╡рд▓ рдПрдХ "рд▓реЗрдХрд┐рди" рд╣реИ - рдЖрдк рдереНрд░реЗрдб рд░рд┐рдбрд╛рдпрд░реЗрдХреНрд╢рди рдФрд░ рдЕрдиреНрдп рдмреИрд╢ рдЪрд╛рд░реНрдореНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдмреИрд╢ рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЗрди рд╕реАрдзреА рд░реЗрдЦрд╛рдУрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдореИрдВ рдХреЛрдб рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдЧреНрд░реВрд╡реА рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ):

def file = new File(System.getenv("HOME") + "/testGroovyShell.sh") file << "#!/bin/bash\n\ echo hello, world!" def builder = new AntBuilder() builder.chmod(file:file.getAbsolutePath(), perm:'+x') println file.getAbsolutePath().execute().text file.delete() 

рдЕрдм рд╣рдо Jenkins рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ рдХрд┐рд╕реА рднреА bash рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

SSH рдкреНрд░рдореБрдЦ рдкреАрдврд╝реА

рд▓реЗрдХрд┐рди рддрдм рдПрдХ рдмрдореНрдорд░ рдореЗрд░рд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ - ssh- рдХреАрдЬрд╝ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЙрд╕рдиреЗ рд╣рдорд╕реЗ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрд╛ рддреЛ рдЙрд╕реЗ рдПрдВрдЯрд░ рдХрд░рдирд╛ рдерд╛ред рдпрд╣, рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧреБрдЧрд▓реА рдХрд░рдирд╛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдорд╛рдзрд╛рди:

 #!/bin/bash echo -e "\n\n\n" | ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо ssh-keygen рдореЗрдВ 3 рдмрд╛рд░ рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░реНрд╡рд░ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧреАред рдпрд╣ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рдЦрд╛рддреЗ рдореЗрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GitHub рдкрд░), рдиреМрдХрд░реА рдЪрд▓рд╛рдПрдВ рдФрд░ ... рдлрд┐рд░ рд╕реЗ рддреЛрдбрд╝ рджреЗрдВред

GitHub рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдЬреНрдЮрд╛рдд_рд╣реЛрд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХреБрдВрдЬреА рд╣реИ, рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП рдФрд░ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ? рд╡рд╣рд╛рдБ рдпрд╣ рдерд╛! SSH рдХреЛ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдпрд╣ рдХрд┐рд╕реА рдЕрдЬреНрдЮрд╛рдд рд╣реЛрд╕реНрдЯ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреВрдЫреЗрдЧрд╛, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рд╣реИ? рдЗрд╕ рдмрд╛рд░ рд╣рдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╣реИрдХ рдХреЗ рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдХрд░реЗрдВрдЧреЗ:

 ssh-keyscan -H github.com >> ~/.ssh/known_hosts 

рдЬрд╣рд╛рдБ github.com рд╡рд╣ рд╣реЛрд╕реНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╣реЛрд╕реНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдкрдирд╛ рдХрд╛рдо рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдЧрд┐рдЯ рд╕реЗ рдЦреБрд╢ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖

рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд▓реЗрдЦ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдзрд┐рдХ рдХрд┐рдХ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдореБрдЭреЗ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд▓реЗрдЦрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рд╢реНрди рдЕрддреНрдпрдВрдд рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред

рдореИрдВ рдкреАрдПрдо рдореЗрдВ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреАрдбрд╝реЗ рдФрд░ рдХрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдорд╛рдЗрдирд╕ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдирд╣реАрдВ;)

рдирд┐рд░рдВрддрд░ рдПрдХрддрд╛ рдХреА рднрд╛рд╡рдирд╛ рдЖрдкрдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреА рд╣реИ!

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


All Articles