Ansible: Trex installation
[csit.git] / resources / tools / testbed-setup / ansible / roles / common / tasks / main.yaml
1 ---
2 # file: roles/common/tasks/main.yaml
3
4 - name: Ensure the system exists in Cobbler
5   cobbler_system:
6     host: '{{ cobbler_hostname }}'
7     port: 60080
8     interfaces:
9       br1:
10         ipaddress: '{{ ansible_default_ipv4.address }}'
11         macaddress: '{{ ansible_default_ipv4.macaddress }}'
12     name: '{{ hostname }}'
13     password: '{{ cobbler_password }}'
14     properties:
15       hostname: '{{ hostname }}'
16       gateway: '{{ ansible_default_ipv4.gateway }}'
17       profile: '{{ cobbler_profile }}'
18       name_servers: '{{ name_servers }}'
19       name_servers_search: '{{ name_servers_search }}'
20       kickstart: '/var/lib/cobbler/kickstarts/{{ cobbler_profile }}.seed'
21       kernel_options: '"interface={{ ansible_default_ipv4.interface }}"'
22       netboot_enabled: yes
23     username: '{{ cobbler_username }}'
24     use_ssl: no
25     validate_certs: no
26   when: provision_enabled
27   delegate_to: localhost
28   tags: cobbler-include
29
30 - name: Commit Cobbler changes
31   cobbler_sync:
32     host: '{{ cobbler_hostname }}'
33     port: 60080
34     password: '{{ cobbler_password }}'
35     username: '{{ cobbler_username }}'
36     use_ssl: no
37     validate_certs: no
38   run_once: yes
39   when: provision_enabled
40   delegate_to: localhost
41   register: __included_in_cobbler
42   notify:
43     - 'Boot from network'
44     - 'Reboot server'
45   tags: cobbler-include
46
47 - meta: flush_handlers
48
49 - name: Add permanent proxy settings
50   lineinfile:
51     path: '/etc/environment'
52     state: 'present'
53     line: '{{ item.key }}={{ item.value }}'
54   with_dict: '{{ proxy_env }}'
55   when: proxy_env is defined
56
57 - name: Install distribution - release - machine prerequisites
58   include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
59   tags: [ install-csit-dependencies, copy-apt-sources ]
60
61 - name: Set sudoers admin
62   lineinfile:
63     path: '/etc/sudoers'
64     state: 'present'
65     regexp: '^%admin ALL='
66     line: '%admin ALL=(ALL) ALL'
67     validate: '/usr/sbin/visudo -cf %s'
68   tags: set-sudoers
69
70 - name: Set sudoers sudo
71   lineinfile:
72     path: '/etc/sudoers'
73     state: 'present'
74     regexp: '^%sudo'
75     line: '%sudo ALL=(ALL:ALL) NOPASSWD: ALL'
76     validate: '/usr/sbin/visudo -cf %s'
77   tags: set-sudoers
78
79 - name: Copy grub file
80   template:
81    src: 'files/grub_{{ ansible_machine }}'
82    dest: '/etc/default/grub'
83    owner: 'root'
84    group: 'root'
85    mode: '644'
86   notify:
87     - 'Update GRUB'
88     - 'Reboot server'
89   tags: copy-grub
90
91 - meta: flush_handlers