|
1 | 1 | # Prepares LinuxMint19/20 desktop.
|
2 | 2 | # start from preparing ssh:
|
3 | 3 | # sudo apt install openssh-server ntp;systemctl enable ssh && systemctl start ssh
|
4 |
| -# |
| 4 | +# kind: playbook |
5 | 5 | - name: prepare_mint_desktop
|
6 | 6 | hosts: all
|
7 | 7 | vars:
|
|
24 | 24 | reboot_required: false # force reboot even if apt upgrade won't change anything
|
25 | 25 | unpack_folder: /tmp/linux_mint # folder to which we're going to unpack and download files
|
26 | 26 | become: true
|
27 |
| - gather_facts: no |
| 27 | + gather_facts: false |
28 | 28 | pre_tasks:
|
29 | 29 | # ansible version
|
30 | 30 | - name: verify_ansible_meets_version_requirements
|
|
48 | 48 | - name: assert_root_partition_is_15_GB_of_free_space
|
49 | 49 | ansible.builtin.assert: { that: item.size_available > 13622320128 } # 20 GB free
|
50 | 50 | loop: '{{ ansible_mounts }}'
|
51 |
| - ignore_errors: no |
| 51 | + ignore_errors: false |
52 | 52 | when: item.mount == '/'
|
53 | 53 | tags:
|
54 | 54 | - assert
|
|
187 | 187 | - keys
|
188 | 188 | - base
|
189 | 189 | - obsolete
|
| 190 | + become: true |
190 | 191 | # remove obsolete packages
|
191 | 192 | - name: remove_obsolete_apt_packages
|
192 | 193 | ansible.builtin.apt:
|
|
350 | 351 | - name: reconfigure_all_waiting_packages
|
351 | 352 | ansible.builtin.shell: dpkg --configure -a
|
352 | 353 | any_errors_fatal: false
|
353 |
| - ignore_errors: true |
| 354 | + register: r_reconfigure_all_waiting_packages |
| 355 | + retries: "{{ retries_count }}" |
| 356 | + delay: "{{ delay_time }}" |
| 357 | + until: r_reconfigure_all_waiting_packages is success |
| 358 | + failed_when: false |
354 | 359 | changed_when: false
|
355 | 360 | tags:
|
356 | 361 | - packages
|
|
364 | 369 | delay: "{{ delay_time }}"
|
365 | 370 | until: r_apt_clean is success
|
366 | 371 | when: r_apt_initial_refresh.failed
|
| 372 | + changed_when: r_apt_clean.rc != 0 |
367 | 373 | tags:
|
368 | 374 | - packages
|
369 | 375 | - base
|
|
484 | 490 | delay: "{{ delay_time }}"
|
485 | 491 | register: r_update_flatpak
|
486 | 492 | until: r_update_flatpak is success
|
487 |
| - any_errors_fatal: false |
| 493 | + changed_when: r_update_flatpak.rc != 0 |
488 | 494 | ignore_errors: true
|
489 | 495 | when: install_flatpak
|
490 | 496 | tags:
|
|
587 | 593 | - apps
|
588 | 594 | - name: refresh_desktop_database
|
589 | 595 | ansible.builtin.shell: update-desktop-database
|
590 |
| - any_errors_fatal: false |
| 596 | + register: r_refresh_desktop_database |
| 597 | + until: r_refresh_desktop_database is success |
| 598 | + retries: "{{ retries_count }}" |
| 599 | + delay: "{{ delay_time }}" |
| 600 | + failed_when: r_refresh_desktop_database.rc != 0 |
591 | 601 | ignore_errors: true
|
592 |
| - changed_when: |
| 602 | + changed_when: false |
593 | 603 | tags:
|
594 | 604 | - base
|
595 | 605 | - downloads
|
596 | 606 | - apps
|
597 | 607 | # Start user-related modification block
|
598 | 608 | - name: user_modifications_block
|
| 609 | + tags: |
| 610 | + - base |
| 611 | + - user |
| 612 | + - zsh |
599 | 613 | block:
|
600 | 614 | - name: create_or_check_users_groups
|
601 | 615 | ansible.builtin.user:
|
|
667 | 681 | - base
|
668 | 682 | - user
|
669 | 683 | - yubico
|
670 |
| - tags: |
671 |
| - - base |
672 |
| - - user |
673 |
| - - zsh |
674 |
| - # start ansible block |
| 684 | + # start ansible block |
675 | 685 | - name: start ansible block
|
| 686 | + tags: |
| 687 | + - ansible |
| 688 | + when: config_ansible |
676 | 689 | block:
|
677 | 690 | - name: check_if_ansible_cfg_exists
|
678 | 691 | ansible.builtin.stat:
|
|
700 | 713 | register: r_change_ansible_options
|
701 | 714 | until: r_change_ansible_options is success
|
702 | 715 | when: ansible_exists
|
703 |
| - when: config_ansible |
704 |
| - tags: |
705 |
| - - ansible |
706 | 716 | # start steampipe plugins block
|
707 | 717 | - name: install_steampipe_plugins_block
|
708 | 718 | block:
|
|
731 | 741 | - always
|
732 | 742 | # start vscode extensions block
|
733 | 743 | - name: install_vscode_extensions
|
| 744 | + tags: |
| 745 | + - optional |
| 746 | + - user |
| 747 | + - vscode |
| 748 | + - eztensions |
| 749 | + when: install_vscode_extensions |
734 | 750 | block:
|
735 | 751 | - name: remove_obsolete_extensions
|
736 | 752 | ansible.builtin.shell: "code --uninstall-extension {{ item }} | true"
|
737 | 753 | any_errors_fatal: false
|
738 | 754 | ignore_errors: true
|
739 | 755 | loop: "{{ vscode_obsolete }}"
|
740 |
| - become: yes |
| 756 | + become: true |
741 | 757 | become_user: "{{ active_user }}"
|
742 | 758 | register: r_remove_obsolete_extensions
|
743 | 759 | changed_when: "'was successfully uninstalled!' in r_remove_obsolete_extensions.stdout"
|
|
747 | 763 | any_errors_fatal: false
|
748 | 764 | ignore_errors: true
|
749 | 765 | changed_when: "r_dpkg_query_vscode.stdout != 'Status: install ok installed'"
|
750 |
| - become: yes |
| 766 | + become: true |
751 | 767 | become_user: "{{ active_user }}"
|
752 | 768 | - name: install_missing_extensions
|
753 | 769 | ansible.builtin.shell: if [ ! $(code --list-extensions | grep {{ item }}) ]; then code --install-extension {{ item }} --force; fi
|
|
756 | 772 | retries: "{{ retries_count }}"
|
757 | 773 | delay: "{{ delay_time }}"
|
758 | 774 | until: r_install_extension is success
|
759 |
| - become: yes |
| 775 | + become: true |
760 | 776 | become_user: "{{ active_user }}"
|
761 | 777 | changed_when: r_install_extension.stdout | length > 0
|
762 | 778 | when: r_dpkg_query_vscode.rc == 0
|
763 | 779 | any_errors_fatal: false
|
764 | 780 | ignore_errors: true
|
765 |
| - tags: |
766 |
| - - optional |
767 |
| - - user |
768 |
| - - vscode |
769 |
| - when: install_vscode_extensions |
770 | 781 | # Start OS related block
|
771 | 782 | - name: start_os_tweaks
|
| 783 | + tags: |
| 784 | + - user |
| 785 | + - base |
772 | 786 | block:
|
773 | 787 | # OS related tweaks and finetuning
|
774 | 788 | - name: set_timezone
|
|
798 | 812 | line: 'hosts: files dns'
|
799 | 813 | backrefs: yes
|
800 | 814 | any_errors_fatal: false
|
801 |
| - ignore_errors: true |
| 815 | + register: r_nsswitch_config |
| 816 | + retries: "{{ retries_count }}" |
| 817 | + delay: "{{ delay_time }}" |
| 818 | + until: r_nsswitch_config is success |
802 | 819 | - name: restart_avahi_after_changes
|
803 | 820 | ansible.builtin.systemd:
|
804 | 821 | name: avahi-daemon
|
|
885 | 902 | when: config_dconf and "absent" in item.state
|
886 | 903 | any_errors_fatal: false
|
887 | 904 | ignore_errors: true
|
888 |
| - become: yes |
| 905 | + become: true |
889 | 906 | become_user: "{{ active_user }}"
|
890 | 907 | tags:
|
891 | 908 | - dconf
|
|
900 | 917 | delay: "{{ delay_time }}"
|
901 | 918 | until: r_dconf_values is success
|
902 | 919 | when: config_dconf and "present" in item.state
|
903 |
| - become: yes |
| 920 | + become: true |
904 | 921 | become_user: "{{ active_user }}"
|
905 | 922 | tags:
|
906 | 923 | - dconf
|
907 |
| - # Reboot |
908 |
| - tags: |
909 |
| - - user |
910 |
| - - base |
911 | 924 | - name: update_all_packages
|
912 | 925 | ansible.builtin.apt:
|
913 | 926 | upgrade: "yes"
|
|
0 commit comments