|
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