main.yml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  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. - python3-certbot-nginx
  78. - openvpn
  79. - snmpd
  80. - systemd-cron
  81. - systemd-timesyncd
  82. - screen
  83. - tmux
  84. - hugo
  85. - python3
  86. - python3-pip
  87. - python3-distutils
  88. - python3-dev
  89. - nodejs
  90. - npm
  91. - yarnpkg
  92. - libssl-dev
  93. - libpq-dev
  94. - libmysqlclient-dev
  95. - import_tasks: locales.yml
  96. - name: Set default editor to vim
  97. become: true
  98. shell: update-alternatives --set editor /usr/bin/vim.basic
  99. - name: Set timezone
  100. become: true
  101. shell: timedatectl set-timezone Asia/Shanghai
  102. - name: Set git rebase mode
  103. become: true
  104. shell: git config --global pull.rebase false
  105. - import_tasks: zsh.yml
  106. # ---------------------------------------------------
  107. - name: check if friendlyelec
  108. ansible.builtin.stat:
  109. path: /etc/friendlyelec-release
  110. register: app_os_friendlyelec
  111. - import_tasks: friendly-core.yml
  112. when: app_os_friendlyelec.stat.islnk is defined and app_os_friendlyelec.stat.isreg
  113. - name: check if armbian
  114. ansible.builtin.stat:
  115. path: /etc/armbian-release
  116. register: app_os_armbian
  117. - import_tasks: armbian.yml
  118. when: app_os_armbian.stat.islnk is defined and app_os_armbian.stat.isreg
  119. - import_tasks: raspbian.yml
  120. when: ansible_distribution == 'Raspbian'
  121. - import_tasks: pi.yml
  122. 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)
  123. # ---------------------------------------------------
  124. - name: enable nginx service
  125. become: true
  126. ansible.builtin.systemd:
  127. name: nginx
  128. enabled: yes
  129. masked: no
  130. - name: enable cron service
  131. become: true
  132. ansible.builtin.systemd:
  133. name: cron
  134. enabled: yes
  135. masked: no
  136. - name: enable ssh service
  137. become: true
  138. ansible.builtin.systemd:
  139. name: ssh
  140. enabled: yes
  141. masked: no
  142. - name: enable systemd-timesyncd service
  143. become: true
  144. ansible.builtin.systemd:
  145. name: systemd-timesyncd
  146. enabled: yes
  147. masked: no
  148. - import_tasks: clean.yml