Configure wifi by config_light

Instead of the Customization tasks, it’s possible to use Ansible role vbotka.config_light <https://galaxy.ansible.com/vbotka/config_light>`_to configure the image. This example configures exactly the same parameters of the wireless network as the :ref:`qg. The playbook pb-wifi-basic.yml created in the Quick start guide will be used to attach a memory disk and mount the partition.

  • Current directory

    shell> ls -1
    conf-light
    hosts
    pb-wifi-basic-cl.yml
    pb-wifi-basic.yml
    
  • Install the role vbotka.config_light

    shell> ansible-galaxy install vbotka.freebsd_config_light
    
  • Create the playbook pb-wifi-basic-cl.yml for single host images.example.com (2). Configure connection (4-5) and privilege escalation (6-8). Configure the directory (11) with the configuration files and reuse the configuration (13-17) already prepared in Quick start guide (19-50).

 1- name: Configure wireless network in the mounted system image
 2  hosts: images.example.com
 3
 4  connection: ssh
 5  remote_user: admin
 6  become: true
 7  become_user: root
 8  become_method: ansible.builtin.sudo
 9
10  vars:
11    cl_dird: "{{ playbook_dir }}/conf-light"
12    cl_assemble_validate: ansible-lint -x 205 %s
13    cl_loaderconf_modules: "{{ bsd_cimage_loaderconf_modules }}"
14    cl_loaderconf_data: "{{ bsd_cimage_loaderconf_data }}"
15    cl_loaderconf_sysctl: "{{ bsd_cimage_loaderconf_sysctl }}"
16    cl_wpasupconf_global: []
17    cl_wpasupconf_wlan0: "{{ bsd_cimage_wpasupconf_data| selectattr('dev', 'eq', 'wlan0')|first }}"
18
19    bsd_cimage_sanity: false
20    bsd_cimage_install: false
21    bsd_cimage_debug: true
22    bsd_cimage_debug_classified: true
23
24    bsd_cimage_mount_path: /mnt3
25
26    bsd_cimage_loaderconf_modules: [wlan, wlan_wep, wlan_ccmp, wlan_tkip, wlan_amrr, rtwn, if_rtwn_usb]
27    bsd_cimage_loaderconf_data:
28      - hw.usb.template=3
29      - umodem_load="YES"
30      - boot_multicons="YES"
31      - boot_serial="YES"
32      - beastie_disable="YES"
33      - loader_color="NO"
34      - legal.realtek.license_ack=1
35    bsd_cimage_loaderconf_sysctl: []
36    bsd_cimage_rcconf_data:
37      - { key: wlans_rtwn0, value: '"wlan0"' }
38      - { key: ifconfig_wlan0, value: '"WPA SYNCDHCP"' }
39
40    bsd_cimage_wpasupconf_data:
41      - dev: wlan0
42        network:
43          - conf:
44              - { key: ssid, value: '"my_access_point"' }
45              - { key: psk, value: '"my_password"' }
46              - { key: disabled, value: "0" }
47    bsd_cimage_wpasupconf_link: true
48    bsd_cimage_wpasupconf_link_dev: wlan0
49
50  roles:
51    - vbotka.config_light
  • Create the configuration files in the directory cl_dird

    shell> tree conf-light/
    conf-light/
    ├── files.d
    │   ├── loaderconf.yml
    │   ├── rcconf.yml
    │   └── wpasupconf.yml
    ├── handlers.d
    ├── packages.d
    ├── services.d
    └── states.d
        └── wpasupconf.yml
    

See also

How to configure Files in vbotka.config_light

[contrib/example-wifi-basic-cl/conf-light/files.d/loaderconf.yml]
1---
2loaderconf:
3  path: "{{ bsd_cimage_mount_path }}/boot/loader.conf"
4  force: true
5  owner: root
6  group: wheel
7  mode: "0644"
8  template:
9    path: loader.conf.j2

See also

template loader.conf.j2

[contrib/example-wifi-basic-cl/conf-light/files.d/rcconf.yml]
1---
2revaliases:
3  path: "{{ bsd_cimage_mount_path }}/etc/rc.conf"
4  force: true
5  owner: root
6  group: wheel
7  mode: "0644"
8  dict: "{{ bsd_cimage_rcconf_data }}"
[contrib/example-wifi-basic-cl/conf-light/files.d/wpasupconf.yml]
1---
2wpasupconf_wlan0:
3  path: "{{ bsd_cimage_mount_path }}/etc/wpa_supplicant.conf.wlan0"
4  force: true
5  owner: root
6  group: wheel
7  mode: "0640"
8  template:
9    path: wpa_supplicant.conf.wlan0.j2

See also

template wpa_supplicant.conf.wlan0.j2

[contrib/example-wifi-basic-cl/conf-light/states.d/wpasup-conf.yml]
1---
2wpasup_conf:
3  state: link
4  force: true
5  path: "{{ bsd_cimage_mount_path }}/etc/wpa_supplicant.conf"
6  src: wpa_supplicant.conf.wlan0
  • Create the inventory. Change the IP adress (2) and fit the paths to Python (8) and Perl (9) if necessary

1 shell> cat hosts
2 images.example.com ansible_host=<ip-address>
3
4 [images]
5 images.example.com
6
7 [images:vars]
8 ansible_python_interpreter=/usr/local/bin/python3.7
9 ansible_perl_interpreter=/usr/local/bin/perl
  • Mount the image using the playbook prepared in Quick start guide

    shell> ansible-playbook pb-wifi-basic.yml -t bsd_cimage_mount
    
  • Test syntax

    shell> ansible-playbook pb-wifi-basic-cl.yml --syntax-check
    
  • See what variables will be included

    shell> ansible-playbook pb-wifi-basic-cl.yml -t cl_debug -e cl_debug=true
    
  • Run the playbook

    shell> ansible-playbook pb-wifi-basic-cl.yml
    
  • Umount the partition and detach the memory disk

    shell> ansible-playbook pb-wifi-basic.yml -t bsd_cimage_umount
    
  • Write the customized image to a disk and boot the system. See details in Quick start guide.