рдкрд╣рдЪрд╛рди
рдореИрдВ рдкрдж рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдирд╛рдо рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖ рд╕рдХрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рд╣рдо рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЫреЛрдЯреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╢рд┐рд▓реНрдк рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдШрд░реЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВред рдХреЛрдИ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдХрд┐рд╕реА рдХреЛ рд╣рд░реЛрдХреВ рдкрд░, рдХрд┐рд╕реА рдХреЛ рд╡реАрдкреАрдПрд╕ рдкрд░ рдФрд░ рдХрд┐рд╕реА рдХреЛ рдПрдХ рд╣реЛрдо рд╕рд░реНрд╡рд░ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░реЗрдбрд┐рдЯ рдкрд░ рдПрдХ рдЖрд░ / рд╣реЛрдорд▓реИрдм рд╕рдореБрджрд╛рдп рднреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓реЛрдЧ рддрдерд╛рдХрдерд┐рдд рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЯреБрдХрдбрд╝реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣реЛрдо рд▓реИрдм ред
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЗрддрдирд╛ рдЙрддреНрд╕реБрдХ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реА рдЬрдЧрд╣ рдкрд░ рдПрдХ рдЗрдВрдЯреЗрд▓ рдПрдирдпреВрд╕реА рд╣реИ, рдЬреЛ рдПрдордкреАрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдирдПрдПрд╕ рд╕реЗ рд╕рдВрдЧреАрдд рдмрдЬрд╛рддрд╛ рд╣реИред рдПрдордкреАрдбреА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рдЫреЛрдЯреЗ рд╢рд┐рд▓реНрдк рдЙрд╕ рдкрд░ рдХрддрд╛рдИ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ: рдЕрдм рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдореГрдд рдмреЙрдЯ, рдкрд╛рдкрд╛рддреНрд░рд╛ рдкрд░ HTTP рдПрдкреАрдЖрдИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдирд╛рдбрд╝реА рд╕реАрдорд╛рдВрдд рд╣реИред
рдПрдХ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд┐рдирд╛ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рдореИрдВ рдЦреБрдж рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ) рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ DNS рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╕рд╛рде рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдПрдХ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреА рдпреЛрдЬрдирд╛, рдФрд░ CI рдХреЗ рд╕рд╛рде Gitlab рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ред рдЖрдк рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рд╕реАрдЦрддреЗ, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рдпрд╣ "рдЧрд╛рдЗрдб" рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдЖрд╕рд╛рди / рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг / рдЕрдзрд┐рдХ рд╕рд╣реА рдмрдирд╛рдпрд╛ рдЬрд╛рдПред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореЗрд░реА рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдХреЛрдб рдмрд┐рдЯрдмрдХреЗрдЯ / рдЧрд┐рдердм рдкрд░ рдерд╛, рдФрд░ рдбреЙрдХрдЯрд░ рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рддрд╣рдд рдЬрд╛рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ / рдЕрджреНрдпрддрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВрдиреЗ рдпрд╣ рд╕реЛрдЪрдХрд░ рдЦреБрдж рдХреЛ рдкрдХрдбрд╝рд╛ рдХрд┐ рдореБрдЭреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░реЗрд╢рд╛рди рдмрдЧ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реВрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рд╕рдм рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдерд╛ред рдпрд╣ рддрдм рдерд╛ рдХрд┐ Gitlab + CI рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ред
DNS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕реНрдерд╛рдиреАрдп рдбреЛрдореЗрди
рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП --network=host
рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд┐рд╕ рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рдВ, рдФрд░ рд╣рд░ рдмрд╛рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рджрд░реНрдЬ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧрд┐рдЯрд▓реИрдм рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рдХрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдореЗрдЬрдмрд╛рдиреА рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╕рд░рд▓ рд╣реИ: рд╣рдо DNS рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд░рд╛рдЙрдЯрд░ рдХреЛ рдЦрд┐рд▓рд╛рддреЗ рд╣реИрдВ, рдирдЧрдиреЗрдХреНрд╕ рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЛрдореЗрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛрдиреЗ рджреЗрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ - --network=host
рдмрдЬрд╛рдпред
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди, рдЗрд╕ рдЧрд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рдЗрд╕рдореЗрдВ, Ubuntu 16.04 рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдбреЗрдмрд┐рдпрди рд╣реИред
рдЖрдЧреЗ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ root
рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА root
ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, bind9
рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
apt-get install -y bind9 bind9utils bind9-doc dnsutils
рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдбреЛрдореЗрди рдЬрд╝реЛрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ /etc/bind/named.conf.local
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
zone "nondv.home" IN { // type master; file "/etc/bind/fwd.nondv.home.db"; // Forward lookup file allow-update { none; }; // Since this is the primary DNS, it should be none. };
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд┐рд╡рд░реНрд╕ рд▓реБрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЧрд╛рдЗрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЕрдм рдлрд╝рд╛рдЗрд▓ /etc/bind/fwd.nondv.home.db
рдмрдирд╛рдПрдБ:
$TTL 604800 @ IN SOA ns1.mydomain.home. root.mydomain.home. ( 20 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ;Name Server Information IN NS ns1.nondv.home. ;IP address of Name Server ns1 IN A 192.168.0.3 ;A - Record HostName To Ip Address nuc IN A 192.168.0.3 gitlab IN A 192.168.0.3 mpd IN A 192.168.0.3 @ IN A 192.168.0.3
рдЕрдЧрд▓рд╛, bind9 рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдСрдЯреЛрд░рди рд╕реЗрдЯ рдХрд░реЗрдВ:
systemctl restart bind9 systemctl enable bind9
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдпред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ nondv.local
рдбреЛрдореЗрди nondv.local
рдЙрдк-рдбреЛрдореЗрди рдХреЗ рдмрд┐рдирд╛ рд╣рд▓ рдирд╣реАрдВ nondv.local
ред рдареАрдХ рд╣реИ, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ dig
рдиреЗ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдорд╛рдиреНрдпрддрд╛ рджреА, рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ curl
рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд╕рд╣рдХрд░реНрдореА рдиреЗ рдореБрдЭреЗ рд╕рдордЭрд╛рдпрд╛, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдмреЛрдирдЬреМрд░ рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ (рдврдХреНрдХрди рдкрд░ рдПрдХ рд╕реЗрдм рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдХрд╛рдо рд▓реИрдкрдЯреЙрдк) рдХреЗ рдХрд╛рд░рдгред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, .home
рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣реА рд╕рдм рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ DNS рдХреЛ рд░рд╛рдЙрдЯрд░ рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ (рддрд╛рдХрд┐ /etc/resolve.conf
рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдП)ред
nginx
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдкреЛрд░реНрдЯ 80 рдкрд░ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ Nginx рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдбреЛрдореЗрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рдХрд░реЗред
рдбреЙрдХреНрдпреВ рд╣рдм рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдирдЧрдиреЗрдХреНрд╕ рдЗрдореЗрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдЙрдкрд▓рдмреНрдз рд╣реИред
рдореБрдЦреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХрд░реЗрдВ / /srv/nginx/nginx.conf
/ /srv/nginx/nginx.conf
/ /srv/nginx/nginx.conf
:
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; server { listen 80; server_name nondv.home; rewrite ^/$ http://mpd.nondv.home redirect;
рдЗрд╕рдХреЗ рдмрд╛рдж, рдбреЛрдореЗрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рджрд┐рдЦрд╛рдКрдВрдЧрд╛:
# /srv/nginx/conf.d/gitlab.conf server { listen 80; server_name gitlab.nondv.home; location / { proxy_pass http://127.0.0.1:3080; } }
рдХрдВрдЯреЗрдирд░ рдХреЛ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
docker run --detach \ --network host \ --name nginx \ --restart always \ --volume /srv/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \ --volume /srv/nginx/conf.d:/etc/nginx/conf.d:ro \ nginx:alpine
рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдЕрдм HTTP 80 рдкреЛрд░реНрдЯ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрдЪреНрдЫрд┐рдд рдкреЛрд░реНрдЯ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
Gitlab
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:
docker run --detach \ --hostname gitlab.nondv.home \ --publish 3080:80 --publish 3022:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab:Z \ --volume /srv/gitlab/logs:/var/log/gitlab:Z \ --volume /srv/gitlab/data:/var/opt/gitlab:Z \ gitlab/gitlab-ce:latest
рд╣рдо рд╕рдм рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рд╣рдо docker logs -f gitlab
) рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ ( docker exec -it gitlab bash
) рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВред рд╕реЗрдЯрд┐рдВрдЧреНрд╕:
nano /etc/gitlab/gitlab.rb # or vim # /etc/gitlab/gitlab.rb external_url 'http://gitlab.nondv.home' gitlab_rails['gitlab_shell_ssh_port'] = 3022 # /etc/gitlab/gitlab.rb gitlab-ctl reconfigure
рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( docker container restart gitlab
)ред
рд╕реАрдЖрдИ
Gitlab CI рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХреАрдХреГрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ Gitlab Runner ( рдкреНрд░рд▓реЗрдЦрди ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА:
NAME="gitlab-runner$1" echo $NAME docker run -d --name $NAME --restart always \ --network=host \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:alpine
рд░рдирд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЗрд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, gitlab (рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдкрд░ рдЬрд╛рдПрдВ, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдЬрд╛рдПрдВ тЖТ рдЕрд╡рд▓реЛрдХрди тЖТ рдзрд╛рд╡рдХред рдпрд╣ рдзрд╛рд╡рдХреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЖрдк рдмрд╕ рдпрд╣ рдХрд░реЗрдВ:
docker exec -it gitlab-runner register
рдФрд░ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдмред
рдЖрдкрдХреА рдЕрдкрдиреА HTTP рд╕реЗрд╡рд╛рдПрдВ
рдЗрдиреНрд╣реЗрдВ рдЧрд┐рдЯрд▓реИрдм рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдкреЛрд░реНрдЯ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ nginx рдореЗрдВ рдХреЙрдиреНрдлрд┐рдЧрд░ рдЬреЛрдбрд╝реЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдм рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рд╣реЛрдо рд╕рд░реНрд╡рд░ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Gitlab CI рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ git push
рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ?
рдореИрдВ gitlab рдХреЗ рд▓рд┐рдП рдореЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдпреИрдВрдбреЗрдХреНрд╕ рдкрд░ рдПрдХ рдореЗрд▓рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдкреНрд░рд▓реЗрдЦрди ред