# Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- - name: Initial cobbler setup hosts: localhost connection: local gather_facts: false vars: name_iso: CentOS7 distro_name: CentOS7-x86_64 tasks: - name: Inside cobbler container debug: msg: "Hiii! I am cobbler" - name: Make command: make rpms args: chdir: /cobbler changed_when: false - name: Install cobbler and cobbler-web command: dnf install -y cobbler-3.2.1-1.el8.noarch.rpm cobbler-web-3.2.1-1.el8.noarch.rpm args: chdir: /cobbler/rpm-build changed_when: false - name: Run script shell: sh ./mkgrub.sh args: chdir: /usr/share/cobbler/bin changed_when: false - name: Add load_wsgi blockinfile: state: present insertbefore: '# LoadModule foo_module modules/mod_foo.so' dest: /etc/httpd/conf/httpd.conf block: | LoadModule wsgi_module modules/mod_wsgi_python3.so LoadModule proxy_module modules/mod_proxy.so - name: Cobbler web blockinfile: state: present insertafter: '^/etc/httpd/conf.d/wsgi.conf changed_when: false - name: Enable cobbler command: systemctl enable {{ item }} with_items: - cobblerd - tftp changed_when: false - name: Restart httpd service: name: "{{ item }}" state: restarted loop: - httpd - cobblerd - name: Start services service: name: "{{ item }}" state: started loop: - cobblerd - tftp - name: Adding curl shell: export PATH="/usr/bin/curl:$PATH" - name: Run import command command: cobbler import --arch=x86_64 --path=/mnt --name="{{ name_iso }}" changed_when: false - name: Kickstart profile copy: src: "/var/lib/cobbler/templates/centos7.ks" dest: "/var/lib/cobbler/templates/sample.ks" mode: 0775 tags: install - name: Pxe menu copy: src: "/root/omnia/control_plane/roles/provision_cobbler/files/menu.yml" dest: "/etc/cobbler/boot_loader_conf/pxedefault.template" mode: 0775 tags: install - name: Assign default grub option replace: path: "/var/lib/cobbler/grub_config/grub/grub.cfg" regexp: "^set default=\'local\'" replace: "set default=\'1\'" tags: install - name: Assign default grub timeout replace: path: "/var/lib/cobbler/grub_config/grub/grub.cfg" regexp: '^set timeout=80' replace: 'set timeout=10' tags: install - name: Syncing of cobbler command: cobbler sync changed_when: false - name: Restart cobbler service: name: cobblerd state: restarted - name: Restart httpdd service: name: httpd state: restarted - name: Restart xinetd service: name: xinetd state: restarted - name: Restart dhcpd service: name: dhcpd state: restarted - name: Fetch ansible-playbook path command: whereis ansible-playbook changed_when: false register: ansible_playbook_path - name: Add tftp cron job cron: name: Start tftp service minute: "*" job: "{{ ansible_playbook_path.stdout.split(' ')[1] }} /root/tftp.yml" - name: Add inventory cron job cron: name: Create inventory minute: "*/5" job: "{{ ansible_playbook_path.stdout.split(' ')[1] }} /root/inventory_creation.yml"