base.yml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. - name: 'Install hosts file'
  2. template: src=hosts.j2 dest=/etc/hosts owner=root group=root mode=0644
  3. notify:
  4. - 'Update motd'
  5. - name: 'Install hosts.deny file'
  6. template: src=hosts.deny.j2 dest=/etc/hosts.deny owner=root group=root mode=0644
  7. - name: 'Write /etc/apt/sources.list'
  8. template: src=apt/sources.{{ ansible_lsb.codename }}.list.j2 dest=/etc/apt/sources.list owner=root group=root mode=0644
  9. register: apt_sources
  10. - name: 'Refresh apt cache'
  11. apt:
  12. update_cache: yes
  13. when: apt_sources.changed
  14. - name: 'Remove deprecated apt options files'
  15. file:
  16. path: '/etc/apt/apt.conf.d/{{ item }}'
  17. state: 'absent'
  18. with_items:
  19. - '90local'
  20. - name: 'Write /etc/apt/apt.conf.d configuration files'
  21. template:
  22. src: 'apt/apt-{{ item }}.j2'
  23. dest: '/etc/apt/apt.conf.d/99{{ item }}'
  24. owner: 'root'
  25. group: 'root'
  26. mode: '0644'
  27. with_items:
  28. - 'nopdiffs'
  29. - 'norecommends'
  30. - 'progressbar'
  31. - name: 'Install apt key for custom Debian repositories'
  32. apt_key:
  33. id: '{{ item.id }}'
  34. url: '{{ item.url }}'
  35. state: 'present'
  36. with_items: '{{ apt_keys }}'
  37. when: apt_keys
  38. - name: 'Add apt sources for custom Debian repositories'
  39. apt_repository:
  40. repo: 'deb {{ item.uri }} {{ ansible_lsb.codename }} {{ item.sections }}'
  41. state: 'present'
  42. with_items: '{{ apt_repositories }}'
  43. when: apt_repositories
  44. - name: 'Install base packages'
  45. apt: pkg={{ item }} install_recommends=no state=installed
  46. with_items:
  47. - 'apt-transport-https'
  48. - 'apticron'
  49. - 'locales-all'
  50. - 'locales'
  51. - 'lsb-release'
  52. - 'toilet'
  53. - 'toilet-fonts'
  54. - 'facter'
  55. - 'zsh'
  56. - 'git-core'
  57. - 'tig'
  58. - 'vim-nox'
  59. - 'ccze'
  60. - 'tree'
  61. - 'pydf'
  62. - 'htop'
  63. - 'sudo'
  64. - 'sysfsutils'
  65. - 'tmux'
  66. - 'rsync'
  67. - 'ca-certificates'
  68. - 'sysstat'
  69. - 'etckeeper'
  70. - 'sharutils'
  71. - 'ncdu'
  72. - name: 'Install additional packages'
  73. apt: pkg={{ item }} install_recommends=no state=installed
  74. with_items: '{{ apt_additional_packages }}'
  75. when: apt_additional_packages
  76. - name: 'Install ntp daemon'
  77. apt: pkg=ntp install_recommends=no state=installed
  78. when: with_ntp
  79. - name: 'Configure default locale and timezone'
  80. debconf: name="{{item.name}}" question="{{item.question}}" value="{{item.value}}" vtype="{{item.vtype}}"
  81. with_items:
  82. - { name: 'locales', question: 'locales/default_environment_locale', value: '{{ locale }}', vtype: 'select' }
  83. - { name: 'tzdata', question: 'tzdata/Areas', value: '{{ timezone_area }}', vtype: 'select' }
  84. - { name: 'tzdata', question: 'tzdata/Zones/{{ timezone_area }}', value: '{{ timezone_city }}', vtype: 'select' }
  85. notify:
  86. - 'Reconfigure locales'
  87. - 'Reconfigure timezone'
  88. - name: 'Override logrotate configuration for rsyslog'
  89. template: src=logrotate/rsyslog.j2 dest=/etc/logrotate.d/rsyslog owner=root group=root mode=0644
  90. - name: 'Install kernel configuration (proc)'
  91. template: src=kernel/sysctl.d/{{ item }}.j2 dest=/etc/sysctl.d/{{ item }} owner=root group=root mode=0644
  92. with_items:
  93. - '05-ipv6.conf'
  94. - '10-increase-file-descriptors.conf'
  95. notify:
  96. - 'Apply kernel configuration (proc)'
  97. tags:
  98. - 'ipv6'
  99. - name: 'Create sysfs configuration directory - /etc/sysfs.d'
  100. file: path=/etc/sysfs.d state=directory owner=root group=root mode=0755
  101. - name: 'Install kernel configuration (sys)'
  102. template: src=kernel/sysfs.d/{{ item }}.j2 dest=/etc/sysfs.d/{{ item }} owner=root group=root mode=0644
  103. with_items:
  104. - '00-sysfs-prolog.conf'
  105. notify:
  106. - 'Refresh sysfs configuration'
  107. - name: 'Install kernel configuration (sys) for disks'
  108. template: src=kernel/sysfs.d/{{ item }}.j2 dest=/etc/sysfs.d/{{ item }} owner=root group=root mode=0644
  109. with_items:
  110. - '10-disks.conf'
  111. notify:
  112. - 'Refresh sysfs configuration'
  113. - name: 'Install sudo configuration'
  114. template: src=sudo/local-admin.j2 dest=/etc/sudoers.d/local-admin owner=root group=root mode=0440
  115. - name: 'Install unprivileged user'
  116. user: name="{{item.user}}" comment="{{item.fullname}}" groups=adm,operator,sudo append=yes shell=/bin/zsh state=present
  117. with_items: '{{ admins }}'
  118. when: admins
  119. - name: 'Install SSH key for unprivileged user'
  120. authorized_key: user="{{item.user}}" key="{{lookup('file', 'data/users/' + item.user + '/sshkey.pub')}}" state=present
  121. with_items: '{{ admins }}'
  122. when: admins
  123. - name: 'Install SSH key for root'
  124. authorized_key: user=root key="{{lookup('file', 'data/users/' + item.user + '/sshkey.pub')}}" state=present
  125. with_items: '{{ admins }}'
  126. when: admins