User Tools

Site Tools


настройка_стендов_слушателей

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
настройка_стендов_слушателей [2017/12/04 09:39]
val [Общие файлы конфигурации]
настройка_стендов_слушателей [2020/08/22 15:00] (current)
val [Общие файлы конфигурации]
Line 8: Line 8:
 ==== Общие файлы конфигурации ==== ==== Общие файлы конфигурации ====
  
-=== Debian/​Ubuntu/​FreeBSD ​===+=== Debian/​Ubuntu ===
  
 <​code>​ <​code>​
Line 29: Line 29:
 </​code>​ </​code>​
  
-==== Ubuntu ====+==== Debian/Ubuntu ==== 
 + 
 +  * [[Настройка сети в Linux]]
  
 === Gate === === Gate ===
Line 131: Line 133:
 </​code>​ </​code>​
  
-===== Дополнительные материалы =====+===== Скрипты автоконфигурации ​===== 
 <​code>​ <​code>​
-cat gate.sh+# git clone http://​val.bmstu.ru/​unix/​conf.git 
 +</​code>​ 
 +==== gate.corpX.un ==== 
 +<​code>​ 
 +# cat net_gate.sh
 </​code><​code>​ </​code><​code>​
-rm /​etc/​udev/​rules.d/​70-persistent-net.rules+X=$1 
 + 
 +if test -z $X 
 +then 
 +        echo -n "enter X: " 
 +        read X 
 +fi
  
 cat > /etc/hosts <<EOF cat > /etc/hosts <<EOF
 127.0.0.1 ​              ​localhost 127.0.0.1 ​              ​localhost
  
-192.168.${1}.1 gate.corp${1}.un gate+192.168.$X.1 gate.corp$X.un gate
  
 172.16.1.254 ​          proxy 172.16.1.254 ​          proxy
Line 147: Line 160:
  
 cat > /​etc/​resolv.conf <<EOF cat > /​etc/​resolv.conf <<EOF
-search corp${1}.un+search corp$X.un
 nameserver 172.16.1.254 nameserver 172.16.1.254
 +#nameserver 192.168.$X.10
 EOF EOF
  
-echo gate.corp${1}.un > /​etc/​hostname+echo gate.corp$X.un > /​etc/​hostname
  
 cat > /​etc/​network/​interfaces <<EOF cat > /​etc/​network/​interfaces <<EOF
Line 159: Line 173:
 auto eth0 auto eth0
 iface eth0 inet static iface eth0 inet static
-        address 192.168.${1}.1+        address 192.168.$X.1
         netmask 255.255.255.0         netmask 255.255.255.0
  
 auto eth1 auto eth1
 iface eth1 inet static iface eth1 inet static
-        address 172.16.1.${1}+        address 172.16.1.$X
         netmask 255.255.255.0         netmask 255.255.255.0
         gateway 172.16.1.254         gateway 172.16.1.254
 +
 +#auto eth2
 +#iface eth2 inet static
 +#        address 192.168.$((100+$X)).1
 +#        netmask 255.255.255.0
 EOF EOF
  
-echo net.ipv4.ip_forward = 1 >> /​etc/​sysctl.conf+echo "net.ipv4.ip_forward = 1" ​>> /​etc/​sysctl.conf 
 + 
 +timedatectl set-timezone Europe/​Moscow 
 + 
 +echo Success 
 +exit 0 
 +</​code>​ 
 + 
 +==== server.corpX.un ==== 
 + 
 +<​code>​ 
 +# cat net_server.sh
 </​code><​code>​ </​code><​code>​
-cat server.sh +X=$1 
-</​code><​code>​ + 
-rm /​etc/​udev/​rules.d/​70-persistent-net.rules+if test -z $X 
 +then 
 +        echo -n "enter X: " 
 +        read X 
 +fi
  
 cat > /etc/hosts <<EOF cat > /etc/hosts <<EOF
 127.0.0.1 ​              ​localhost 127.0.0.1 ​              ​localhost
  
-192.168.${1}.10 server.corp${1}.un server+192.168.$X.10 server.corp$X.un server
  
 172.16.1.254 ​          proxy 172.16.1.254 ​          proxy
Line 185: Line 219:
  
 cat > /​etc/​resolv.conf <<EOF cat > /​etc/​resolv.conf <<EOF
