123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- # Copyright 2022 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
- 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: zypper in -y --allow-unsigned-rpm cobbler-3.2.2-1.noarch.rpm cobbler-web-3.2.2-1.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 settings to http
- shell: echo "LoadModule wsgi_module modules/mod_wsgi_python3.so" >/etc/apache2/conf.d/wsgi.conf
- changed_when: false
- - name: Change http port to 8000
- replace:
- path: "/etc/apache2/listen.conf"
- regexp: '^Listen 80'
- replace: 'Listen 8000'
- changed_when: false
- - name: Change https port to 8008
- replace:
- path: "/etc/apache2/listen.conf"
- regexp: '^\s.*Listen 443'
- replace: ' Listen 8008'
- changed_when: false
- - name: Change http port to 8000
- replace:
- path: "/etc/apache2/vhosts.d/cobbler.conf"
- regexp: '^<VirtualHost.*'
- replace: '<VirtualHost *:8000>'
- changed_when: false
- - name: Add interface to the /etc/sysconfig/dhcpd
- replace:
- path: "/etc/sysconfig/dhcpd"
- regexp: "^DHCPD_INTERFACE=\"\""
- replace: "DHCPD_INTERFACE={{ host_network_nic }}"
- - name: Enable cobbler
- command: systemctl enable {{ item }}
- with_items:
- - cobblerd
- - tftp
- - apache2
- changed_when: false
- - name: Restart httpd
- service:
- name: "{{ item }}"
- state: restarted
- loop:
- - apache2
- - 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/{{ provision_os }} --name="{{ provision_os }}"
- changed_when: false
- - name: Kickstart profile - centos
- copy:
- src: "/root/omnia/control_plane/roles/provision_cobbler/files/centos7.ks"
- dest: "/var/lib/cobbler/templates/sample.ks"
- mode: "{{ file_perm }}"
- tags: install
- when: provision_os == "centos"
- - name: Kickstart profile - rocky
- copy:
- src: "/root/omnia/control_plane/roles/provision_cobbler/files/rocky8.ks"
- dest: "/var/lib/cobbler/templates/sample.ks"
- mode: "{{ file_perm }}"
- tags: install
- when: provision_os == "rocky"
- - name: Kickstart profile - leap
- copy:
- src: "/root/omnia/control_plane/roles/provision_cobbler/files/leap15.xml"
- dest: "/var/lib/cobbler/templates/sample_autoyast.xml"
- mode: "{{ file_perm }}"
- tags: install
- when: provision_os == "leap"
- - name: Pxe menu
- copy:
- src: "/root/omnia/control_plane/roles/provision_cobbler/files/menu.yml"
- dest: "/etc/cobbler/boot_loader_conf/pxedefault.template"
- mode: "{{ file_perm }}"
- 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 cobblerd, http, xinetd and dhcpd
- service:
- name: "{{ item }}"
- state: restarted
- loop:
- - cobblerd
- - apache2
- - xinetd
- - dhcpd
- - 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"
|