- hosts: all remote_user: one become: yes become_method: sudo tasks: - name: install kernel dev packages dnf: name={{ item }} state=present with_items: - fedpkg - fedora-packager - rpmdevtools - ncurses-devel - pesign - libselinux-python - name: fedpkg clone command: fedpkg clone -a kernel args: chdir: /usr/src/ creates: /usr/src/kernel - name: git clone kernel git: > repo=git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/fedora.git dest=/usr/src/kernels/fedora # - name: authorize user script # shell: /usr/libexec/pesign/pesign-authorize-users - name: dnf builddep kernel.spec command: dnf -y builddep kernel.spec args: chdir: /usr/src/kernel creates: /bin/gcc # # this does not work, we have to chdir to /usr/src/kernel # - name: install kernel dev packages # dnf: name={{ item }} state=present # with_items: # - builddep # - kernel.spec # # args: # chdir: /usr/src/kernels/fedora - name: copy old .config copy: src: old.config dest: /usr/src/kernels/fedora/.config - name: make olddefconfig shell: "{{ item }}" with_items: # this will fail at the first time, do make menuconfig manually # - make silentoldconfig .config - make olddefconfig args: chdir: /usr/src/kernels/fedora - name: make kernel shell: "{{ item }}" with_items: # this will fail at the first time, do make menuconfig manually # - make silentoldconfig .config - make -j8 args: chdir: /usr/src/kernels/fedora - name: make bzImage shell: "{{ item }}" with_items: # this will fail at the first time, do make menuconfig manually # - make silentoldconfig .config - make bzImage args: chdir: /usr/src/kernels/fedora - name: make modules shell: "{{ item }}" with_items: - make modules - make modules_install args: chdir: /usr/src/kernels/fedora - name: install kernel shell: "{{ item }}" with_items: - make install args: chdir: /usr/src/kernels/fedora