---
- name: yum install basic services
yum:
name: "{{ item }}"
state: latest
with_items:
- xinetd
- tftp-server
- dhcp
- httpd
- syslinux
- name: rewrite tftp config
template:
src: tftp
dest: /etc/xinetd.d/tftp
- name: restart xinetd
service:
name: xinetd
state: restarted
enabled: yes
- name: rewrite dhcpd config
template:
src: dhcpd.conf
dest: /etc/dhcp/dhcpd.conf
- name: restart dhcpd
service:
name: dhcpd
state: restarted
enabled: yes
- name: service start
service:
name: "{{ item }}"
state: restarted
enabled: yes
with_items:
- tftp
- httpd
- name: make sure directory exists
file:
path: "{{ item }}"
state: directory
with_items:
- /var/www/html/file/
- /var/www/html/centos7/
- /var/lib/tftpboot/pxelinux.cfg/
- name: ks config
template:
src: ks.cfg
dest: /var/www/html/file/ks.cfg
- name: pxe default
template:
src: default
dest: /var/lib/tftpboot/pxelinux.cfg/default
- name: copy core file
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
with_items:
- src: tftpboot/vmlinuz
dest: /var/lib/tftpboot/vmlinuz
- src: tftpboot/pxelinux.0
dest: /var/lib/tftpboot/pxelinux.0
- src: tftpboot/vesamenu.c32
dest: /var/lib/tftpboot/vesamenu.c32
- src: tftpboot/initrd.img
dest: /var/lib/tftpboot/initrd.img
- src: CentOS7.iso
dest: /var/www/html/file/CentOS7.iso
- name: auto mount
mount:
path: /var/www/html/centos7
src: /var/www/html/file/CentOS7.iso
fstype: iso9660
opts: defaults
state: present
- name: mount
shell: /usr/bin/mount -a
default
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img inst.repo=http://{{ ansible_default_ipv4.address }}/centos7 quiet ks=http://{{ ansible_default_ipv4.address }}/file/ks.cfg
dhcp
subnet {{ ansible_default_ipv4.network }} netmask {{ ansible_default_ipv4.netmask }} {
range dynamic-bootp {{ dhcp_start_ip }} {{ dhcp_end_ip }};
filename "pxelinux.0";
next-server {{ ansible_default_ipv4.address }};
option routers {{ ansible_default_ipv4.gateway }};
}
ks
keyboard 'us'
rootpw
url
lang en_US.UTF-8
firewall
auth
text
firstboot
selinux
skipx
network
reboot
timezone Asia/Shanghai
bootloader
zerombr
clearpart
part /
part /boot
part swap
%packages
@^minimal
@core
%end
%post
/usr/bin/curl "http://ip:port/path/?action=add_vm&ip=`ip a | grep inet.*en | awk '{print $2}' | awk -F '/' '{print $1}'`"
%end
tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}