Rhcsa-rhce-playbook — различия между версиями

Материал из pNp Wiki
Перейти к: навигация, поиск
(Сервер =)
(Ссылки)
 
(не показано 27 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
== Ansible playbook для подготовки к экзаменам RHCSA/RHCE (EX200/EX300) ==
 
== Ansible playbook для подготовки к экзаменам RHCSA/RHCE (EX200/EX300) ==
  
==== Общая информация ====
+
=== Общая информация ===
Плейбук разворачивает окружение для подготовки к экзамену RHCSA-RHCE (EX200/EX300)
+
Плейбук разворачивает окружение для подготовки к экзамену RHCSA-RHCE (EX200/EX300). Пользователь, который
 +
разворачивает плейбук должен иметь доступ к локальной машине по протоколу <code>ssh</code>
 +
* <code>Domain: virual.lab</code>
 +
* <code>Network: 192.168.10.0/24</code>
 +
Предполагается, что пользовательские виртуальные машины носят название:  и <code>vm-02</code>,
 +
сервер называется <code>vm-03</code> и необходим для работы DNS, LDAP и предоставления тестовых пользователей.
 +
Все задачи по выполнению экзамена происходят на пользовательских виртуальных машинах.
 +
Предполагается следующая адресация:
 +
* <code>vm-01 - 192.168.10.8</code>
 +
* <code>vm-02 - 192.168.10.9</code>
 +
* <code>vm-03 - 192.168.10.10</code>
  
==== Пользовательские машины ====
+
=== Пользовательские машины ===
  
 
* Виртуальная машина с двумя сетевыми интерфейсами, двумя жесткими дисками
 
* Виртуальная машина с двумя сетевыми интерфейсами, двумя жесткими дисками
Строка 12: Строка 22:
 
Машина разворачивается следующим образом:
 
Машина разворачивается следующим образом:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
ansible-playbook -v /home/andy/tmp/rhcsa-rhce/deploy_vm.yml -i /home/andy/tmp/rhcsa-rhce/inventories/localhost/hosts -u root -k -e 'lastoctet=9 vmname=vm-02 isopath=/home/andy/Downloads/RHEL7/rhel-server-7.0-x86_64-dvd.iso username=andy'
+
ansible-playbook -v /home/andy/tmp/rhcsa-rhce/deploy_vm.yml -i /home/andy/tmp/rhcsa-rhce/inventories/localhost/hosts -u andy -k --become-method=su -K -e 'lastoctet=9 vmname=vm-02 isopath=/home/andy/Downloads/RHEL7/rhel-server-7.0-x86_64-dvd.iso username=andy'
 
</syntaxhighlight>
 
</syntaxhighlight>
 
При запуске обязательно следует передавать параметры:
 
При запуске обязательно следует передавать параметры:
Строка 20: Строка 30:
 
Использовать именно RHEL7 именно версии 7.0, не обязательно, можно взять и версию 7.x, либо какую-нибудь СentOS7.x, однако, из-за обновления некоторых программ, возможно иное поведение, отличное от старых версий.
 
Использовать именно RHEL7 именно версии 7.0, не обязательно, можно взять и версию 7.x, либо какую-нибудь СentOS7.x, однако, из-за обновления некоторых программ, возможно иное поведение, отличное от старых версий.
 
Например, <code>NetworkManager</code> в RHEL/CentOS 7.1 и выше знает про опцию <code>ipv4.gateway</code>, в версии 7.0 она прописывается после опции <code>ipv4.adresses</code> через пробел. Так же, <code>firewalld</code> в версии  
 
Например, <code>NetworkManager</code> в RHEL/CentOS 7.1 и выше знает про опцию <code>ipv4.gateway</code>, в версии 7.0 она прописывается после опции <code>ipv4.adresses</code> через пробел. Так же, <code>firewalld</code> в версии  
RHEL/CentOS 7.1 и выше имеет большее количество шаблонов сервисов. Например:
+
RHEL/CentOS 7.1 и выше имеет большее количество шаблонов сервисов. Например:<br />
 
Версия 7.0
 
Версия 7.0
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Строка 35: Строка 45:
 
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nfs3 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
 
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nfs3 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
=== Сервер ===
 
=== Сервер ===
 +
* Виртуальная машина с двумя сетевыми интерфейсами, двумя жесткими дисками
 +
* Учетные записи:
 +
1. SSH<br />
 +
<code>root/test1234</code><br />
 +
2. LDAP<br />
 +
<code>cn=admin,dc=virtual,dc=lab/123321</code><br />
 +
<code>cn=lisa,ou=users,dc=virtual,dc=lab/elizabeth1</code><br />
 +
<code>cn=mary,ou=users,dc=virtual,dc=lab/maria1</code><br />
 +
<code>cn=randy,ou=users,dc=virtual,dc=lab/randy1</code><br />
 +
3. Kerberos<br />
 +
<code>krbadmin/test1234</code><br />
 +
 +
 +
Машина разворачивается следующим образом:
 +
<syntaxhighlight lang="bash">
 +
ansible-playbook -v /home/andy/tmp/rhcsa-rhce/deploy_srv.yml -i /home/andy/tmp/rhcsa-rhce/inventories/localhost/hosts -u andy -k --become-method=su -K -e 'lastoctet=10 vmname=vm-03 isopath=/home/andy/Downloads/RHEL7/rhel-server-7.0-x86_64-dvd.iso playbookpath=/home/andy/tmp/rhcsa-rhce/ username=andy'
 +
</syntaxhighlight>
 +
 +
Утилита <code>string2hex.pl</code> служит для создания файла <code>service.keyfile</code> и вызывается следующим образом:
 +
<syntaxhighlight lang="bash">
 +
$ ./string2hex.pl -s cn=krbadmin,ou=users,dc=virtual,dc=lab -p test1234
 +
cn=krbadmin,ou=users,dc=virtual,dc=lab#{HEX}7465737431323334
 +
$
 +
</syntaxhighlight>
  
 +
 +
=== Дальнейшие действия ===
 +
После разворачивания виртуальных машин, необходимо информацию о них занести в DNS, на сервере <code>vm-03</code>:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 +
[root@vm-03 ~]# cat /var/named/zone/virtual.lab
 +
$TTL    3600
 +
@      IN      SOA    kdc1.virtual.lab. admin.virtual.lab. (
 +
                        2018112000
 +
                        604800          ; Refresh
 +
                        86400          ; Retry
 +
                        2419200        ; Expire
 +
                        3600 )  ; Negative Cache TTL
 +
;
 +
@              IN      NS      kdc1.virtual.lab.
  
 +
; Our services
 +
_kerberos._tcp.virtual.lab.        IN SRV 0 0 88 kdc1.virtual.lab.
 +
_kerberos._udp.virtual.lab.        IN SRV    0      0      88      kdc1.virtual.lab.
 +
_kerberos-adm._tcp.virtual.lab.    IN SRV    0      0      749    kdc1.virtual.lab.
 +
_kerberos-adm._udp.virtual.lab.    IN SRV    0      0      749    kdc1.virtual.lab.
 +
_kerberos_master._udp.virtual.lab. IN SRV    0      0      751    kdc1.virtual.lab.
 +
_kerberos_master._tcp.virtual.lab. IN SRV    0      0      751    kdc1.virtual.lab.
 +
_kpasswd._udp.virtual.lab.        IN SRV    0      0      464    kdc1.virtual.lab.
 +
_kpasswd._tcp.virtual.lab.        IN SRV    0      0      464    kdc1.virtual.lab.       
 +
_ldap._udp.virtual.lab.            IN SRV    0      0      389    kdc1.virtual.lab.
 +
_ldap._tcp.virtual.lab.            IN SRV    0      0      389    kdc1.virtual.lab.
 +
 +
 +
kdc1 IN      A      192.168.10.10
 +
vm-03 IN CNAME kdc1
 +
ns1 IN CNAME kdc1
 +
 +
vm-01 IN A 192.168.10.8
 +
vm-01 IN A 192.168.10.9
 +
[root@vm-03 ~]# cat /var/named/addr.arpa/10.168.192.in-addr.arpa
 +
$TTL    3600
 +
@      IN      SOA    kdc1.virtual.lab. admin.virtual.lab. (
 +
                        2018112000
 +
                        604800          ; Refresh
 +
                        86400          ; Retry
 +
                        2419200        ; Expire
 +
                        3600 )  ; Negative Cache TTL
 +
;
 +
              IN      NS      kdc1.virtual.lab.
 +
 +
8      IN      PTR    vm-01.virtual.lab.
 +
9      IN      PTR    vm-02.virtual.lab.
 +
10      IN      PTR    kdc1.virtual.lab.
 +
[root@vm-03 ~]#
 +
</syntaxhighlight>
 +
 +
На виртуальных машинах нужно прописать адрес DNS из внутренней сети:
 +
<syntaxhighlight lang="bash">
 +
[root@vm-02 ~]# nmcli connection modify eth0 ipv4.dns 192.168.10.10
 +
[root@vm-02 ~]# nmcli connection modify eth1 ipv4.dns 192.168.10.10
 +
[root@vm-02 ~]# nmcli connection modify eth0 ipv4.ignore-auto-dns yes
 +
[root@vm-02 ~]# systemctl restart NetworkManager
 +
[root@vm-02 ~]# cat /etc/resolv.conf
 +
# Generated by NetworkManager
 +
search virtual.lab
 +
nameserver 192.168.10.10
 +
[root@vm-02 ~]#
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== Ссылки ==
 
== Ссылки ==
[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/ch-configure_network_bonding Настройка Bonding'а]<br />
+
[https://docs.ansible.com Документация для Ansible]<br />
[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/ch-configure_network_teaming Настройка Teaming'а]
+
[https://natenka.gitbooks.io/ansible-dlya-setevih-inzhenerov/content/ Ansible для сетевых инженеров]<br />
 +
[http://labs.opinsys.com/blog/2010/02/05/setting-up-openldap-kerberos-on-ubuntu-10-04-lucid/ Настройка OpenLDAP и Kerberos v5]<br />
 +
[http://www.rjsystems.nl/en/2100-d6-kerberos-openldap-provider.php Настройка OpenLDAP и Kerberos v5 на Debian Squeeze]<br />

Текущая версия на 13:45, 3 декабря 2018

Ansible playbook для подготовки к экзаменам RHCSA/RHCE (EX200/EX300)

Общая информация

Плейбук разворачивает окружение для подготовки к экзамену RHCSA-RHCE (EX200/EX300). Пользователь, который разворачивает плейбук должен иметь доступ к локальной машине по протоколу ssh

  • Domain: virual.lab
  • Network: 192.168.10.0/24

Предполагается, что пользовательские виртуальные машины носят название: и vm-02, сервер называется vm-03 и необходим для работы DNS, LDAP и предоставления тестовых пользователей. Все задачи по выполнению экзамена происходят на пользовательских виртуальных машинах. Предполагается следующая адресация:

  • vm-01 - 192.168.10.8
  • vm-02 - 192.168.10.9
  • vm-03 - 192.168.10.10

Пользовательские машины

  • Виртуальная машина с двумя сетевыми интерфейсами, двумя жесткими дисками
  • Установленные пакеты в виртуальных машинах: nfs-utils, krb5-workstation
  • пароль root - test1234

Машина разворачивается следующим образом:

ansible-playbook -v /home/andy/tmp/rhcsa-rhce/deploy_vm.yml -i /home/andy/tmp/rhcsa-rhce/inventories/localhost/hosts -u andy -k --become-method=su -K -e 'lastoctet=9 vmname=vm-02 isopath=/home/andy/Downloads/RHEL7/rhel-server-7.0-x86_64-dvd.iso username=andy'

При запуске обязательно следует передавать параметры:

  • lastoctet - число присваивается последнему октету внутренней сети
  • vmname - имя виртуальной машины
  • vmname - путь к iso файлу, с образом RHEL7.

Использовать именно RHEL7 именно версии 7.0, не обязательно, можно взять и версию 7.x, либо какую-нибудь СentOS7.x, однако, из-за обновления некоторых программ, возможно иное поведение, отличное от старых версий. Например, NetworkManager в RHEL/CentOS 7.1 и выше знает про опцию ipv4.gateway, в версии 7.0 она прописывается после опции ipv4.adresses через пробел. Так же, firewalld в версии RHEL/CentOS 7.1 и выше имеет большее количество шаблонов сервисов. Например:
Версия 7.0

# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.0 (Maipo)
# firewall-cmd --get-services
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https

Версия 7.5

# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
# firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nfs3 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

Сервер

  • Виртуальная машина с двумя сетевыми интерфейсами, двумя жесткими дисками
  • Учетные записи:

1. SSH
root/test1234
2. LDAP
cn=admin,dc=virtual,dc=lab/123321
cn=lisa,ou=users,dc=virtual,dc=lab/elizabeth1
cn=mary,ou=users,dc=virtual,dc=lab/maria1
cn=randy,ou=users,dc=virtual,dc=lab/randy1
3. Kerberos
krbadmin/test1234


Машина разворачивается следующим образом:

ansible-playbook -v /home/andy/tmp/rhcsa-rhce/deploy_srv.yml -i /home/andy/tmp/rhcsa-rhce/inventories/localhost/hosts -u andy -k --become-method=su -K -e 'lastoctet=10 vmname=vm-03 isopath=/home/andy/Downloads/RHEL7/rhel-server-7.0-x86_64-dvd.iso playbookpath=/home/andy/tmp/rhcsa-rhce/ username=andy'

Утилита string2hex.pl служит для создания файла service.keyfile и вызывается следующим образом:

$ ./string2hex.pl -s cn=krbadmin,ou=users,dc=virtual,dc=lab -p test1234
cn=krbadmin,ou=users,dc=virtual,dc=lab#{HEX}7465737431323334
$


Дальнейшие действия

После разворачивания виртуальных машин, необходимо информацию о них занести в DNS, на сервере vm-03:

[root@vm-03 ~]# cat /var/named/zone/virtual.lab 
$TTL    3600
@       IN      SOA     kdc1.virtual.lab. admin.virtual.lab. (
                        2018112000
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        3600 )  ; Negative Cache TTL
;
@               IN      NS      kdc1.virtual.lab.

; Our services
_kerberos._tcp.virtual.lab.        IN	SRV	0	0	88	kdc1.virtual.lab.
_kerberos._udp.virtual.lab.        IN	SRV     0       0       88      kdc1.virtual.lab.
_kerberos-adm._tcp.virtual.lab.    IN	SRV     0       0       749     kdc1.virtual.lab.
_kerberos-adm._udp.virtual.lab.    IN	SRV     0       0       749     kdc1.virtual.lab.
_kerberos_master._udp.virtual.lab. IN	SRV     0       0       751     kdc1.virtual.lab.
_kerberos_master._tcp.virtual.lab. IN	SRV     0       0       751     kdc1.virtual.lab.
_kpasswd._udp.virtual.lab.         IN	SRV     0       0       464     kdc1.virtual.lab.
_kpasswd._tcp.virtual.lab.         IN	SRV     0       0       464     kdc1.virtual.lab.         
_ldap._udp.virtual.lab.            IN	SRV     0       0       389     kdc1.virtual.lab.
_ldap._tcp.virtual.lab.            IN	SRV     0       0       389     kdc1.virtual.lab.


kdc1			IN      A       192.168.10.10
vm-03		IN	CNAME	kdc1
ns1			IN	CNAME	kdc1

vm-01			IN	A	192.168.10.8
vm-01			IN	A	192.168.10.9
[root@vm-03 ~]# cat /var/named/addr.arpa/10.168.192.in-addr.arpa 
$TTL    3600
@       IN      SOA     kdc1.virtual.lab. admin.virtual.lab. (
                        2018112000
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        3600 )  ; Negative Cache TTL
;
               IN      NS      kdc1.virtual.lab.

8      IN      PTR     vm-01.virtual.lab.
9      IN      PTR     vm-02.virtual.lab.
10      IN      PTR     kdc1.virtual.lab.
[root@vm-03 ~]#

На виртуальных машинах нужно прописать адрес DNS из внутренней сети:

[root@vm-02 ~]# nmcli connection modify eth0 ipv4.dns 192.168.10.10
[root@vm-02 ~]# nmcli connection modify eth1 ipv4.dns 192.168.10.10
[root@vm-02 ~]# nmcli connection modify eth0 ipv4.ignore-auto-dns yes
[root@vm-02 ~]# systemctl restart NetworkManager
[root@vm-02 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search virtual.lab
nameserver 192.168.10.10
[root@vm-02 ~]#

Ссылки

Документация для Ansible
Ansible для сетевых инженеров
Настройка OpenLDAP и Kerberos v5
Настройка OpenLDAP и Kerberos v5 на Debian Squeeze