-search corp${1}.un+search corp$X.un
 nameserver 172.16.1.254 nameserver 172.16.1.254
 +#nameserver 192.168.$X.10
 EOF EOF
  
-echo server.corp${1}.un > /​etc/​hostname+echo server.corp$X.un > /​etc/​hostname
  
 cat > /​etc/​network/​interfaces <<EOF cat > /​etc/​network/​interfaces <<EOF
Line 197: Line 232:
 auto eth0 auto eth0
 iface eth0 inet static iface eth0 inet static
-        address 192.168.${1}.10+        address 192.168.$X.10
         netmask 255.255.255.0         netmask 255.255.255.0
-        gateway 192.168.${1}.1+        gateway 192.168.$X.1
 EOF EOF
 +
 +timedatectl set-timezone Europe/​Moscow
 +
 +echo Success
 +exit 0
 +</​code>​
 +
 +==== dhcp ====
 +
 +<​code>​
 +# cat dhcp.sh
 +</​code><​code>​
 +X=$1
 +
 +if test -z $X
 +then
 +        echo -n "enter X: "
 +        read X
 +fi
 +
 +apt update
 +apt install -y isc-dhcp-server
 +
 +echo '​INTERFACES="​eth0"'​ > /​etc/​default/​isc-dhcp-server
 +echo '#​INTERFACES="​eth0 eth2"'​ >> /​etc/​default/​isc-dhcp-server
 +
 +cat > /​etc/​dhcp/​dhcpd.conf <<EOF
 +ddns-update-style none;
 +
 +default-lease-time 600;
 +max-lease-time 7200;
 +
 +option domain-name "​corp$X.un";​
 +option domain-name-servers 192.168.$X.10;​
 +
 +#### For provisioning ####
 +#option tftp-server-name code 66 = string; # RFC 2132
 +#option tftp-server-address code 150 = ip-address; # RFC 5859
 +#option tftp-server-name "​server.corp$X.un";​
 +#option tftp-server-address 192.168.$X.10;​
 +
 +
 +shared-network LAN1 {
 +  subnet 192.168.$X.0 netmask 255.255.255.0 {
 +    range 192.168.$X.101 192.168.$X.199;​
 +    option routers 192.168.$X.1;​
 +  }
 +}
 +
 +#​shared-network LAN2 {
 +#  subnet 192.168.$((100 + $X)).0 netmask 255.255.255.0 {
 +#    range 192.168.$((100 + $X)).101 192.168.$((100 + $X)).199;
 +#    option routers 192.168.$((100 + $X)).1;
 +#  }
 +#}
 +
 +
 +EOF
 +
 +dhcpd -t && service isc-dhcp-server start
 +
 +echo Success
 +exit 0
 +</​code>​
 +
 +==== dns ====
 +
 +<​code>​
 +# cat dns.sh
 +</​code><​code>​
 +X=$1
 +
 +if test -z $X
 +then
 +        echo -n "enter X: "
 +        read X
 +fi
 +
 +apt update
 +apt install -y bind9 dnsutils
 +
 +cat > /​etc/​bind/​named.conf <<EOF
 +options {
 +        directory "/​var/​cache/​bind";​
 +
 +        allow-recursion { any; };
 +
 +        forwarders {
 +                172.16.1.254;​
 +        };
 +        empty-zones-enable no;
 +};
 +
 +view "​inside"​ {
 +        match-clients {
 +//            192.168.$X/​24;​
 +//            127/8;
 +              0/0;
 +        };
 +        zone "​corp$X.un"​ {
 +                type master;
 +                file "/​etc/​bind/​corp$X.un";​
 +        };
 +};
 +
 +view "​outside"​ {
 +        zone "​corp$X.un"​ {
 +                type master;
 +                file "/​etc/​bind/​corp$X.un.out";​
 +        };
 +};
 +EOF
 +
 +cat > /​etc/​bind/​corp$X.un <<EOF
 +\$TTL      3h
 +@         ​SOA ​    ns root.ns ​ 1 1d 12h 1w 3h
 +          NS      ns
 +
 +          A       ​192.168.$X.10
 +          MX 1    server
 +
 +ns        A       ​192.168.$X.10
 +gate      A       ​192.168.$X.1
 +server ​   A       ​192.168.$X.10
 +
 +;​_sip._udp ​          ​SRV ​    0 0 5060 server
 +
 +;​_xmpp-client._tcp ​  ​SRV ​    0 0 5222 server
 +
 +;​_kerberos._udp ​     SRV     01 00 88 server
 +;​_kerberos._tcp ​     SRV     01 00 88 server
 +;​_kerberos ​          ​TXT ​    ​CORP$X.UN
 +EOF
 +
 +cat > /​etc/​bind/​corp$X.un.out <<EOF
 +\$TTL      3h
 +@         ​SOA ​    ns root.ns ​ 1 1d 12h 1w 3h
 +          NS      ns
 +
 +ns        A       ​172.16.1.$X
 +gate      A       ​172.16.1.$X
 +server ​   A       ​172.16.1.$X
 +
 +;​_sip._udp ​          ​SRV ​    00 00 6050 server
 +EOF
 +
 +named-checkconf -z && service bind9 restart
 +
 +echo Success
 +exit 0
 +</​code>​
 +
 +===== Ansible конфигурация =====
 +
 +<​code>​
 +# git clone http://​val.bmstu.ru/​unix/​conf.git
 +</​code>​
 +
 +<​code>​
 +server.isp.un:​~/​ansible/​roles#​ cat host.yml
 +</​code><​code>​
 +- name: Network config for hosts
 +  hosts: corp
 +  strategy: free
 +  roles:
 +    - host
 +</​code><​code>​
 +server.isp.un:​~/​ansible/​roles#​ cat host/​tasks/​main.yml
 +</​code><​code>​
 +- name: Create hosts file
 +  template: src=hosts.j2 dest=/​etc/​hosts
 +
 +- name: Create resolv.conf file
 +  template: src=resolv.conf.j2 dest=/​etc/​resolv.conf
 +
 +- name: Create hostname file
 +  template: src=hostname.j2 dest=/​etc/​hostname
 +
 +- name: Create interfaces file
 +  template: src=interfaces.j2 dest=/​etc/​network/​interfaces
 +
 +#- name: Restart system
 +#  command: shutdown -r +1
 +</​code><​code>​
 +server.isp.un:​~/​ansible/​roles#​ cat host/​vars/​main.yml
 +</​code><​code>​
 +hostname: server
 +#hostname: mail
 +base_domain_prefix:​ corp
 +base_domain_suffix:​ un
 +base_net: 172.16.1
 +gateway_octet:​ 254
 +dns_ip: 172.16.1.254
 +X: "{{ ansible_eth0.ipv4.address.split('​.'​)[3] }}"
 +#X: "{{ ansible_eth0.ipv4.address.split('​.'​)[3] | int - 100 }}"
 +</​code><​code>​
 +server.isp.un:​~/​ansible/​roles#​ cat host/​templates/​hosts.j2
 +</​code><​code>​
 +127.0.0.1 localhost
 +
 +{{ ansible_eth0.ipv4.address }} {{ hostname }}.{{ base_domain_prefix }}{{ X }}.{{ base_domain_suffix }} {{ hostname }}
 +
 +{{ base_net }}.254 rep
 +</​code><​code>​
 +server.isp.un:​~/​ansible/​roles#​ cat host/​templates/​resolv.conf.j2
 +</​code><​code>​
 +search {{ base_domain_prefix }}{{ X }}.{{ base_domain_suffix }}
 +nameserver {{ dns_ip }}
 +</​code><​code>​
 +server.isp.un:​~/​ansible/​roles#​ cat host/​templates/​hostname.j2
 +</​code><​code>​
 +{{ hostname }}.{{ base_domain_prefix }}{{ X }}.{{ base_domain_suffix }}
 +</​code><​code>​
 +server.isp.un:​~/​ansible/​roles#​ cat host/​templates/​interfaces.j2
 +</​code><​code>​
 +auto lo
 +iface lo inet loopback
 +
 +auto eth0
 +iface eth0 inet static
 +        address {{ ansible_eth0.ipv4.address }}
 +        netmask 255.255.255.0
 +        gateway {{ base_net }}.{{ gateway_octet }}
 +</​code><​code>​
 +root@server:​~/​ansible/​roles#​ ansible-playbook host.yml
 +
 +или
 +
 +root@server:​~#​ ansible-playbook ansible/​roles/​host.yml
 </​code>​ </​code>​
настройка_стендов_слушателей.1512369547.txt.gz · Last modified: 2017/12/04 09:39 by val