main.yml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. # - name: Remove postfix at first
  2. # become: true
  3. # apt:
  4. # name: postfix
  5. # state: absent
  6. # purge: yes
  7. # - name: Backup /etc/apt/sources.list.d
  8. # become: true
  9. # copy:
  10. # src: /etc/apt/sources.list.d
  11. # dest: "{{ app_backup }}/etc_apt_sources_list_d"
  12. # remote_src: yes
  13. # backup: yes
  14. # - name: Delete /etc/apt/sources.list.d
  15. # become: true
  16. # file:
  17. # state: absent
  18. # path: /etc/apt/sources.list.d
  19. - name: add PPA for Ubuntu Toolchain
  20. become: true
  21. ansible.builtin.apt_repository:
  22. repo: ppa:ubuntu-toolchain-r/test
  23. when: ansible_distribution == 'Ubuntu'
  24. - name: Update system
  25. become: true
  26. apt:
  27. upgrade: yes
  28. update_cache: yes
  29. cache_valid_time: 3600
  30. - name: Install dependicy packages
  31. become: true
  32. apt:
  33. pkg:
  34. - apt-transport-https
  35. - software-properties-common
  36. - gnupg
  37. - openssh-server
  38. - openssh-client
  39. - sshpass
  40. - wpasupplicant
  41. - rsync
  42. - at
  43. - sysstat
  44. - libtool
  45. - ethtool
  46. - dnsutils
  47. - dnsmasq
  48. - uuid-runtime
  49. - lshw
  50. - tcpdump
  51. - lm-sensors
  52. - hddtemp
  53. - dmidecode
  54. - net-tools
  55. - iputils-arping
  56. - iputils-ping
  57. - telnet
  58. - vim
  59. - git
  60. - pwgen
  61. - locales
  62. - ntpdate
  63. - imagemagick
  64. - mpg123
  65. - ffmpeg
  66. - sqlite3
  67. - tree
  68. - alsa-utils
  69. - pulseaudio
  70. - zsh
  71. - wget
  72. - curl
  73. - zip
  74. - unzip
  75. - nginx
  76. - certbot
  77. - openvpn
  78. - snmpd
  79. - systemd-cron
  80. - systemd-timesyncd
  81. - screen
  82. - tmux
  83. - hugo
  84. - python3
  85. - python3-pip
  86. - python3-distutils
  87. - python3-dev
  88. - libssl-dev
  89. - libpq-dev
  90. - libmysqlclient-dev
  91. - include: locales.yml
  92. - name: Set default editor to vim
  93. become: true
  94. shell: update-alternatives --set editor /usr/bin/vim.basic
  95. - name: Set timezone
  96. become: true
  97. shell: timedatectl set-timezone Asia/Shanghai
  98. - name: Set git rebase mode
  99. become: true
  100. shell: git config --global pull.rebase false
  101. - include: zsh.yml
  102. # ---------------------------------------------------
  103. - name: check if friendlyelec
  104. ansible.builtin.stat:
  105. path: /etc/friendlyelec-release
  106. register: app_os_friendlyelec
  107. - include: friendly-core.yml
  108. when: app_os_friendlyelec.stat.islnk is defined and app_os_friendlyelec.stat.isreg
  109. - name: check if armbian
  110. ansible.builtin.stat:
  111. path: /etc/armbian-release
  112. register: app_os_armbian
  113. - include: armbian.yml
  114. when: app_os_armbian.stat.islnk is defined and app_os_armbian.stat.isreg
  115. - include: raspbian.yml
  116. when: ansible_distribution == 'Raspbian'
  117. - include: pi.yml
  118. when: ansible_distribution == 'Raspbian' or (app_os_armbian.stat.islnk is defined and app_os_armbian.stat.isreg) or (app_os_friendlyelec.stat.islnk is defined and app_os_friendlyelec.stat.isreg)
  119. # ---------------------------------------------------
  120. - name: enable nginx service
  121. become: true
  122. ansible.builtin.systemd:
  123. name: nginx
  124. enabled: yes
  125. masked: no
  126. - name: enable cron service
  127. become: true
  128. ansible.builtin.systemd:
  129. name: cron-target
  130. enabled: yes
  131. masked: no
  132. - name: enable certbot sync
  133. ansible.builtin.cron:
  134. name: "renew certbot"
  135. special_time: monthly
  136. job: "/usr/bin/certbot renew --force-renewal"
  137. - name: enable ssh service
  138. become: true
  139. ansible.builtin.systemd:
  140. name: ssh
  141. enabled: yes
  142. masked: no
  143. - name: enable systemd-timesyncd service
  144. become: true
  145. ansible.builtin.systemd:
  146. name: systemd-timesyncd
  147. enabled: yes
  148. masked: no
  149. - include: clean.yml