├── .ansible-lint ├── .ansible-lint.local ├── .configure.tasks ├── create_handlers_main.yml ├── create_handlers_service.yml ├── create_nfs_services.yml ├── create_nfsd_services.yml └── create_sanity_tags.yml ├── .configure.vars └── handlers_service.yml ├── .configure.yml ├── .gitignore ├── .readthedocs.yaml ├── .travis.yml ├── LICENSE ├── README.md ├── changelog ├── CHANGELOG-v2.6.rst ├── CHANGELOG-v2.7.rst ├── CHANGELOG.md └── changelog.yml ├── contrib └── copy-rsync.sh ├── defaults └── main │ ├── aliases.yml │ ├── apcupsd.yml │ ├── authorized-key.yml │ ├── cloud-providers.yml │ ├── copy.yml │ ├── cron.yml │ ├── devd.yml │ ├── devfs.yml │ ├── dhclient.yml │ ├── digitalocean.yml │ ├── freebsd-update.yml │ ├── fstab.yml │ ├── gitserver.yml │ ├── gpg.yml │ ├── groups.yml │ ├── groupwrappers.yml │ ├── handlers.yml │ ├── hostapd.yml │ ├── hostname.yml │ ├── hosts.yml │ ├── inetd.yml │ ├── libmap.yml │ ├── linux.yml │ ├── loader.yml │ ├── login.yml │ ├── main.yml │ ├── make.yml │ ├── motd.yml │ ├── mount-img.yml │ ├── mount-iso.yml │ ├── nfs.yml │ ├── nfs_services.yml │ ├── nfsd.yml │ ├── nfsd_services.yml │ ├── ntp.yml │ ├── ntpdate.yml │ ├── packages.yml │ ├── passwords.yml │ ├── periodic.yml │ ├── pkgdict_amd64.yml │ ├── pkgdict_arm.yml │ ├── pkgdict_arm64.yml │ ├── pkgdict_i386.yml │ ├── pkgdict_versions.yml │ ├── procmail.yml │ ├── qemu.yml │ ├── rcconf.yml │ ├── rcconfd.yml │ ├── resolvconf.yml │ ├── sanity.yml │ ├── sanity_tags.yml │ ├── smartd.yml │ ├── snmpd.yml │ ├── ssh.yml │ ├── sshd.yml │ ├── sudoers.yml │ ├── swap.yml │ ├── sysctl.yml │ ├── syslogd.yml │ ├── timezone.yml │ ├── tmpmfs.yml │ ├── users.yml │ ├── vars.yml │ └── wpasupplicant.yml ├── docs ├── Makefile ├── README ├── annotation │ ├── README │ ├── annotation-handlers.rst.j2 │ ├── annotation-handlers.yml │ ├── annotation-handlers.yml.j2 │ ├── annotation-tasks.rst.j2 │ ├── annotation-tasks.yml │ ├── annotation-tasks.yml.j2 │ ├── annotation-templates.rst.j2 │ ├── annotation-templates.yml │ ├── annotation-templates.yml.j2 │ ├── handlers-list.txt │ ├── pb-annotations.yml │ ├── tasks-list.txt │ ├── templates-list.txt │ └── vars │ │ ├── nfs.yml │ │ ├── nfsd.yml │ │ └── rcconf.yml ├── batch1.sh ├── init.sh ├── make.bat ├── playbook.yml ├── requirements.txt └── source │ ├── _themes │ ├── guzzle_sphinx_theme │ │ ├── comments.html │ │ ├── globaltoc.html │ │ ├── layout.html │ │ ├── localtoc.html │ │ ├── logo-text.html │ │ ├── search.html │ │ ├── searchbox.html │ │ ├── static │ │ │ ├── css │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ └── bootstrap.min.css │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ ├── open-sans │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── OpenSans-Bold-webfont.eot │ │ │ │ │ │ ├── OpenSans-Bold-webfont.svg │ │ │ │ │ │ ├── OpenSans-Bold-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Bold-webfont.woff │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.eot │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.svg │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.ttf │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.woff │ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.eot │ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.svg │ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.ttf │ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.woff │ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.eot │ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.svg │ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.ttf │ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.woff │ │ │ │ │ │ ├── OpenSans-Italic-webfont.eot │ │ │ │ │ │ ├── OpenSans-Italic-webfont.svg │ │ │ │ │ │ ├── OpenSans-Italic-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Italic-webfont.woff │ │ │ │ │ │ ├── OpenSans-Light-webfont.eot │ │ │ │ │ │ ├── OpenSans-Light-webfont.svg │ │ │ │ │ │ ├── OpenSans-Light-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Light-webfont.woff │ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.eot │ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.svg │ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.ttf │ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.woff │ │ │ │ │ │ ├── OpenSans-Regular-webfont.eot │ │ │ │ │ │ ├── OpenSans-Regular-webfont.svg │ │ │ │ │ │ ├── OpenSans-Regular-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Regular-webfont.woff │ │ │ │ │ │ ├── OpenSans-Semibold-webfont.eot │ │ │ │ │ │ ├── OpenSans-Semibold-webfont.svg │ │ │ │ │ │ ├── OpenSans-Semibold-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Semibold-webfont.woff │ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.eot │ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.svg │ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.ttf │ │ │ │ │ │ └── OpenSans-SemiboldItalic-webfont.woff │ │ │ │ │ └── stylesheet.css │ │ │ │ └── source-serif-pro │ │ │ │ │ ├── EOT │ │ │ │ │ ├── SourceSerifPro-Black.eot │ │ │ │ │ ├── SourceSerifPro-Bold.eot │ │ │ │ │ ├── SourceSerifPro-ExtraLight.eot │ │ │ │ │ ├── SourceSerifPro-Light.eot │ │ │ │ │ ├── SourceSerifPro-Regular.eot │ │ │ │ │ └── SourceSerifPro-Semibold.eot │ │ │ │ │ ├── LICENSE.txt │ │ │ │ │ ├── OTF │ │ │ │ │ ├── SourceSerifPro-Black.otf │ │ │ │ │ ├── SourceSerifPro-Bold.otf │ │ │ │ │ ├── SourceSerifPro-ExtraLight.otf │ │ │ │ │ ├── SourceSerifPro-Light.otf │ │ │ │ │ ├── SourceSerifPro-Regular.otf │ │ │ │ │ └── SourceSerifPro-Semibold.otf │ │ │ │ │ ├── README.md │ │ │ │ │ ├── ReadMe.html │ │ │ │ │ ├── SourceSerifProReadMe.html │ │ │ │ │ ├── TTF │ │ │ │ │ ├── SourceSerifPro-Black.ttf │ │ │ │ │ ├── SourceSerifPro-Bold.ttf │ │ │ │ │ ├── SourceSerifPro-ExtraLight.ttf │ │ │ │ │ ├── SourceSerifPro-Light.ttf │ │ │ │ │ ├── SourceSerifPro-Regular.ttf │ │ │ │ │ └── SourceSerifPro-Semibold.ttf │ │ │ │ │ ├── WOFF │ │ │ │ │ ├── OTF │ │ │ │ │ │ ├── SourceSerifPro-Black.otf.woff │ │ │ │ │ │ ├── SourceSerifPro-Bold.otf.woff │ │ │ │ │ │ ├── SourceSerifPro-ExtraLight.otf.woff │ │ │ │ │ │ ├── SourceSerifPro-Light.otf.woff │ │ │ │ │ │ ├── SourceSerifPro-Regular.otf.woff │ │ │ │ │ │ └── SourceSerifPro-Semibold.otf.woff │ │ │ │ │ └── TTF │ │ │ │ │ │ ├── SourceSerifPro-Black.ttf.woff │ │ │ │ │ │ ├── SourceSerifPro-Bold.ttf.woff │ │ │ │ │ │ ├── SourceSerifPro-ExtraLight.ttf.woff │ │ │ │ │ │ ├── SourceSerifPro-Light.ttf.woff │ │ │ │ │ │ ├── SourceSerifPro-Regular.ttf.woff │ │ │ │ │ │ └── SourceSerifPro-Semibold.ttf.woff │ │ │ │ │ ├── bower.json │ │ │ │ │ └── source-serif-pro.css │ │ │ ├── guzzle.css_t │ │ │ ├── jquery.js │ │ │ ├── jquery.min.map │ │ │ └── js │ │ │ │ ├── bootstrap.js │ │ │ │ └── bootstrap.min.js │ │ └── theme.conf │ └── sphinx_rtd_theme │ │ ├── __init__.py │ │ ├── breadcrumbs.html │ │ ├── footer.html │ │ ├── layout.html │ │ ├── locale │ │ ├── da │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── de │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── en │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── es │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── et │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── fa_IR │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── fr │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── hr │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── hu │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── it │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── lt │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── nl │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── pl │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── pt │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── pt_BR │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── ru │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── sphinx.pot │ │ ├── sv │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── tr │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ ├── zh_CN │ │ │ └── LC_MESSAGES │ │ │ │ ├── sphinx.mo │ │ │ │ └── sphinx.po │ │ └── zh_TW │ │ │ └── LC_MESSAGES │ │ │ ├── sphinx.mo │ │ │ └── sphinx.po │ │ ├── search.html │ │ ├── searchbox.html │ │ ├── static │ │ ├── css │ │ │ ├── badge_only.css │ │ │ ├── badge_only.css.map │ │ │ ├── fonts │ │ │ │ ├── Roboto-Slab-Bold.woff │ │ │ │ ├── Roboto-Slab-Bold.woff2 │ │ │ │ ├── Roboto-Slab-Regular.woff │ │ │ │ ├── Roboto-Slab-Regular.woff2 │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ ├── fontawesome-webfont.woff2 │ │ │ │ ├── lato-bold-italic.woff │ │ │ │ ├── lato-bold-italic.woff2 │ │ │ │ ├── lato-bold.woff │ │ │ │ ├── lato-bold.woff2 │ │ │ │ ├── lato-normal-italic.woff │ │ │ │ ├── lato-normal-italic.woff2 │ │ │ │ ├── lato-normal.woff │ │ │ │ └── lato-normal.woff2 │ │ │ ├── theme.css │ │ │ └── theme.css.map │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── Inconsolata-Bold.ttf │ │ │ ├── Inconsolata-Regular.ttf │ │ │ ├── Lato-Bold.ttf │ │ │ ├── Lato-Regular.ttf │ │ │ ├── RobotoSlab-Bold.ttf │ │ │ ├── RobotoSlab-Regular.ttf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ └── js │ │ │ ├── badge_only.js │ │ │ ├── modernizr.min.js │ │ │ └── theme.js │ │ ├── theme.conf │ │ └── versions.html │ ├── ag.rst │ ├── ag_configuration.rst │ ├── annotation-handlers.rst │ ├── annotation-tasks.rst │ ├── annotation-templates.rst │ ├── annotation.rst │ ├── conf.py │ ├── copyright.rst │ ├── debug-example.rst │ ├── debug-sshd-example.rst │ ├── dg.rst │ ├── guide-best-practice.rst │ ├── guide-debug.rst │ ├── guide-devel.rst │ ├── guide-examples-ex1.rst │ ├── guide-examples-ex2.rst │ ├── guide-examples.rst │ ├── guide-firstboot.rst │ ├── guide-installation.rst │ ├── guide-introduction.rst │ ├── guide-playbook.rst │ ├── guide-rc.rst │ ├── guide-sanity.rst │ ├── guide-tags.rst │ ├── guide-tasks.rst │ ├── guide-variables.rst │ ├── guide.rst │ ├── index.rst │ ├── legalnotice.rst │ ├── qsg.rst │ ├── tags-list.rst │ ├── tasks-mount-img.rst │ ├── tasks-mount-iso.rst │ ├── tasks-packages.rst │ ├── tasks-passwords.rst │ ├── tasks-users.rst │ └── vars-defaults.rst ├── files ├── Makefile.default-versions └── devd-action-manpic.sh ├── handlers ├── adjkerntz.yml ├── apcupsd.yml ├── devd.yml ├── devfs.yml ├── dhclient.yml ├── fstab.yml ├── hostapd.yml ├── hostname.yml ├── inetd.yml ├── lockd.yml ├── login.yml ├── main.yml ├── messages.yml ├── mountd.yml ├── newaliases.yml ├── newsyslog.yml ├── nfsclient.yml ├── nfsd.yml ├── ntpd.yml ├── ntpdate.yml ├── qemu.yml ├── qemu_user_static.yml ├── resolvconf.yml ├── rpcbind.yml ├── smartd.yml ├── snmpd.yml ├── sshd.yml ├── statd.yml ├── swap.yml ├── sysctl.yml ├── syslogd.yml └── wpasupplicant.yml ├── meta └── main.yml ├── tasks ├── aliases.yml ├── apcupsd.yml ├── authorized-key.yml ├── cloud-providers.yml ├── cloud-providers │ └── digitalocean.yml ├── copy.yml ├── copy │ ├── sync-default.yml │ ├── sync-optional.yml │ ├── unarch-default.yml │ └── unarch-optional.yml ├── cron.yml ├── debug.yml ├── devd.yml ├── devfs.yml ├── dhclient.yml ├── fn │ ├── cron-rename-entry.yml │ ├── mdconfig-attach-disk.yml │ ├── mdconfig-detach-disk.yml │ ├── rcconf-item.yml │ └── rcconf.yml ├── freebsd-update.yml ├── fstab.yml ├── gitserver.yml ├── groups.yml ├── groupwrappers.yml ├── hostapd.yml ├── hostname.yml ├── hosts.yml ├── inetd.yml ├── libmap.yml ├── linux.yml ├── loader.yml ├── login.yml ├── main.yml ├── make.yml ├── motd.yml ├── mount-img.yml ├── mount-iso.yml ├── mount-vnode.yml ├── nfs.yml ├── nfsd.yml ├── ntp.yml ├── ntpdate.yml ├── packages-install.yml ├── packages.yml ├── passwords.yml ├── periodic.yml ├── procmail.yml ├── qemu.yml ├── resolvconf.yml ├── sanity.yml ├── smartd.yml ├── snmpd.yml ├── ssh.yml ├── sshd.yml ├── sudoers.yml ├── swap.yml ├── sysctl.yml ├── syslogd.yml ├── timezone.yml ├── tmpmfs.yml ├── users.yml ├── vars.yml └── wpasupplicant.yml ├── templates ├── apcupsd.conf.j2 ├── exports.j2 ├── freebsd-update.conf.j2 ├── freebsd-update.conf2.j2 ├── groupadd.j2 ├── groupdel.j2 ├── groupmod.j2 ├── hostapd.conf.j2 ├── hosts-aliases-list.j2 ├── hosts.allow-01.j2 ├── hosts.allow-02.j2 ├── hosts.j2 ├── loader.conf.j2 ├── loader.conf2.j2 ├── login.conf.j2 ├── login_conf.j2 ├── make.conf.j2 ├── motd.j2 ├── newsyslog.conf.j2 ├── ntp.conf.j2 ├── procmailrc-includerc-capability.j2 ├── procmailrc-includerc-duplicates.j2 ├── procmailrc-includerc-get-certificate.j2 ├── procmailrc-includerc-get-fingerprint.j2 ├── procmailrc-includerc-get-fingerprints.j2 ├── procmailrc-includerc-get-message.j2 ├── procmailrc.j2 ├── ssh_config.j2 ├── syslog.conf.j2 └── wpa_supplicant.conf.j2 ├── tests ├── .ansible-lint ├── inventory ├── requirements.yml └── test.yml └── vars └── samples ├── aliases.yml.sample ├── authorized-key.yml.sample ├── copy.yml.sample ├── cron.yml.sample ├── devd.yml.sample ├── dhclient.yml.sample ├── freebsd-update.yml.sample ├── fstab.yml.sample ├── hosts.yml.sample ├── inetd.yml.sample ├── linux.yml.sample ├── loader.yml.sample ├── login.yml.sample ├── main.yml.sample ├── make.yml.sample ├── motd.yml.sample ├── mount-img.yml.sample ├── mount-iso.yml.sample ├── nfs.yml.sample ├── nfsd.yml.sample ├── ntp.yml.sample ├── ntpdate.yml.sample ├── packages.yml.sample ├── passwords.yml.sample ├── periodic.yml.sample ├── procmail.yml.sample ├── qemu.yml.sample ├── resolvconf.yml.sample ├── smartd.yml.sample ├── snmpd.yml.sample ├── ssh.yml.sample ├── sshd.yml.sample ├── sudoers.yml.sample ├── swap.yml.sample ├── sysctl.yml.sample ├── syslogd.yml.sample ├── users.yml.sample └── wpasupplicant.yml.sample /.ansible-lint: -------------------------------------------------------------------------------- 1 | --- 2 | skip_list: [] 3 | -------------------------------------------------------------------------------- /.ansible-lint.local: -------------------------------------------------------------------------------- 1 | --- 2 | verbosity: 1 3 | quiet: false 4 | parseable: true 5 | use_default_rules: true 6 | skip_list: 7 | - schema[meta] 8 | exclude_paths: 9 | - docs/ 10 | 11 | # rulesdir: 12 | # - $HOME/.ansible/ansible-lint-rules 13 | 14 | # Notes on skip_list 15 | # 16 | # * schema[meta]: $.galaxy_info.platforms[0].versions[0] 12.4 is not one 17 | # of ['6.1', '7.1', '7.2', 'all']. 18 | 19 | # EOF 20 | -------------------------------------------------------------------------------- /.configure.tasks/create_handlers_main.yml: -------------------------------------------------------------------------------- 1 | - name: "Find tasks files" 2 | ansible.builtin.find: 3 | path: handlers 4 | patterns: '*.yml' 5 | register: out 6 | check_mode: false 7 | 8 | - name: "Debug list of handlers debug={{ debug | d(false) }}" 9 | ansible.builtin.debug: 10 | msg: | 11 | _handlers: | 12 | {{ _handlers | to_nice_yaml(indent=2) | indent(2) }} 13 | vars: 14 | _handlers: "{{ out.files | map(attribute='path') | map('basename') | 15 | difference(['main.yml']) | sort }}" 16 | when: debug | d(false) | bool 17 | 18 | - name: "Create handlers/main.yml" 19 | ansible.builtin.copy: 20 | dest: handlers/main.yml 21 | mode: "0664" 22 | backup: true 23 | content: | 24 | --- 25 | # Generated by .configure.yml 26 | 27 | # handlers for freebsd_postinstall 28 | {% for handler in _handlers %} 29 | - name: Import {{ handler }} 30 | ansible.builtin.import_tasks: {{ handler }} 31 | {% endfor %} 32 | # EOF 33 | vars: 34 | _handlers: "{{ out.files | map(attribute='path') | map('basename') | 35 | difference(['main.yml']) | sort }}" 36 | -------------------------------------------------------------------------------- /.configure.tasks/create_handlers_service.yml: -------------------------------------------------------------------------------- 1 | - name: "Read vars." 2 | ansible.builtin.include_vars: 3 | file: .configure.vars/handlers_service.yml 4 | name: h 5 | 6 | - name: "Debug dictionary _handlers debug={{ debug | d(false) }}" 7 | when: debug | d(false) | bool 8 | ansible.builtin.debug: 9 | msg: | 10 | h: | 11 | {{ h | to_nice_yaml(indent=2) | indent(2) }} 12 | 13 | - name: "Create service handlers." 14 | ansible.builtin.copy: 15 | dest: "handlers/{{ item.key }}.yml" 16 | mode: "0664" 17 | backup: true 18 | content: | 19 | --- 20 | # Generated by .configure.yml 21 | # Handlers for {{ item.key }} 22 | {% for command in item.value.commands | d(h.service.default.commands) %} 23 | - name: {{ command | capitalize }} {{ item.key }} 24 | listen: {{ command }} {{ item.key }} 25 | {% if item.key not in h.service_condition_deny %} 26 | {% if command in h.service_condition_commands_allow %} 27 | when: fp_{{ h.service_enable_var[item.key] | d(item.key) }}_enable | bool 28 | {% endif %} 29 | {% endif %} 30 | vbotka.freebsd.service: 31 | script: {{ item.key }} 32 | command: {{ command }} 33 | 34 | {% endfor %} 35 | # EOF 36 | loop: "{{ h.service | dict2items | rejectattr('key', 'in', h.service_blacklist) }}" 37 | loop_control: 38 | label: "handlers/{{ item.key }}.yml" 39 | -------------------------------------------------------------------------------- /.configure.tasks/create_nfs_services.yml: -------------------------------------------------------------------------------- 1 | - name: "Create {{ nfs_services_path }}" 2 | ansible.builtin.copy: 3 | dest: "{{ nfs_services_path }}" 4 | mode: "0664" 5 | backup: true 6 | content: | 7 | --- 8 | # Generated by .configure.yml 9 | 10 | fp_nfs_services_enable: 11 | {% for service, var in nfs_services.items() %} 12 | - label: "nfs: Start {{ service }}" 13 | conf: "{{ _beg }} fp_{{ var }}_enable_rcconf {{ _end }}" 14 | when: "{{ _beg }} fp_{{ var }}_enable | bool {{ _end }}" 15 | notify: "{{ _beg }} fp_nfs_handlers.{{ service }} {{ _end }}" 16 | {% endfor %} 17 | 18 | fp_nfs_services_disable: 19 | {% for service, var in nfs_services.items() %} 20 | - label: "nfs: Stop {{ service }}" 21 | conf: "{{ _beg }} fp_{{ var }}_disable_rcconf {{ _end }}" 22 | when: "{{ _beg }} not fp_{{ var }}_enable | bool {{ _end }}" 23 | notify: stop {{ service }} 24 | {% endfor %} 25 | -------------------------------------------------------------------------------- /.configure.tasks/create_nfsd_services.yml: -------------------------------------------------------------------------------- 1 | - name: "Create {{ nfsd_services_path }}" 2 | ansible.builtin.copy: 3 | dest: "{{ nfsd_services_path }}" 4 | mode: "0664" 5 | backup: true 6 | content: | 7 | --- 8 | # Generated by .configure.yml 9 | 10 | fp_nfsd_services_enable: 11 | {% for service, var in nfsd_services.items() %} 12 | - label: "nfsd: Start {{ service }}" 13 | conf: "{{ _beg }} fp_{{ var }}_enable_rcconf {{ _end }}" 14 | when: "{{ _beg }} fp_{{ var }}_enable | bool {{ _end }}" 15 | notify: "{{ _beg }} fp_nfsd_handlers.{{ service }} {{ _end }}" 16 | {% endfor %} 17 | 18 | fp_nfsd_services_disable: 19 | {% for service, var in nfsd_services.items() %} 20 | - label: "nfsd: Stop {{ service }}" 21 | conf: "{{ _beg }} fp_{{ var }}_disable_rcconf {{ _end }}" 22 | when: "{{ _beg }} not fp_{{ var }}_enable | bool {{ _end }}" 23 | notify: stop {{ service }} 24 | {% endfor %} 25 | -------------------------------------------------------------------------------- /.configure.vars/handlers_service.yml: -------------------------------------------------------------------------------- 1 | --- 2 | service: 3 | default: 4 | commands: [start, stop, restart, reload] 5 | apcupsd: 6 | devd: 7 | devfs: 8 | hostapd: 9 | inetd: 10 | lockd: 11 | mountd: 12 | nfsclient: 13 | nfsd: 14 | ntpd: 15 | ntpdate: 16 | qemu: 17 | qemu_user_static: 18 | rpcbind: 19 | snmpd: 20 | smartd: 21 | sshd: 22 | statd: 23 | sysctl: 24 | commands: [reload] 25 | syslogd: 26 | 27 | service_blacklist: [default] 28 | 29 | service_enable_var: 30 | nfsclient: nfs 31 | 32 | service_condition_commands_allow: [reload, restart] 33 | service_condition_deny: [sysctl] 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | \#*\# 3 | .\#* 4 | .ansible 5 | .galaxy_install_info 6 | .vagrant 7 | build 8 | vagrant* 9 | vars/main.yml 10 | TODO 11 | ATTIC 12 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # .readthedocs.yaml 3 | # Read the Docs configuration file 4 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 5 | 6 | # Required 7 | version: 2 8 | 9 | # Set the version of Python and other tools you might need 10 | build: 11 | os: ubuntu-22.04 12 | tools: 13 | python: "3.11" 14 | 15 | # Build documentation in the docs/ directory with Sphinx 16 | sphinx: 17 | configuration: docs/source/conf.py 18 | 19 | # We recommend specifying your dependencies to enable reproducible builds: 20 | # https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html 21 | python: 22 | install: 23 | - requirements: docs/requirements.txt 24 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: python 3 | python: "3.11" 4 | 5 | # Use the new container infrastructure 6 | sudo: false 7 | 8 | # Install ansible 9 | addons: 10 | apt: 11 | packages: [python-pip] 12 | 13 | install: 14 | - pip install ansible 15 | - ansible --version 16 | - printf '[defaults]\nroles_path=../' >ansible.cfg 17 | 18 | script: 19 | - ansible-playbook tests/test.yml -i tests/inventory --syntax-check 20 | 21 | notifications: 22 | webhooks: https://galaxy.ansible.com/api/v1/notifications/ 23 | 24 | branches: 25 | only: [master] 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016-2024, Vladimir Botka 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /changelog/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | * [2.7.0](https://github.com/vbotka/ansible-freebsd-postinstall/blob/master/changelogs/CHANGELOG-v2.7.rst) 2 | * [2.6.0](https://github.com/vbotka/ansible-freebsd-postinstall/blob/master/changelogs/CHANGELOG-v2.6.rst) 3 | -------------------------------------------------------------------------------- /changelog/changelog.yml: -------------------------------------------------------------------------------- 1 | --- 2 | releases: {} 3 | -------------------------------------------------------------------------------- /defaults/main/aliases.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_aliases: false 3 | fp_aliases_conf_file: /etc/aliases 4 | fp_aliases_conf: [] 5 | -------------------------------------------------------------------------------- /defaults/main/apcupsd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_apcupsd: false 3 | fp_apcupsd_install: false # list of packages: apcups 4 | fp_apcupsd_enable: false 5 | fp_apcupsd_notify: true 6 | fp_apcupsd_service_task: false 7 | 8 | fp_apcupsd_rcconf: [] 9 | 10 | fp_apcupsd_conf_dir: /usr/local/etc/apcupsd 11 | fp_apcupsd_conf_dir_mode: "0755" 12 | fp_apcupsd_conf_file: "{{ fp_apcupsd_conf_dir }}/apcupsd.conf" 13 | fp_apcupsd_conf_owner: root 14 | fp_apcupsd_conf_group: wheel 15 | fp_apcupsd_conf_mode: "0644" 16 | # fp_apcupsd_devices: [] 17 | fp_apcupsd_upsname: UPS01 18 | fp_apcupsd_upscable: usb 19 | fp_apcupsd_upstype: usb 20 | fp_apcupsd_lockfile: /var/spool/lock 21 | fp_apcupsd_scriptdir: /usr/local/etc/apcupsd 22 | fp_apcupsd_pwrfaildir: /var/run 23 | fp_apcupsd_nologindir: /var/run 24 | fp_apcupsd_onbatterydelay: 6 25 | fp_apcupsd_batterylevel: 5 26 | fp_apcupsd_minutes: 3 27 | fp_apcupsd_timeout: 0 28 | fp_apcupsd_annoy: 300 29 | fp_apcupsd_annoydelay: 60 30 | fp_apcupsd_nologon: disable 31 | fp_apcupsd_killdelay: 0 32 | fp_apcupsd_netserver: "on" 33 | fp_apcupsd_nisip: 0.0.0.0 34 | fp_apcupsd_nisport: 3551 35 | fp_apcupsd_eventsfile: /var/log/apcupsd.events 36 | fp_apcupsd_eventsfilemax: 10 37 | fp_apcupsd_upsclass: standalone 38 | fp_apcupsd_upsmode: disable 39 | fp_apcupsd_stattime: 0 40 | fp_apcupsd_statfile: /var/log/apcupsd.status 41 | fp_apcupsd_logstats: "off" 42 | fp_apcupsd_datatime: 0 43 | -------------------------------------------------------------------------------- /defaults/main/authorized-key.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_authorized_key: false 3 | fp_authorized_key_debug: false 4 | fp_authorized_key_conf: [] 5 | 6 | fp_authorized_key_sanity_quiet: true 7 | 8 | # If False, group keys by user and install string of keys 9 | fp_authorized_key_install_individually: true 10 | 11 | # See module authorized_key parameters 12 | # fp_authorized_key_comment: "" 13 | # fp_authorized_key_install_exclusive: false 14 | # fp_authorized_key_follow: false 15 | # fp_authorized_key_manage_dir: true 16 | # fp_authorized_key_path: "" 17 | # fp_authorized_key_state: present 18 | # fp_authorized_key_key_options: "" 19 | # fp_authorized_key_validate_certs: true 20 | -------------------------------------------------------------------------------- /defaults/main/cloud-providers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | aws: false 3 | digitalocean: false 4 | gcp: false 5 | -------------------------------------------------------------------------------- /defaults/main/copy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_copy: false 3 | fp_copy_debug: false 4 | fp_copy_dir: copy 5 | fp_copy_dir_default: default 6 | fp_copy_arch_default: default.tar 7 | fp_copy_dir_optional: "{{ rc_conf_hostname }}" 8 | fp_copy_arch_optional: "{{ rc_conf_hostname }}.tar" 9 | fp_synchronize_default: [] 10 | fp_synchronize_optional: [] 11 | fp_unarch_default: false 12 | fp_unarch_optional: false 13 | fp_unarchive_keep_newer: false 14 | # Note: relative dirs are relative to the playbooks directory 15 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16 | # DANGER! fp_synchronize_delete=true can delete the system dest="/" 17 | # Review tasks imported in copy.yml before enabling fp_synchronize_delete 18 | fp_synchronize_delete: false 19 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 20 | fp_synchronize_archive: true 21 | fp_synchronize_checksum: false 22 | fp_synchronize_compress: true 23 | fp_synchronize_copy_links: false 24 | fp_synchronize_dirs: false 25 | fp_synchronize_existing_only: false 26 | fp_synchronize_mode: push 27 | fp_synchronize_group: true # defaults to the value of the archive option 28 | fp_synchronize_owner: true # defaults to the value of the archive option 29 | fp_synchronize_perms: true # defaults to the value of the archive option 30 | fp_synchronize_times: true # defaults to the value of the archive option 31 | fp_synchronize_verify_host: false 32 | -------------------------------------------------------------------------------- /defaults/main/cron.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_cron: false 3 | fp_cron_debug: false 4 | fp_cron_file_system: /etc/crontab 5 | fp_cron_tab_system: [] 6 | fp_cron_var_system: [] 7 | fp_cron_dir: /var/cron/tabs 8 | fp_cron_tab: [] 9 | fp_cron_var: [] 10 | -------------------------------------------------------------------------------- /defaults/main/devd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_devd: false 3 | fp_devd_enable: true 4 | fp_devd_notify: true 5 | fp_devd_service_task: false 6 | fp_devd_debug: false 7 | 8 | fp_devd_rcconf: [] 9 | fp_devd_flags: "" 10 | 11 | fp_devd_conf_path: /etc/devd.conf 12 | fp_devd_conf_blocks: {} 13 | 14 | fp_devd_dir: /etc/devd 15 | fp_devd_files: {} 16 | 17 | fp_devd_local_dir: /usr/local/etc/devd 18 | fp_devd_local_files: {} 19 | fp_devd_action_scripts: {} 20 | fp_devd_misc_files: {} 21 | 22 | fp_devd_owner: root 23 | fp_devd_group: wheel 24 | fp_devd_dir_mode: "0755" 25 | fp_devd_file_mode: "0644" 26 | -------------------------------------------------------------------------------- /defaults/main/devfs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_devfs: false 3 | fp_devfs_enable: false 4 | fp_devfs_load_rulesets: "{{ fp_devfs_enable }}" 5 | fp_devfs_notify: true 6 | fp_devfs_service_task: false 7 | fp_devfs_debug: false 8 | 9 | # defaults 10 | # /etc/defaults/rc.conf:devfs_rulesets="/etc/defaults/devfs.rules /etc/devfs.rules" # Files containing 11 | # /etc/defaults/rc.conf:devfs_system_ruleset="" # The name (NOT number) of a ruleset to apply to /dev 12 | # /etc/defaults/rc.conf:devfs_set_rulesets="" # A list of /mount/dev=ruleset_name settings to 13 | # /etc/defaults/rc.conf:devfs_load_rulesets="YES" # Enable to always load the default rulesets 14 | fp_devfs_rulesets: /etc/defaults/devfs.rules /etc/devfs.rules 15 | fp_devfs_system_ruleset: "" 16 | fp_devfs_set_rulesets: "" 17 | fp_devfs_rcconf: [] 18 | # - { key: devfs_rulesets, value: "{{ fp_devfs_rulesets }}" } 19 | # - { key: devfs_system_rulesets, value: "{{ fp_devfs_system_ruleset }}" } 20 | # - { key: devfs_set_rulesets, value: "{{ fp_devfs_set_rulesets }}" } 21 | 22 | fp_devfs_owner: root 23 | fp_devfs_group: wheel 24 | fp_devfs_conf_path: /etc/devfs.conf 25 | fp_devfs_conf: [] 26 | fp_devfs_rules_path: /etc/devfs.rules 27 | fp_devfs_rules_mode: "0644" 28 | fp_devfs_rules: [] 29 | -------------------------------------------------------------------------------- /defaults/main/dhclient.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | fp_dhclient: false 4 | 5 | fp_dhclient_debug: false 6 | fp_dhclient_debug2: false 7 | 8 | # If set True test: 9 | # * If the list fp_dhclient_ifn (see below) is empty either 10 | # fp_dhclient_ifn_rcconf or fp_dhclient_ifn_leases must be True, but 11 | # not both. 12 | # * If the list fp_dhclient_ifn is not empty both 13 | # fp_dhclient_ifn_rcconf and fp_dhclient_ifn_leases must be False. 14 | fp_dhclient_sanity: true 15 | fp_dhclient_sanity_quiet: true 16 | 17 | # List of the iterfaces. The utility dhclient will be restarted on 18 | # these interfaces if the default parameters fp_dhclient_conf_defaults 19 | # change in fp_dhclient_conf_path. By default, this list empty. 20 | # Optionally, select the list of the interfaces from the configuration 21 | # blocks 22 | # fp_dhclient_ifn: "{{ fp_dhclient_conf_blocks|map(attribute='ifn')|unique }}" 23 | fp_dhclient_ifn: [] 24 | # If set True (default) the list of the iterfaces will be created from 25 | # active leases /var/db/dhclient.leases.* 26 | fp_dhclient_ifn_leases: true 27 | 28 | # If set True the list of the iterfaces will be created from 29 | # /etc/rc.conf and /etc/rc.conf.d. Iterfaces set to *DHCP will be 30 | # selected. Mutually exclusive with fp_dhclient_ifn_leases 31 | fp_dhclient_ifn_rcconf: false 32 | fp_dhclient_ifn_rcconfd: false 33 | 34 | fp_dhclient_etc_dir: /etc 35 | 36 | fp_dhclient_conf_path: "{{ fp_dhclient_etc_dir }}/dhclient.conf" 37 | fp_dhclient_conf_defaults: [] 38 | fp_dhclient_conf_blocks: [] 39 | 40 | fp_dhclient_hooks: {} 41 | -------------------------------------------------------------------------------- /defaults/main/digitalocean.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_do_debug: false 3 | fp_do_default_user: freebsd 4 | fp_do_default_user_remove: false 5 | fp_do_default_user_remove_home: false 6 | fp_do_rcconf_cloudinit_enable: "YES" 7 | fp_do_rcconf_digitaloceanpre_enable: "YES" 8 | fp_do_rcconf_digitalocean_enable: "YES" 9 | fp_do_rcconf: 10 | - { key: cloudinit_enable, value: "{{ fp_do_rcconf_cloudinit_enable }}" } 11 | - { key: digitaloceanpre, value: "{{ fp_do_rcconf_digitaloceanpre_enable }}" } 12 | - { key: digitalocean, value: "{{ fp_do_rcconf_digitalocean_enable }}" } 13 | fp_do_legacy_rcconf: 14 | - { key: hostname, value: "{{ rc_conf_hostname }}" } 15 | -------------------------------------------------------------------------------- /defaults/main/fstab.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_fstab: false 3 | fp_fstab_entries: 4 | - { name: /proc, src: proc, fstype: procfs, opts: rw } 5 | - { name: /dev/fd, src: fdesc, fstype: fdescfs, opts: rw } 6 | fp_fstab_fstype_blacklist: [swap] 7 | # Note: Configure swap in separate task swap.yml 8 | -------------------------------------------------------------------------------- /defaults/main/gitserver.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_gitserver: false # list of packages: none 3 | fp_gitserver_install: false # list of packages: none 4 | fp_gitserver_owner: gitserver 5 | fp_gitserver_group: gitusers 6 | fp_gitserver_dir: /home/{{ fp_gitserver_owner }}/git 7 | fp_gitserver_dir_mode: "0770" 8 | -------------------------------------------------------------------------------- /defaults/main/gpg.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_gpg_packages: [] # TODO 3 | fp_gpg_packages_extra: [] # TODO 4 | -------------------------------------------------------------------------------- /defaults/main/groups.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_groups: false 3 | fp_groups_debug: false 4 | fp_groups_conf: [] 5 | -------------------------------------------------------------------------------- /defaults/main/groupwrappers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_groupwrappers: false 3 | fp_groupwrappers_install: false # list of packages: none 4 | fp_groupwrappers_dir: /root/bin 5 | fp_groupwrappers_dir_mode: "0755" 6 | fp_groupwrappers_owner: root 7 | fp_groupwrappers_group: wheel 8 | fp_groupwrappers_mode: "0774" 9 | fp_group_add: /usr/sbin/pw groupadd 10 | fp_group_del: /usr/sbin/pw groupdel 11 | fp_group_mod: /usr/sbin/pw groupmod 12 | -------------------------------------------------------------------------------- /defaults/main/handlers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_handlers: 3 | default: 4 | "YES": ["start {{ _service }}"] 5 | "NO": ["stop {{ _service }}"] 6 | "RELOAD": ["reload {{ _service }}"] 7 | devd: 8 | "RELOAD": [restart devd] 9 | devfs: 10 | "RELOAD": [restart devfs] 11 | linux: 12 | "RELOAD": [restart linux] 13 | ntpdate: 14 | "RELOAD": [restart ntpdate] 15 | ntpd: 16 | "RELOAD": [restart ntpd] 17 | qemu: 18 | "RELOAD": [restart qemu] 19 | qemu_user_static: 20 | "RELOAD": [restart qemu_user_static] 21 | -------------------------------------------------------------------------------- /defaults/main/hostname.yml: -------------------------------------------------------------------------------- 1 | --- 2 | rc_conf_hostname: srv.my.domain 3 | 4 | fp_hostname: false 5 | fp_domain: my.domain 6 | fp_hostname_rcconf: 7 | - { key: hostname, value: "{{ rc_conf_hostname }}" } 8 | -------------------------------------------------------------------------------- /defaults/main/hosts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_hosts: false 3 | fp_hosts_debug: false 4 | 5 | fp_hosts_sanity: true 6 | fp_hosts_sanity_quiet: true 7 | fp_hosts_sanity_valid_ip: true 8 | fp_hosts_sanity_unique_fqdn: true 9 | fp_hosts_sanity_valid_fqdn: false # required: fqdn>=1.5.1 (PyPI) 10 | fp_hosts_fqdn_allow_underscores: true 11 | 12 | fp_hosts_conf_file: /etc/hosts 13 | fp_hosts_conf_template: hosts.j2 14 | fp_hosts_localhost_ipv4: 127.0.0.1 15 | fp_hosts_localhost_ipv6: ::1 16 | fp_hosts_conf: [] 17 | -------------------------------------------------------------------------------- /defaults/main/inetd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_inetd: false 3 | fp_inetd_enable: false 4 | fp_inetd_notify: true 5 | fp_inetd_service_task: false 6 | fp_inetd_debug: false 7 | 8 | fp_inetd_rcconf: [] 9 | 10 | # See commented and tested examples in vars/samples/inetd.yml.sample 11 | 12 | # /etc/inetd.conf 13 | fp_inetd_conf_orig: false 14 | fp_inetd_conf: [] 15 | 16 | # /etc/syslog.d/ 17 | fp_inetd_logfile: "" 18 | fp_inetd_syslogd_confd: [] 19 | fp_inetd_syslogd_newconfd: [] 20 | 21 | # /etc/hosts.allow 22 | fp_inetd_hosts_allow_file: /etc/hosts.allow 23 | fp_inetd_hosts_allow_orig: false 24 | fp_inetd_hosts_allow_template: hosts.allow-01.j2 25 | fp_inetd_hosts_allow_conf: [] 26 | 27 | # EOF 28 | -------------------------------------------------------------------------------- /defaults/main/libmap.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_libmap: false 3 | fp_libmap_conf_file: /etc/libmap.conf 4 | fp_libmap_entries: [] 5 | -------------------------------------------------------------------------------- /defaults/main/linux.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_linux: false 3 | fp_linux_install: false # list of packages: linux 4 | fp_linux_enable: false 5 | fp_linux_notify: true 6 | fp_linux_service_task: false 7 | fp_linux_debug: false 8 | 9 | fp_linux_fstab: 10 | - { name: /compat/linux/proc, src: linproc, fstype: linprocfs, opts: rw } 11 | fp_linux_lib_dir: "{{ playbook_dir }}/copy/linux-compat-lib" 12 | fp_linux_lib: [] 13 | -------------------------------------------------------------------------------- /defaults/main/loader.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_loader: false 3 | fp_loader_debug: false 4 | fp_loader_tuneables_warning: true 5 | fp_loader_load_modules: false 6 | fp_loader_conf_file_backup_orig: true 7 | fp_loader_conf_template: loader.conf2.j2 8 | fp_loader_conf_file: /boot/loader.conf 9 | fp_loader_conf: [] 10 | fp_loader_modules: [] 11 | -------------------------------------------------------------------------------- /defaults/main/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_role_version: 2.7.7 3 | fp_debug: false 4 | fp_backup: false 5 | 6 | fp_environment: 7 | default: 8 | CRYPTOGRAPHY_OPENSSL_NO_LEGACY: '1' 9 | -------------------------------------------------------------------------------- /defaults/main/make.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_make: false 3 | fp_make_debug: false 4 | fp_make_conf_template: make.conf.j2 5 | fp_make_conf_file: /etc/make.conf 6 | fp_make_conf_owner: root 7 | fp_make_conf_group: wheel 8 | fp_make_conf_mode: u=rw,g=r,o=r 9 | fp_make_conf: 10 | - "WRKDIRPREFIX=\t\t/var/ports" 11 | - "DISTDIR=\t\t/var/ports/distfiles" 12 | - "PACKAGES=\t\t/var/ports/packages" 13 | - "INDEXDIR=\t\t/var/ports" 14 | -------------------------------------------------------------------------------- /defaults/main/motd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_motd: false 3 | # By default system info is added to the top of /etc/motd on reboot. 4 | # Set fp_motd_update_motd=false to disable this update. 5 | # This will be converted to update_motd='NO'. See tasks/motd.yml 6 | fp_motd_update: true 7 | 8 | fp_motd_conf_file: /etc/motd 9 | fp_motd_conf_mode: "0644" 10 | fp_motd_conf_template: motd.j2 11 | fp_motd_message: Welcome to system managed by vbotka.freebsd_postinstall! 12 | -------------------------------------------------------------------------------- /defaults/main/mount-img.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_mount_img: false 3 | fp_mount_img_debug: false 4 | fp_mount_img_points_create: false 5 | fp_mount_img_entries: [] 6 | -------------------------------------------------------------------------------- /defaults/main/mount-iso.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_mount_iso: false 3 | fp_mount_iso_debug: false 4 | fp_mount_iso_points_create: false 5 | fp_mount_iso_entries: [] 6 | -------------------------------------------------------------------------------- /defaults/main/nfs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_nfs: false 3 | fp_nfs_debug: false 4 | fp_nfs_enable: false 5 | 6 | # defaults 7 | # /etc/defaults/rc.conf:nfs_client_enable="NO" # This host is an NFS client (or NO). 8 | # /etc/defaults/rc.conf:nfs_access_cache="60" # Client cache timeout in seconds 9 | # /etc/defaults/rc.conf:nfs_bufpackets="" # bufspace (in packets) for client 10 | fp_nfs_access_cache: "60" 11 | fp_nfs_bufpackets: "" 12 | fp_nfs_enable_rcconf: 13 | - { key: nfs_client_enable, value: "YES" } 14 | # - { key: nfs_access_cache, value: "{{ fp_nfs_access_cache }}" } 15 | # - { key: nfs_bufpackets, value: "{{ fp_nfs_bufpackets }}" } 16 | fp_nfs_disable_rcconf: 17 | - { key: nfs_client_enable, value: "NO" } 18 | 19 | # rpc_lockd (SEE nfsd.yml) 20 | # rpc_statd (SEE nfsd.yml) 21 | 22 | # handlers 23 | fp_nfs_services: [lockd, statd] 24 | fp_nfs_handlers: 25 | nfsclient: "{{ fp_nfs_var_db_mounttab.stat.exists | d(false) | ternary('restart nfsclient', 'start nfsclient') }}" 26 | lockd: "{{ (fp_nfs_services_status.lockd | d('stopped') == 'running') | ternary('restart lockd', 'start lockd') }}" 27 | statd: "{{ (fp_nfs_services_status.statd | d('stopped') == 'running') | ternary('restart statd', 'start statd') }}" 28 | 29 | # EOF 30 | -------------------------------------------------------------------------------- /defaults/main/nfs_services.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | 4 | fp_nfs_services_enable: 5 | - label: "nfs: Start nfsclient" 6 | conf: "{{ fp_nfs_enable_rcconf }}" 7 | when: "{{ fp_nfs_enable | bool }}" 8 | notify: "{{ fp_nfs_handlers.nfsclient }}" 9 | - label: "nfs: Start lockd" 10 | conf: "{{ fp_rpc_lockd_enable_rcconf }}" 11 | when: "{{ fp_rpc_lockd_enable | bool }}" 12 | notify: "{{ fp_nfs_handlers.lockd }}" 13 | - label: "nfs: Start statd" 14 | conf: "{{ fp_rpc_statd_enable_rcconf }}" 15 | when: "{{ fp_rpc_statd_enable | bool }}" 16 | notify: "{{ fp_nfs_handlers.statd }}" 17 | 18 | fp_nfs_services_disable: 19 | - label: "nfs: Stop nfsclient" 20 | conf: "{{ fp_nfs_disable_rcconf }}" 21 | when: "{{ not fp_nfs_enable | bool }}" 22 | notify: stop nfsclient 23 | - label: "nfs: Stop lockd" 24 | conf: "{{ fp_rpc_lockd_disable_rcconf }}" 25 | when: "{{ not fp_rpc_lockd_enable | bool }}" 26 | notify: stop lockd 27 | - label: "nfs: Stop statd" 28 | conf: "{{ fp_rpc_statd_disable_rcconf }}" 29 | when: "{{ not fp_rpc_statd_enable | bool }}" 30 | notify: stop statd 31 | -------------------------------------------------------------------------------- /defaults/main/ntpdate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_ntpdate: false 3 | fp_devd_notify: true 4 | fp_devd_service_task: false 5 | 6 | # Run ntpdate to sync time on boot 7 | fp_ntpdate_enable: false 8 | 9 | fp_ntpdate_rcconf: [] 10 | # - { name: ntpdate_flags, value: "{{ fp_ntpdate_flags }}" } 11 | # - { name: ntpd_sync_on_start, value: "{{ fp_ntpd_sync_on_start }}" } 12 | 13 | # -b Force the time to be stepped using the settimeofday(2) system call, 14 | # rather than slewed (default) using the adjtime(2) system call. This 15 | # option should be used when called from a startup file at boot time. 16 | # fp_ntpdate_flags: -b 17 | 18 | # Sync time on ntpd startup 19 | # fp_ntpd_sync_on_start: "NO" 20 | -------------------------------------------------------------------------------- /defaults/main/packages.yml: -------------------------------------------------------------------------------- 1 | --- 2 | freebsd_install_method: packages 3 | # freebsd_install_method: ports 4 | # freebsd_use_packages: true 5 | freebsd_install_retries: 10 6 | freebsd_install_delay: 5 7 | 8 | fp_install: false 9 | fp_packages_debug: false 10 | fp_packages_debug2: false 11 | fp_packages: [] 12 | fp_links: [] 13 | 14 | # Delegate the jail installation to the vmm host. 15 | # Variable fp_pkg_jail is required when fp_install_delegate not empty. 16 | fp_install_delegate: '' 17 | 18 | # Optional parameters of the module community.general.pkgng 19 | # fp_pkg_annotation: [str] 20 | # fp_pkg_autoremove: false 21 | # fp_pkg_cached: false 22 | # fp_pkg_chroot: 23 | # fp_pkg_ignore_osver: false 24 | # fp_pkg_jail: 25 | # fp_pkg_pkgsite: 26 | # fp_pkg_pkgsite: FreeBSD 27 | # fp_pkg_rootdir: 28 | # fp_pkg_state: present 29 | # fp_pkg_use_globs: true 30 | 31 | # EOF 32 | -------------------------------------------------------------------------------- /defaults/main/passwords.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_passwords: false 3 | fp_passwords_debug: false 4 | fp_passwords_debug_classified: false 5 | fp_passwords_fail_gracefully: false 6 | fp_passwords_update_password: always 7 | 8 | # passwordstore 9 | fp_passwordstore: false 10 | fp_passwordstore_debug: false 11 | fp_passwordstore_install: false 12 | fp_passwordstore_backup: false 13 | fp_passwordstore_create: false 14 | fp_passwordstore_length: 16 15 | fp_passwordstore_nosymbols: false 16 | fp_passwordstore_overwrite: false 17 | fp_passwordstore_passwordstore: ~/.password-store 18 | fp_passwordstore_returnall: false 19 | fp_passwordstore_subkey: password 20 | fp_passwordstore_idempotent_password_hash: true 21 | fp_passwordstore_hostname_var: inventory_hostname 22 | fp_passwordstore_packages: [] # TODO 23 | -------------------------------------------------------------------------------- /defaults/main/periodic.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_periodic: false 3 | fp_periodic_debug: false 4 | fp_periodic_conf_local_file: /etc/periodic.conf.local 5 | fp_periodic_conf_local: 6 | - { key: daily_clean_hoststat_enable, value: "YES" } 7 | - { key: daily_status_mail_rejects_enable, value: "YES" } 8 | - { key: daily_status_include_submit_mailq, value: "YES" } 9 | - { key: daily_submit_queuerun, value: "YES" } 10 | -------------------------------------------------------------------------------- /defaults/main/procmail.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_procmail: false 3 | fp_procmail_install: false # list of packages: procmail 4 | fp_procmail_bin: /usr/local/bin/procmail 5 | fp_procmail_responder: responder 6 | fp_procmail_shell: /bin/sh 7 | fp_procmail_verbose: "off" 8 | fp_procmail_path: $HOME/bin:/bin:/usr/bin:/usr/local/bin:. 9 | fp_procmail_maildir: $HOME/Mail 10 | fp_procmail_pmdir: $HOME/.procmail 11 | fp_procmail_logfile: $PMDIR/pm.log 12 | fp_procmail_lockfile: $PMDIR/.lockfile 13 | fp_procmail_sendmail: /usr/sbin/sendmail 14 | fp_procmail_forwarders_rebuild: false 15 | fp_procmail_forwarders: [] 16 | fp_procmail_includerc: [] 17 | fp_procmail_rc_file: /usr/local/etc/procmailrc 18 | fp_procmail_rc_conf: [] 19 | -------------------------------------------------------------------------------- /defaults/main/qemu.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_qemu: false 3 | fp_qemu_enable: false 4 | fp_qemu_notify: true 5 | fp_qemu_service_task: false 6 | 7 | fp_qemu_rcconf: [] 8 | 9 | # packages are mutually exclusive 10 | fp_qemu_install: false # list of packages: qemu 11 | fp_qemu_user_static_install: false # list of packages: qemu_user_static 12 | 13 | # set according the installed packages 14 | fp_qemu_service: qemu_user_static 15 | -------------------------------------------------------------------------------- /defaults/main/rcconf.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_rcconf_debug: false 3 | fp_rcconf_sanity_rcvar: true 4 | 5 | fp_rcconf_rcvar: 6 | default: "{{ _service }}_enable" 7 | devfs: devfs_load_rulesets 8 | 9 | fp_rcconf_var: 10 | default: "fp_{{ _service }}_enable" 11 | -------------------------------------------------------------------------------- /defaults/main/rcconfd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_rcconfd: false 3 | fp_rcconfd_dir: /etc/rc.conf.d 4 | fp_rcconfd_file: 5 | apcupsd: apcupsd 6 | devd: devd 7 | devfs: devfs 8 | digitalocean: digitalocean 9 | hostapd: hostapd 10 | hostname: hostname 11 | inetd: inetd 12 | linux: linux 13 | ntpd: ntpd 14 | ntpdate: ntpdate 15 | motd: motd 16 | qemu: qemu 17 | qemu_user_static: qemu_user_static 18 | smartd: smartd 19 | snmpd: snmpd 20 | sshd: sshd 21 | syslogd: syslogd 22 | tmpmfs: tmpmfs 23 | wpasupplicant: wpasupplicant 24 | fp_rcconfd_path: "{{ dict(fp_rcconfd_file.keys() 25 | | zip([fp_rcconfd_dir] 26 | | product(fp_rcconfd_file.values()) 27 | | map('join', '/'))) }}" 28 | -------------------------------------------------------------------------------- /defaults/main/resolvconf.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_resolvconf: false 3 | 4 | # resolvconf.conf 5 | fp_resolvconf_conf_file: /etc/resolvconf.conf 6 | fp_resolvconf_conf_owner: root 7 | fp_resolvconf_conf_group: wheel 8 | fp_resolvconf_conf_mode: "0644" 9 | fp_resolvconf_conf_clean: false 10 | # fp_resolvconf_conf_absent item requires 'key' only 11 | fp_resolvconf_conf_absent: [] 12 | # - resolvconf 13 | # - name_servers 14 | fp_resolvconf_conf: [] 15 | # - {key: resolvconf, value: 'NO'} 16 | # - {key: name_servers, value: 192.168.1.1} 17 | 18 | # resolv.conf 19 | fp_resolv_conf_file: /etc/resolv.conf 20 | fp_resolv_conf_owner: root 21 | fp_resolv_conf_group: wheel 22 | fp_resolv_conf_mode: "0644" 23 | fp_resolv_conf_clean: false 24 | # fp_resolv_conf_absent item requires 'key value' 25 | fp_resolv_conf_absent: [] 26 | # - search example.com 27 | # - nameserver 147.11.1.11 28 | fp_resolv_conf: [] 29 | # - {key: search, value: example.com} 30 | # - {key: nameserver, value: 147.11.1.11} 31 | # - {key: nameserver, value: 147.11.100.30} 32 | -------------------------------------------------------------------------------- /defaults/main/sanity.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | fp_sanity: true 4 | fp_sanity_quiet: true 5 | fp_sanity_debug: false 6 | fp_sanity_tags_fatal: true 7 | -------------------------------------------------------------------------------- /defaults/main/smartd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_smartd: false 3 | fp_smartd_install: false # list of packages: smart 4 | fp_smartd_enable: false 5 | fp_smartd_notify: true 6 | fp_smartd_service_task: false 7 | 8 | fp_smartd_rcconf: [] 9 | 10 | fp_smartd_conf_file: /usr/local/etc/smartd.conf 11 | fp_smartd_conf_owner: root 12 | fp_smartd_conf_group: wheel 13 | fp_smartd_conf_mode: "0644" 14 | fp_smartd_devices: [] 15 | -------------------------------------------------------------------------------- /defaults/main/snmpd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_snmpd: false 3 | fp_snmpd_install: false # list of packages: snmpd 4 | fp_snmpd_enable: false 5 | fp_snmpd_notify: true 6 | fp_snmpd_service_task: false 7 | 8 | fp_snmpd_rcconf: [] 9 | # - { name: snmpd_conffile, value: /usr/local/etc/snmpd.conf } 10 | 11 | fp_snmpd_conf: [] 12 | -------------------------------------------------------------------------------- /defaults/main/ssh.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_ssh: false 3 | fp_ssh_debug: false 4 | fp_ssh_conf_file: /etc/ssh/ssh_config 5 | fp_ssh_conf_template: ssh_config.j2 6 | fp_ssh_conf_owner: root 7 | fp_ssh_conf_group: wheel 8 | fp_ssh_conf_mode: "0644" 9 | fp_ssh_conf: [] 10 | -------------------------------------------------------------------------------- /defaults/main/sshd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_sshd: false 3 | fp_sshd_enable: false 4 | fp_sshd_notify: true 5 | fp_sshd_service_task: false 6 | fp_sshd_debug: false 7 | 8 | fp_sshd_rcconf: [] 9 | 10 | fp_sshd_bin: /usr/sbin/sshd 11 | fp_sshd_conf_file: /etc/ssh/sshd_config 12 | fp_sshd_passwordauthentication: "no" 13 | fp_sshd_challengeresponseauthentication: "no" 14 | fp_sshd_conf: 15 | - { key: PasswordAuthentication, value: "{{ fp_sshd_passwordauthentication }}" } 16 | - { key: ChallengeResponseAuthentication, value: "{{ fp_sshd_challengeresponseauthentication }}" } 17 | -------------------------------------------------------------------------------- /defaults/main/sudoers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_sudoers: false 3 | fp_sudoers_conf_file: /usr/local/etc/sudoers 4 | fp_sudoers_conf_owner: root 5 | fp_sudoers_conf_group: wheel 6 | fp_sudoers_conf_mode: "0440" 7 | fp_sudoers_conf: [] 8 | -------------------------------------------------------------------------------- /defaults/main/swap.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_swap: false 3 | fp_swap_debug: false 4 | fp_swap_enable: false 5 | # fp_swap_file: /usr/swap0 6 | # fp_swap_md: md99 7 | # fp_swap_size: 4096 8 | # fp_swap_size: 2048 9 | # fp_swap_size: 1536 10 | # fp_swap_stsize: "{{ fp_swap_size * 1024 * 1024 }}" 11 | # fp_swap_stsize: 4294967296 12 | # fp_swap_stsize: 2147483648 13 | # fp_swap_stsize: 1610612736 14 | -------------------------------------------------------------------------------- /defaults/main/sysctl.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_sysctl: false 3 | fp_sysctl_debug: false 4 | fp_sysctl_tuneables_warning: true 5 | fp_sysctl_conf_file: /etc/sysctl.conf 6 | fp_sysctl_ignoreerrors: false 7 | fp_sysctl_conf: [] 8 | -------------------------------------------------------------------------------- /defaults/main/syslogd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_syslogd: false 3 | fp_syslogd_enable: false 4 | fp_syslogd_notify: true 5 | fp_syslogd_service_task: false 6 | fp_syslogd_debug: false 7 | 8 | # See commented and tested examples in vars/samples/syslogd.yml.sample 9 | 10 | # /etc/rc.conf 11 | fp_syslogd_rcconf: [] 12 | # /etc/syslog.conf 13 | fp_syslogd_conf_orig: false 14 | fp_syslogd_conf: [] 15 | fp_syslogd_confd: [] 16 | # /etc/newsyslog.conf 17 | fp_syslogd_newconf_orig: false 18 | fp_syslogd_newconf: [] 19 | fp_syslogd_newconfd: [] 20 | -------------------------------------------------------------------------------- /defaults/main/timezone.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_timezone: false 3 | fp_timezone_debug: false 4 | fp_zoneinfo: UTC 5 | # fp_zoneinfo: "Europe/London" # man tzsetup 6 | fp_zoneinfo_path: /usr/share/zoneinfo 7 | -------------------------------------------------------------------------------- /defaults/main/tmpmfs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_tmpmfs: false 3 | fp_tmpmfs_debug: false 4 | 5 | fp_tmpmfs_rcconf: [] 6 | # - { name: tmpmfs, value: "{{ fp_tmpmfs_enable }}" } 7 | # - { name: tmpsize, value: "{{ fp_tmpmfs_tmpsize }}" } 8 | # - { name: tmpmfs_flags, value: "{{ fp_tmpmfs_flags }}" } 9 | 10 | # defaults 11 | # /etc/defaults/rc.conf:tmpmfs="AUTO" # Set to YES to always create an mfs /tmp, NO to never 12 | # /etc/defaults/rc.conf.orig:tmpsize="20m" # Size of mfs /tmp if created 13 | # /etc/defaults/rc.conf:tmpmfs_flags="-S" # Extra mdmfs options for the mfs /tmp 14 | # fp_tmpmfs_enable: "AUTO" 15 | # fp_tmpmfs_tmpsize: 100m 16 | # fp_tmpmfs_flags: -S 17 | -------------------------------------------------------------------------------- /defaults/main/users.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_users: false 3 | fp_users_debug: false 4 | fp_users_debug_classified: false 5 | fp_users_conf: [] 6 | -------------------------------------------------------------------------------- /defaults/main/vars.yml: -------------------------------------------------------------------------------- 1 | --- 2 | fp_vars: false 3 | fp_vars_debug: false 4 | 5 | fp_vars_default_versions: false 6 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = ansible-role-__PROJECT__ 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /docs/annotation/README: -------------------------------------------------------------------------------- 1 | 2 | Manage source/annotation-*.rst by Ansible 3 | ========================================= 4 | 5 | 1) Create lists of files: -list.txt 6 | where is : tasks, handlers, templates 7 | Do not include *main.yml* in the files. Both *tasks/main.yml* and 8 | *handlers/main.yml* are included in the templates by default. 9 | 10 | 2) Create vars: 11 | __synopsis 12 | __description 13 | __lines 14 | __seealso 15 | __note 16 | __warning 17 | 18 | where is : task, handler, template 19 | (see annotation-.yml.j2) 20 | 21 | 3) Create annotation-.yml 22 | shell> ansible-playbook pb-annotations.yml 23 | -------------------------------------------------------------------------------- /docs/annotation/annotation-handlers.rst.j2: -------------------------------------------------------------------------------- 1 | .. _as_handlers: 2 | 3 | Handlers 4 | ======== 5 | 6 | {% for i in myhandlers %} 7 | .. _as_handler_{{ i.link }}: 8 | 9 | {{ i.file }} 10 | {{ '-' * i.file | length }} 11 | 12 | Synopsis: {{ i.synopsis }} 13 | 14 | {{ i.description }} 15 | 16 | [`{{ i.path }} `_] 17 | 18 | .. highlight:: yaml 19 | :linenothreshold: 5 20 | .. literalinclude:: ../../{{ i.path }} 21 | :language: yaml 22 | :emphasize-lines: {{ i.lines }} 23 | :linenos: 24 | 25 | {% if i.seealso | length > 0 %} 26 | .. seealso:: 27 | {% for ii in i.seealso.others | d([]) %} 28 | * {{ ii }} 29 | {% endfor %} 30 | {% endif %} 31 | 32 | {% if i.notes | length > 0 %} 33 | .. note:: 34 | {% for note in i.notes %} 35 | * {{ note }} 36 | {% endfor %} 37 | {% endif %} 38 | 39 | {% if i.hints | length > 0 %} 40 | .. hint:: 41 | {% for hint in i.hints %} 42 | * {{ hint }} 43 | {% endfor %} 44 | {% endif %} 45 | 46 | {% if i.warnings | length > 0 %} 47 | .. warning:: 48 | {% for warning in i.warnings %} 49 | * {{ warning }} 50 | {% endfor %} 51 | {% endif %} 52 | 53 | {% endfor %} 54 | -------------------------------------------------------------------------------- /docs/annotation/annotation-handlers.yml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks:False 2 | --- 3 | myhandlers: 4 | - file: main.yml 5 | link: handlers-main.yml 6 | path: handlers/main.yml 7 | synopsis: | 8 | Main task. 9 | description: | 10 | Import handlers. 11 | lines: 1,2 12 | seealso: [] 13 | notes: [] 14 | hints: [] 15 | warnings: [] 16 | {% for f in my_files %} 17 | - file: {{ f.base_name }} 18 | link: {{ f.base_name }} 19 | path: handlers/{{ f.path }} 20 | synopsis: | 21 | {{ lookup('vars', 'handler_' ~ f.file_name ~ '_synopsis', default='Configure ' ~ f.file_name) | indent(width=6) }} 22 | description: | 23 | {{ lookup('vars', 'handler_' ~ f.file_name ~ '_description', default='Description of the task.') | indent(width=6) }} 24 | lines: {{ lookup('vars', 'handler_' ~ f.file_name ~ '_lines', default='1') }} 25 | seealso: 26 | {{ lookup('vars', 'handler_' ~ f.file_name ~ '_seealso', default={}) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 27 | notes: 28 | {{ lookup('vars', 'handler_' ~ f.file_name ~ '_note', default=[]) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 29 | hints: 30 | {{ lookup('vars', 'handler_' ~ f.file_name ~ '_hint', default=[]) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 31 | warnings: 32 | {{ lookup('vars', 'handler_' ~ f.file_name ~ '_warning', default=[]) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 33 | {% endfor %} 34 | ... 35 | -------------------------------------------------------------------------------- /docs/annotation/annotation-tasks.rst.j2: -------------------------------------------------------------------------------- 1 | .. _as_tasks: 2 | 3 | Tasks 4 | ===== 5 | 6 | {% for i in mytasks %} 7 | .. _as_{{ i.link }}: 8 | 9 | {{ i.file }} 10 | {{ '-' * i.file | length }} 11 | 12 | Synopsis: {{ i.synopsis }} 13 | 14 | {{ i.description }} 15 | 16 | [`{{ i.path }} `_] 17 | 18 | .. highlight:: yaml 19 | :linenothreshold: 5 20 | .. literalinclude:: ../../{{ i.path }} 21 | :language: yaml 22 | :emphasize-lines: {{ i.lines }} 23 | :linenos: 24 | 25 | {% if i.seealso | length > 0 %} 26 | .. seealso:: 27 | {% for ii in i.seealso.handlers | d([]) %} 28 | * Handler :ref:`as_handler_{{ ii }}.yml` 29 | {% endfor %} 30 | {% for ii in i.seealso.templates | d([]) %} 31 | * Template :ref:`as_template_{{ ii }}.j2` 32 | {% endfor %} 33 | {% for ii in i.seealso.others | d([]) %} 34 | * {{ ii }} 35 | {% endfor %} 36 | {% endif %} 37 | 38 | {% if i.notes | length > 0 %} 39 | .. note:: 40 | {% for note in i.notes %} 41 | * {{ note }} 42 | {% endfor %} 43 | {% endif %} 44 | 45 | {% if i.hints | length > 0 %} 46 | .. hint:: 47 | {% for hint in i.hints %} 48 | * {{ hint }} 49 | {% endfor %} 50 | {% endif %} 51 | 52 | {% if i.warnings | length > 0 %} 53 | .. warning:: 54 | {% for warning in i.warnings %} 55 | * {{ warning }} 56 | {% endfor %} 57 | {% endif %} 58 | 59 | {% endfor %} 60 | -------------------------------------------------------------------------------- /docs/annotation/annotation-tasks.yml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks:False 2 | --- 3 | mytasks: 4 | - file: main.yml 5 | link: main.yml 6 | path: tasks/main.yml 7 | synopsis: | 8 | Main task. 9 | description: | 10 | Import tasks if enabled. 11 | lines: 1,2 12 | seealso: [] 13 | notes: [] 14 | hints: [] 15 | warnings: [] 16 | {% for f in my_files %} 17 | - file: {{ f.base_name }} 18 | link: {{ f.base_name }} 19 | path: tasks/{{ f.path }} 20 | synopsis: | 21 | {{ lookup('vars', 'task_' ~ f.file_name ~ '_synopsis', default='Configure ' ~ f.file_name) | indent(width=6) }} 22 | description: | 23 | {{ lookup('vars', 'task_' ~ f.file_name ~ '_description', default='Description of the task.') | indent(width=6) }} 24 | lines: {{ lookup('vars', 'task_' ~ f.file_name ~ '_lines', default='1') }} 25 | seealso: 26 | {{ lookup('vars', 'task_' ~ f.file_name ~ '_seealso', default={}) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 27 | notes: 28 | {{ lookup('vars', 'task_' ~ f.file_name ~ '_note', default=[]) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 29 | hints: 30 | {{ lookup('vars', 'task_' ~ f.file_name ~ '_hint', default=[]) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 31 | warnings: 32 | {{ lookup('vars', 'task_' ~ f.file_name ~ '_warning', default=[]) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 33 | {% endfor %} 34 | ... 35 | -------------------------------------------------------------------------------- /docs/annotation/annotation-templates.rst.j2: -------------------------------------------------------------------------------- 1 | .. _as_tamplates: 2 | 3 | Templates 4 | ========= 5 | 6 | {% for i in mytemplates %} 7 | .. _as_template_{{ i.link }}: 8 | 9 | {{ i.file }} 10 | {{ '-' * i.file | length }} 11 | 12 | Synopsis: {{ i.synopsis }} 13 | 14 | {{ i.description }} 15 | 16 | [`{{ i.path }} `_] 17 | 18 | .. highlight:: jinja 19 | :linenothreshold: 5 20 | .. literalinclude:: ../../{{ i.path }} 21 | :language: jinja 22 | :emphasize-lines: {{ i.lines }} 23 | :linenos: 24 | 25 | {% if i.seealso | length > 0 %} 26 | .. seealso:: 27 | {% for ii in i.seealso.others | d([]) %} 28 | * {{ ii }} 29 | {% endfor %} 30 | {% endif %} 31 | 32 | {% if i.notes | length > 0 %} 33 | .. note:: 34 | {% for note in i.notes %} 35 | * {{ note }} 36 | {% endfor %} 37 | {% endif %} 38 | 39 | {% if i.hints | length > 0 %} 40 | .. hint:: 41 | {% for hint in i.hints %} 42 | * {{ hint }} 43 | {% endfor %} 44 | {% endif %} 45 | 46 | {% if i.warnings | length > 0 %} 47 | .. warning:: 48 | {% for warning in i.warnings %} 49 | * {{ warning }} 50 | {% endfor %} 51 | {% endif %} 52 | 53 | {% endfor %} 54 | -------------------------------------------------------------------------------- /docs/annotation/annotation-templates.yml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks:False 2 | --- 3 | mytemplates:{% if my_files | d([]) | length == 0 %} []{% endif %} 4 | {% for f in my_files %} 5 | - file: {{ f.base_name }} 6 | link: {{ f.base_name }} 7 | path: templates/{{ f.path }} 8 | synopsis: | 9 | {{ lookup('vars', 'template_' ~ f.file_name ~ '_synopsis', default='Configure ' ~ f.file_name) | indent(width=6) }} 10 | description: | 11 | {{ lookup('vars', 'template_' ~ f.file_name ~ '_description', default='Description of the task.') | indent(width=6) }} 12 | lines: {{ lookup('vars', 'template_' ~ f.file_name ~ '_lines', default='1') }} 13 | seealso: 14 | {{ lookup('vars', 'template_' ~ f.file_name ~ '_seealso', default={}) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 15 | notes: 16 | {{ lookup('vars', 'template_' ~ f.file_name ~ '_note', default=[]) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 17 | hints: 18 | {{ lookup('vars', 'template_' ~ f.file_name ~ '_hint', default=[]) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 19 | warnings: 20 | {{ lookup('vars', 'template_' ~ f.file_name ~ '_warning', default=[]) | from_yaml | to_nice_yaml(indent=2) | indent(6) }} 21 | {% endfor %} 22 | ... 23 | -------------------------------------------------------------------------------- /docs/annotation/handlers-list.txt: -------------------------------------------------------------------------------- 1 | adjkerntz.yml 2 | apcupsd.yml 3 | devd.yml 4 | devfs.yml 5 | dhclient.yml 6 | fstab.yml 7 | hostapd.yml 8 | hostname.yml 9 | inetd.yml 10 | lockd.yml 11 | login.yml 12 | messages.yml 13 | mountd.yml 14 | newaliases.yml 15 | newsyslog.yml 16 | nfsclient.yml 17 | nfsd.yml 18 | ntpdate.yml 19 | ntpd.yml 20 | qemu.yml 21 | qemu_user_static.yml 22 | resolvconf.yml 23 | rpcbind.yml 24 | smartd.yml 25 | snmpd.yml 26 | sshd.yml 27 | statd.yml 28 | swap.yml 29 | sysctl.yml 30 | syslogd.yml 31 | wpasupplicant.yml 32 | -------------------------------------------------------------------------------- /docs/annotation/pb-annotations.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Create annotation-[tasks,handlers,templates].yml 4 | hosts: localhost 5 | gather_facts: false 6 | debugger: on_failed 7 | 8 | vars: 9 | 10 | ansible_python_interpreter: auto_silent 11 | debug: false 12 | base_names: "{{ paths | map('basename') }}" 13 | file_names: "{{ base_names | map('splitext') | map('first') }}" 14 | my_files: "{{ file_names | zip(base_names) | zip(paths) | map('flatten') 15 | | map('zip', ['file_name', 'base_name', 'path']) 16 | | map('map', 'reverse') 17 | | map('community.general.dict') }}" 18 | 19 | tasks: 20 | 21 | - name: Read vars. 22 | ansible.builtin.include_vars: 23 | dir: vars 24 | extensions: [yml] 25 | ignore_unknown_extensions: true 26 | 27 | - name: Create annotations. 28 | vars: 29 | file: "{{ item }}-list.txt" 30 | paths: "{{ lookup('file', file).splitlines() }}" 31 | ansible.builtin.template: 32 | src: "annotation-{{ item }}.yml.j2" 33 | dest: "annotation-{{ item }}.yml" 34 | mode: "0644" 35 | loop: 36 | - tasks 37 | - handlers 38 | - templates 39 | 40 | # EOF 41 | ... 42 | -------------------------------------------------------------------------------- /docs/annotation/tasks-list.txt: -------------------------------------------------------------------------------- 1 | aliases.yml 2 | apcupsd.yml 3 | authorized-key.yml 4 | cloud-providers.yml 5 | copy.yml 6 | cron.yml 7 | debug.yml 8 | devd.yml 9 | devfs.yml 10 | dhclient.yml 11 | freebsd-update.yml 12 | fstab.yml 13 | gitserver.yml 14 | groups.yml 15 | groupwrappers.yml 16 | hostapd.yml 17 | hostname.yml 18 | hosts.yml 19 | inetd.yml 20 | libmap.yml 21 | linux.yml 22 | loader.yml 23 | login.yml 24 | make.yml 25 | motd.yml 26 | mount-img.yml 27 | mount-iso.yml 28 | mount-vnode.yml 29 | nfs.yml 30 | nfsd.yml 31 | ntp.yml 32 | ntpdate.yml 33 | packages-install.yml 34 | packages.yml 35 | passwords.yml 36 | periodic.yml 37 | procmail.yml 38 | qemu.yml 39 | resolvconf.yml 40 | sanity.yml 41 | smartd.yml 42 | snmpd.yml 43 | ssh.yml 44 | sshd.yml 45 | sudoers.yml 46 | swap.yml 47 | sysctl.yml 48 | syslogd.yml 49 | timezone.yml 50 | tmpmfs.yml 51 | users.yml 52 | vars.yml 53 | wpasupplicant.yml 54 | cloud-providers/digitalocean.yml 55 | copy/sync-default.yml 56 | copy/sync-optional.yml 57 | copy/unarch-default.yml 58 | copy/unarch-optional.yml 59 | fn/cron-rename-entry.yml 60 | fn/mdconfig-attach-disk.yml 61 | fn/mdconfig-detach-disk.yml 62 | fn/rcconf-item.yml 63 | fn/rcconf.yml 64 | -------------------------------------------------------------------------------- /docs/annotation/templates-list.txt: -------------------------------------------------------------------------------- 1 | apcupsd.conf.j2 2 | exports.j2 3 | freebsd-update.conf.j2 4 | freebsd-update.conf2.j2 5 | groupadd.j2 6 | groupdel.j2 7 | groupmod.j2 8 | hostapd.conf.j2 9 | hosts.j2 10 | hosts-aliases-list.j2 11 | hosts.allow-01.j2 12 | hosts.allow-02.j2 13 | loader.conf.j2 14 | loader.conf2.j2 15 | login.conf.j2 16 | login_conf.j2 17 | make.conf.j2 18 | motd.j2 19 | newsyslog.conf.j2 20 | ntp.conf.j2 21 | procmailrc-includerc-capability.j2 22 | procmailrc-includerc-duplicates.j2 23 | procmailrc-includerc-get-certificate.j2 24 | procmailrc-includerc-get-fingerprint.j2 25 | procmailrc-includerc-get-fingerprints.j2 26 | procmailrc-includerc-get-message.j2 27 | procmailrc.j2 28 | ssh_config.j2 29 | syslog.conf.j2 30 | wpa_supplicant.conf.j2 31 | -------------------------------------------------------------------------------- /docs/annotation/vars/nfs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | task_nfs_synopsis: | 4 | Configure NFS client. 5 | 6 | task_nfs_description: | 7 | :2: Display variables. 8 | 9 | :3: Enable ``fp_nfs_debug=true``. 10 | 11 | :35: Collect status of the services stored in the list 12 | ``fp_nfs_services``. 13 | 14 | :42: Create dictionary ``fp_nfs_services_status``. 15 | 16 | :55: Test the existence of the file ``var/db/nounttab``. There is no status 17 | option of the service ``nfsclient``. Instead of starting the service, 18 | restart it if there are any nfs mountpoints. This means if the file 19 | ``/var/db/mounttab`` exists. 20 | 21 | :60: Display the result ``fp_nfs_var_db_mounttab.stat.exists``. This variable 22 | will be used to select the handler in the dictionary ``fp_nfs_handlers``. 23 | 24 | :65: Display the dictionary ``fp_nfsd_handlers``. The defaults are 25 | used in check mode because of empty dictionary 26 | ``fp_nfs_services_status``. 27 | 28 | :70: Enable services. 29 | 30 | :79: Disable services. 31 | 32 | task_nfs_lines: 2,3,35,42,55,60,65,70,79 33 | 34 | task_nfs_seealso: 35 | handlers: 36 | - nfsclient 37 | - nfsd 38 | templates: [] 39 | others: 40 | - 41 | 42 | task_nfs_note: 43 | - "The variables ``fp_nfs_services_enable`` (74) and ``fp_nfs_services_disable`` (83) are created 44 | by the playbook ``.configure.yml``" 45 | 46 | task_nfs_hint: 47 | - 48 | 49 | task_nfs_warning: 50 | - 51 | 52 | # EOF 53 | ... 54 | -------------------------------------------------------------------------------- /docs/annotation/vars/nfsd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | task_nfsd_synopsis: | 4 | Configure NFS server. 5 | 6 | task_nfsd_description: | 7 | :2: Display variables. 8 | 9 | :3: enable ``fp_nfsd_debug=true``. 10 | 11 | :60: Collect status of the services stored in the list 12 | ``fp_nfsd_services``. 13 | 14 | :67: Create dictionary ``fp_nfsd_services_status``. 15 | 16 | :73: Display this dictionary. This dictionary is used to select the 17 | handlers in the dictionary ``fp_nfsd_handlers``. 18 | 19 | :78: Display the dictionary ``fp_nfsd_handlers``. The defaults are 20 | used in check mode because of empty dictionary 21 | ``fp_nfsd_services_status``. 22 | 23 | :83: Configure ``/etc/exports`` and notify handler ``reload 24 | mountd``. 25 | 26 | :92: Enable services. 27 | 28 | :101: Disable services. 29 | 30 | task_nfsd_lines: 2,3,60,67,73,78,83,92,101 31 | 32 | task_nfsd_seealso: 33 | handlers: 34 | - nfsd 35 | templates: 36 | - exports 37 | others: 38 | - 39 | 40 | task_nfsd_note: 41 | - "The variables ``fp_nfsd_services_enable`` (96) and ``fp_nfsd_services_disable`` (105) are created by the playbook ``.configure.yml``" 42 | 43 | task_nfsd_hint: 44 | - 45 | 46 | task_nfsd_warning: 47 | - 48 | 49 | # EOF 50 | ... 51 | -------------------------------------------------------------------------------- /docs/batch1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | (cd annotation && ansible-playbook pb-annotations.yml) 4 | ansible-playbook playbook.yml 5 | make html 6 | -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=source 11 | set BUILDDIR=build 12 | set SPHINXPROJ=ansible-role-__PROJECT__ 13 | 14 | if "%1" == "" goto help 15 | 16 | %SPHINXBUILD% >NUL 2>NUL 17 | if errorlevel 9009 ( 18 | echo. 19 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 20 | echo.installed, then set the SPHINXBUILD environment variable to point 21 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 22 | echo.may add the Sphinx directory to PATH. 23 | echo. 24 | echo.If you don't have Sphinx installed, grab it from 25 | echo.http://sphinx-doc.org/ 26 | exit /b 1 27 | ) 28 | 29 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% 30 | goto end 31 | 32 | :help 33 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% 34 | 35 | :end 36 | popd 37 | -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx==7.2.6 2 | sphinx_rtd_theme==1.3.0 3 | readthedocs-sphinx-search==0.3.2 4 | -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/comments.html: -------------------------------------------------------------------------------- 1 | {% if theme_disqus_comments_shortname %} 2 |
3 |
4 | 13 | 14 | comments powered by Disqus 15 |
16 | {% endif %} 17 | -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/globaltoc.html: -------------------------------------------------------------------------------- 1 | 2 | 15 | -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/localtoc.html: -------------------------------------------------------------------------------- 1 | {%- if display_toc %} 2 | 10 | {%- endif %} 11 | -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/logo-text.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/searchbox.html: -------------------------------------------------------------------------------- 1 | {%- if pagename != "search" %} 2 | 15 | {%- endif %} 16 | -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Light-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Black.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Black.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Bold.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-ExtraLight.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-ExtraLight.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Light.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Regular.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Semibold.eot -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Black.otf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Bold.otf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-ExtraLight.otf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Light.otf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Regular.otf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/OTF/SourceSerifPro-Semibold.otf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/README.md: -------------------------------------------------------------------------------- 1 | # Source Serif Pro 2 | 3 | Source Serif Pro is a set of OpenType fonts to complement the [Source Sans Pro](https://github.com/adobe-fonts/source-sans-pro) family. 4 | In addition to a functional OpenType font, this open source project provides all of the source files that were used to build this OpenType font by using the AFDKO makeotf tool. 5 | 6 | ## Installation instructions 7 | 8 | * [Mac OS X](http://support.apple.com/kb/HT2509) 9 | * [Windows](http://windows.microsoft.com/en-us/windows-vista/install-or-uninstall-fonts) 10 | * [Linux/Unix-based systems](https://github.com/adobe-fonts/source-code-pro/issues/17#issuecomment-8967116) 11 | 12 | ## Getting Involved 13 | 14 | Send suggestions for changes to the Source Serif OpenType font project maintainer, [Frank Grießhammer](mailto:opensourcefonts@adobe.com?subject=[GitHub] Source Serif Pro), for consideration. 15 | 16 | ## Further information 17 | 18 | For information about the design and background of Source Serif, please refer to the [official font readme file](http://htmlpreview.github.io/?https://github.com/adobe-fonts/source-serif-pro/blob/master/SourceSerifProReadMe.html). 19 | -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Black.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Bold.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-ExtraLight.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Light.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Regular.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Semibold.ttf -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Black.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Black.otf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Bold.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Bold.otf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-ExtraLight.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-ExtraLight.otf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Light.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Light.otf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Regular.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Regular.otf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Semibold.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Semibold.otf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Black.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Black.ttf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Bold.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Bold.ttf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-ExtraLight.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-ExtraLight.ttf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Light.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Light.ttf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Regular.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Regular.ttf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Semibold.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Semibold.ttf.woff -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "source-serif-pro", 3 | "version": "1.014", 4 | "main": "source-serif-pro.css", 5 | "homepage": "https://github.com/adobe-fonts/source-serif-pro", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/adobe-fonts/source-serif-pro.git" 9 | }, 10 | "authors": [ 11 | { "name": "Frank Grießhammer" } 12 | ], 13 | "description": "Source Serif Pro font family by Adobe", 14 | "license": "SIL OFL 1.1" 15 | } 16 | -------------------------------------------------------------------------------- /docs/source/_themes/guzzle_sphinx_theme/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | 3 | inherit = basic 4 | stylesheet = guzzle.css 5 | 6 | [options] 7 | 8 | # Set to an html template to load custom HTML for the homepage 9 | index_template = 10 | 11 | # Set the name of the project to appear in the left sidebar. 12 | project_nav_name = 13 | 14 | # Path to a touch icon 15 | touch_icon = 16 | 17 | # Set this value to enable Disqus comments 18 | disqus_comments_shortname = 19 | 20 | # Set to enable google analytics 21 | google_analytics_account = 22 | 23 | # Specify a base_url used to generate sitemap.xml links. If not specified, then 24 | # no sitemap will be built. 25 | base_url = 26 | 27 | # Allow a separate homepage from the "master_doc" 28 | homepage = 29 | 30 | # Allow the project link to be overwritten to a custom URL. 31 | projectlink = 32 | -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/da/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/da/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/de/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/de/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/en/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/en/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/es/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/es/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/et/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/et/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/fa_IR/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/fa_IR/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/fr/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/fr/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/hr/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/hr/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/hr/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # English translations for sphinx_rtd_theme. 2 | # Copyright (C) 2019 ORGANIZATION 3 | # This file is distributed under the same license as the sphinx_rtd_theme 4 | # project. 5 | # FIRST AUTHOR , 2019. 6 | # 7 | # Translators: 8 | # Ivan Bratović, 2022 9 | # 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n" 13 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 14 | "POT-Creation-Date: 2023-02-06 15:36+0100\n" 15 | "PO-Revision-Date: 2019-07-16 21:44+0000\n" 16 | "Last-Translator: Ivan Bratović, 2022\n" 17 | "Language-Team: Croatian (https://www.transifex.com/readthedocs/teams/101354/hr/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Generated-By: Babel 2.11.0\n" 22 | "Language: hr\n" 23 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 24 | -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/hu/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/hu/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/hu/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # English translations for sphinx_rtd_theme. 2 | # Copyright (C) 2019 ORGANIZATION 3 | # This file is distributed under the same license as the sphinx_rtd_theme 4 | # project. 5 | # FIRST AUTHOR , 2019. 6 | # 7 | # Translators: 8 | # Balázs Úr, 2022 9 | # 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n" 13 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 14 | "POT-Creation-Date: 2023-02-06 15:36+0100\n" 15 | "PO-Revision-Date: 2019-07-16 21:44+0000\n" 16 | "Last-Translator: Balázs Úr, 2022\n" 17 | "Language-Team: Hungarian (https://www.transifex.com/readthedocs/teams/101354/hu/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Generated-By: Babel 2.11.0\n" 22 | "Language: hu\n" 23 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 24 | -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/it/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/it/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/lt/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/lt/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/nl/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/nl/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/pl/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/pl/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/pt/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/pt/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/pt_BR/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/pt_BR/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/ru/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/ru/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/sv/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/sv/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/tr/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/tr/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/zh_CN/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/zh_CN/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/zh_TW/LC_MESSAGES/sphinx.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/locale/zh_TW/LC_MESSAGES/sphinx.mo -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/locale/zh_TW/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # English translations for sphinx_rtd_theme. 2 | # Copyright (C) 2019 ORGANIZATION 3 | # This file is distributed under the same license as the sphinx_rtd_theme 4 | # project. 5 | # FIRST AUTHOR , 2019. 6 | # 7 | # Translators: 8 | # Jason Zhou, 2023 9 | # 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n" 13 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 14 | "POT-Creation-Date: 2023-02-06 15:36+0100\n" 15 | "PO-Revision-Date: 2019-07-16 21:44+0000\n" 16 | "Last-Translator: Jason Zhou, 2023\n" 17 | "Language-Team: Chinese (Taiwan) (https://www.transifex.com/readthedocs/teams/101354/zh_TW/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Generated-By: Babel 2.11.0\n" 22 | "Language: zh_TW\n" 23 | "Plural-Forms: nplurals=1; plural=0;\n" 24 | -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/searchbox.html: -------------------------------------------------------------------------------- 1 | {%- if 'singlehtml' not in builder %} 2 |
3 |
4 | 5 | 6 | 7 |
8 |
9 | {%- endif %} 10 | -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Bold.woff -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Bold.woff2 -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Regular.woff -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Regular.woff2 -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold-italic.woff -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold-italic.woff2 -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold.woff -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold.woff2 -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal-italic.woff -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal-italic.woff2 -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal.woff -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal.woff2 -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Regular.ttf -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/Lato-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/Lato-Bold.ttf -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/Lato-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/Lato-Regular.ttf -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Regular.ttf -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/static/js/badge_only.js: -------------------------------------------------------------------------------- 1 | !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}}); -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = basic 3 | stylesheet = css/theme.css 4 | pygments_style = default 5 | 6 | [options] 7 | canonical_url = 8 | analytics_id = 9 | analytics_anonymize_ip = False 10 | collapse_navigation = True 11 | sticky_navigation = True 12 | navigation_depth = 4 13 | includehidden = True 14 | titles_only = 15 | logo_only = 16 | display_version = True 17 | prev_next_buttons_location = bottom 18 | style_external_links = False 19 | style_nav_header_background = 20 | vcs_pageview_mode = 21 | -------------------------------------------------------------------------------- /docs/source/_themes/sphinx_rtd_theme/versions.html: -------------------------------------------------------------------------------- 1 | {% if READTHEDOCS %} 2 | {# Add rst-badge after rst-versions for small badge style. #} 3 |
4 | 5 | Read the Docs 6 | v: {{ current_version }} 7 | 8 | 9 |
10 |
11 |
{{ _('Versions') }}
12 | {% for slug, url in versions %} 13 |
{{ slug }}
14 | {% endfor %} 15 |
16 |
17 |
{{ _('Downloads') }}
18 | {% for type, url in downloads %} 19 |
{{ type }}
20 | {% endfor %} 21 |
22 |
23 | {# Translators: The phrase "Read the Docs" is not translated #} 24 |
{{ _('On Read the Docs') }}
25 |
26 | {{ _('Project Home') }} 27 |
28 |
29 | {{ _('Builds') }} 30 |
31 |
32 |
33 |
34 | {% endif %} 35 | -------------------------------------------------------------------------------- /docs/source/ag.rst: -------------------------------------------------------------------------------- 1 | .. _ag: 2 | 3 | Administrator's Guide 4 | ##################### 5 | 6 | .. toctree:: 7 | :maxdepth: 3 8 | :caption: Table of Contents 9 | 10 | ag_configuration 11 | -------------------------------------------------------------------------------- /docs/source/ag_configuration.rst: -------------------------------------------------------------------------------- 1 | .. ag_configuration: 2 | 3 | Configuration 4 | ************* 5 | 6 | Optionally, configure this role. See the playbook `.configure.yml` 7 | -------------------------------------------------------------------------------- /docs/source/annotation.rst: -------------------------------------------------------------------------------- 1 | .. _as: 2 | 3 | Annotated source code 4 | ********************* 5 | 6 | .. toctree:: 7 | 8 | annotation-tasks 9 | annotation-handlers 10 | annotation-templates 11 | -------------------------------------------------------------------------------- /docs/source/copyright.rst: -------------------------------------------------------------------------------- 1 | Copyright 2 | ********* 3 | 4 | Redistribution and use in source (RST DocUtils) and 'compiled' forms (XML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met: 5 | 6 | Redistributions of source code (RST Docutils) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified. 7 | 8 | Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | Important: THIS DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROVIDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /docs/source/debug-sshd-example.rst: -------------------------------------------------------------------------------- 1 | .. code-block:: sh 2 | :emphasize-lines: 1 3 | :linenos: 4 | 5 | shell> ansible-playbook playbook.yml -t fp_sshd_debug -e fp_sshd_debug=true 6 | 7 | PLAY [test_14.example.com] ******************************************************************* 8 | 9 | TASK [Gathering Facts] *********************************************************************** 10 | ok: [test_14.example.com] 11 | 12 | TASK [vbotka.freebsd_postinstall : sshd: Debug (fp_sshd_debug=true)] ************************* 13 | ok: [test_14.example.com] => 14 | msg: |- 15 | fp_sshd_bin: /usr/sbin/sshd 16 | fp_sshd_conf_file: /etc/ssh/sshd_config 17 | fp_sshd_conf: 18 | - {key: PasswordAuthentication, value: 'no'} 19 | - {key: ChallengeResponseAuthentication, value: 'no'} 20 | - {key: PermitRootLogin, value: 'no'} 21 | - {key: PermitTunnel, value: 'no'} 22 | - {key: AllowTcpForwarding, value: 'yes'} 23 | - {key: X11Forwarding, value: 'no'} 24 | - {key: UseBlacklist, value: 'yes'} 25 | 26 | PLAY RECAP *********************************************************************************** 27 | test_14.example.com: ok=2 changed=0 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0 28 | -------------------------------------------------------------------------------- /docs/source/dg.rst: -------------------------------------------------------------------------------- 1 | .. _dg: 2 | 3 | Developer's Guide 4 | ################# 5 | 6 | TBD 7 | -------------------------------------------------------------------------------- /docs/source/guide-best-practice.rst: -------------------------------------------------------------------------------- 1 | 2 | .. _ug_bp: 3 | 4 | Best practice 5 | ============= 6 | 7 | Test the syntax. 8 | 9 | .. code-block:: console 10 | :emphasize-lines: 1 11 | 12 | shell> ansible-playbook playbook.yml --syntax-check 13 | 14 | See what variables will be included. 15 | 16 | .. code-block:: console 17 | :emphasize-lines: 1 18 | 19 | shell> ansible-playbook playbook.yml -t fp_debug -e fp_debug=true 20 | 21 | Install packages. Run this task separately if the installation takes too long. Then, disable the 22 | installation to speedup the play. 23 | 24 | .. code-block:: console 25 | :emphasize-lines: 1 26 | 27 | shell> ansible-playbook playbook.yml -t fp_packages -e fp_install=true 28 | 29 | :index:`Dry-run` and display changes. 30 | 31 | .. code-block:: console 32 | :emphasize-lines: 1 33 | 34 | shell> ansible-playbook playbook.yml --check --diff 35 | 36 | Run the playbook. 37 | 38 | .. code-block:: console 39 | :emphasize-lines: 1 40 | 41 | shell> ansible-playbook playbook.yml -e fp_install=false 42 | 43 | Test the :index:`idempotency`. The role and the configuration data shall be idempotent. There should 44 | be no changes reported by *ansible-playbook* when the playbook is run repeatedly. Disable the debug 45 | output, and the installation of packages or ports to speedup the playbook. 46 | 47 | .. code-block:: console 48 | :emphasize-lines: 1 49 | 50 | shell> ansible-playbook playbook.yml -e fp_install=false 51 | -------------------------------------------------------------------------------- /docs/source/guide-devel.rst: -------------------------------------------------------------------------------- 1 | Development and testing 2 | ======================= 3 | 4 | In order to deliver an Ansible project, it's necessary to test the code and configuration. The tags 5 | provide the administrators with a tool to test groups of tasks. For example, to test a group of 6 | tasks at single remote host *test_01*, create the playbook. 7 | 8 | .. code-block:: sh 9 | :emphasize-lines: 1 10 | 11 | shell> cat playbook.yml 12 | - hosts: test_01 13 | roles: 14 | - vbotka.freebsd_postinstall 15 | 16 | Customize configuration in ``host_vars/test_01/fp-*.yml`` and :index:`check the syntax` 17 | 18 | .. code-block:: console 19 | :emphasize-lines: 1 20 | 21 | shell> ansible-playbook playbook.yml --syntax-check 22 | 23 | Then :index:`dry-run` the selected group of tasks and see what will be changed. Replace with 24 | valid tag or with a comma-separated list of tags. 25 | 26 | .. code-block:: console 27 | :emphasize-lines: 1 28 | 29 | shell> ansible-playbook playbook.yml -t --check --diff 30 | 31 | When all seems to be ready, run the command. Run the command twice and make sure the playbook and 32 | the configuration is :index:`idempotent`. 33 | 34 | .. code-block:: console 35 | :emphasize-lines: 1 36 | 37 | shell> ansible-playbook playbook.yml -t 38 | -------------------------------------------------------------------------------- /docs/source/guide-examples-ex1.rst: -------------------------------------------------------------------------------- 1 | .. _ug_task_task1_ex1: 2 | 3 | Example 1: Configure ... 4 | ------------------------ 5 | 6 | Create a playbook 7 | 8 | .. code-block:: yaml 9 | :emphasize-lines: 1 10 | 11 | shell> cat playbook.yml 12 | - hosts: test_01 13 | become: true 14 | roles: 15 | - vbotka.freebsd_postinstall 16 | 17 | Create *host_vars/test_01/XY-task1.yml* 18 | 19 | .. code-block:: yaml 20 | :emphasize-lines: 1,3 21 | 22 | shell> cat host_vars/test_01/XY-task1.yml 23 | XY_task1: true 24 | ... 25 | 26 | .. note:: 27 | * When ... 28 | * See ... 29 | 30 | 31 | Configure ... 32 | 33 | .. code-block:: sh 34 | :emphasize-lines: 1 35 | 36 | shell> ansible-playbook playbook.yml -t XY_task1 37 | 38 | TASK [vbotka.freebsd_postinstall : task1: Configure ...] ** 39 | ok: [test_01] => (...) 40 | 41 | The command is idempotent 42 | 43 | .. code-block:: sh 44 | :emphasize-lines: 1 45 | 46 | shell> ansible-playbook playbook.yml -t XY_task1 47 | ... 48 | PLAY RECAP ****************************************************************** 49 | test_01: ok=6 changed=0 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 50 | -------------------------------------------------------------------------------- /docs/source/guide-examples-ex2.rst: -------------------------------------------------------------------------------- 1 | .. _ug_task_task2_ex2: 2 | 3 | Example 2: Configure ... 4 | ------------------------ 5 | 6 | Create a playbook 7 | 8 | .. code-block:: yaml 9 | :emphasize-lines: 1 10 | 11 | shell> cat playbook.yml 12 | - hosts: test_01 13 | become: true 14 | roles: 15 | - vbotka.freebsd_postinstall 16 | 17 | Create *host_vars/test_01/XY-task1.yml* 18 | 19 | .. code-block:: yaml 20 | :emphasize-lines: 1,3 21 | 22 | shell> cat host_vars/test_01/XY-task1.yml 23 | XY_task1: true 24 | ... 25 | 26 | .. note:: 27 | * When ... 28 | * See ... 29 | 30 | 31 | Configure ... 32 | 33 | .. code-block:: sh 34 | :emphasize-lines: 1 35 | 36 | shell> ansible-playbook playbook.yml -t XY_task1 37 | 38 | TASK [vbotka.freebsd_postinstall : task1: Configure ...] ** 39 | ok: [test_01] => (...) 40 | 41 | The command is idempotent 42 | 43 | .. code-block:: sh 44 | :emphasize-lines: 1 45 | 46 | shell> ansible-playbook playbook.yml -t XY_task1 47 | ... 48 | PLAY RECAP ****************************************************************** 49 | test_01: ok=6 changed=0 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 50 | -------------------------------------------------------------------------------- /docs/source/guide-examples.rst: -------------------------------------------------------------------------------- 1 | Examples 2 | ======== 3 | 4 | .. toctree:: 5 | :caption: Table of Contents 6 | 7 | guide-examples-ex1.rst 8 | guide-examples-ex2.rst 9 | -------------------------------------------------------------------------------- /docs/source/guide-firstboot.rst: -------------------------------------------------------------------------------- 1 | .. _ug_firstboot: 2 | 3 | Firstboot configuration 4 | ======================= 5 | 6 | Configure hostname, users, sudoers, network and reboot 7 | 8 | .. code-block:: console 9 | :emphasize-lines: 1 10 | 11 | shell> ansible-playbook playbook.yml -t fp_hostname, ... 12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/source/guide-playbook.rst: -------------------------------------------------------------------------------- 1 | .. _ug_playbook: 2 | 3 | Playbook 4 | ======== 5 | 6 | Create ``playbook.yml`` that calls this role (9) at a single host, for example, *test_14.example.com* (1) 7 | 8 | .. code-block:: yaml 9 | :linenos: 10 | :emphasize-lines: 1,9 11 | 12 | - hosts: test_14.example.com 13 | gather_facts: true 14 | connection: ssh 15 | remote_user: admin 16 | become: true 17 | become_user: root 18 | become_method: sudo 19 | roles: 20 | - vbotka.freebsd_postinstall 21 | 22 | .. note:: 23 | 24 | Enable ``gather_facts: true`` (2). See `Discovering variables`_. The 25 | discovered variables are needed to customize the role. Consider 26 | `Cache Plugins`_ to speedup the play. 27 | 28 | .. seealso:: 29 | 30 | * For details see `Connection Plugins`_ (3-4) and 31 | * `Understanding Privilege Escalation`_ (5-7) 32 | 33 | .. _`Discovering variables`: https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_vars_facts.html 34 | .. _`Cache Plugins`: https://docs.ansible.com/ansible/2.9/plugins/cache.html?highlight=cache_plugin#cache-plugins 35 | .. _`Connection Plugins`: https://docs.ansible.com/ansible/latest/plugins/connection.html 36 | .. _`Understanding Privilege Escalation`: https://docs.ansible.com/ansible/latest/user_guide/become.html#understanding-privilege-escalation 37 | -------------------------------------------------------------------------------- /docs/source/guide-sanity.rst: -------------------------------------------------------------------------------- 1 | .. _ug_sanity: 2 | 3 | Sanity 4 | ====== 5 | 6 | By default, the checking of sanity is turned on :: 7 | 8 | fp_sanity: true 9 | fp_sanity_tags_fatal: true 10 | 11 | 12 | -------------------------------------------------------------------------------- /docs/source/guide-tasks.rst: -------------------------------------------------------------------------------- 1 | .. _ug_tasks: 2 | 3 | Tasks 4 | ===== 5 | 6 | The description of the tasks is not complete. The `role `_ and the documentation is work in progress. 7 | 8 | Feel free to `share your feedback and report issues `_. 9 | 10 | `Contributions are welcome `_. 11 | 12 | .. toctree:: 13 | :caption: Table of Contents 14 | :maxdepth: 1 15 | 16 | tasks-mount-img 17 | tasks-mount-iso 18 | tasks-packages 19 | tasks-passwords 20 | tasks-users 21 | 22 | .. seealso:: Source code :ref:`as_main.yml` 23 | -------------------------------------------------------------------------------- /docs/source/guide-variables.rst: -------------------------------------------------------------------------------- 1 | .. _ug_vars: 2 | 3 | Variables 4 | --------- 5 | 6 | The default variables are stored in the file ``defaults/main`` 7 | (precedence 2.). 8 | 9 | .. seealso:: 10 | 11 | * `Using Variables`_ 12 | * `Ansible variable precedence: Where should I put a variable?`_ 13 | * The examples of the customization ``vars/samples`` 14 | 15 | .. _ug_vars_defaults: 16 | .. include:: vars-defaults.rst 17 | 18 | .. _`Using Variables`: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#using-variables 19 | .. _`Ansible variable precedence: Where should I put a variable?`: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable 20 | -------------------------------------------------------------------------------- /docs/source/guide.rst: -------------------------------------------------------------------------------- 1 | .. _ug: 2 | 3 | User's guide 4 | ************ 5 | 6 | .. toctree:: 7 | :maxdepth: 1 8 | 9 | guide-introduction 10 | guide-installation 11 | guide-playbook 12 | guide-tags 13 | guide-debug 14 | guide-sanity 15 | guide-tasks 16 | guide-rc 17 | guide-devel 18 | guide-examples 19 | guide-variables 20 | guide-best-practice 21 | guide-firstboot 22 | -------------------------------------------------------------------------------- /docs/source/legalnotice.rst: -------------------------------------------------------------------------------- 1 | Legal Notice 2 | ************ 3 | 4 | All product names, logos, and brands are property of their respective owners. 5 | -------------------------------------------------------------------------------- /docs/source/tasks-mount-img.rst: -------------------------------------------------------------------------------- 1 | Mount images *(mount-img)* 2 | -------------------------- 3 | 4 | Mount images. 5 | 6 | Example 7 | ^^^^^^^ 8 | 9 | Enable the mounting of images (2) and create the list of mount points (3). For example, 10 | 11 | .. code-block:: yaml 12 | :emphasize-lines: 2,3 13 | :linenos: 14 | 15 | shell> cat host_vars/build.example.com/fp-mount-img.yml 16 | fp_mount_img: true 17 | fp_mount_img_entries: 18 | - img: /export/img/FreeBSD-12.2-RELEASE-arm-armv7-CUBOX-HUMMINGBOARD.img 19 | mount: /usr/local/poudriere/jails/12arm7 20 | fstype: ufs 21 | partition: s2a 22 | 23 | 24 | Dry-run the tasks, display the variables, and display the changes :: 25 | 26 | shell> ansible-playbook playbook.yml -t fp_mount_img -e fp_mount_img_debug=true -CD 27 | 28 | If all seems to be right configure the vnode and mount the image :: 29 | 30 | shell> ansible-playbook playbook.yml -t fp_mount_img 31 | 32 | Log to the remote host, list memory disks (2) and related mount points (5) 33 | 34 | .. code-block:: sh 35 | :emphasize-lines: 2,5 36 | :linenos: 37 | 38 | shell> mdconfig -l -v 39 | md0 vnode 3072M /export/img/FreeBSD-12.2-RELEASE-arm-armv7-CUBOX-HUMMINGBOARD.img 40 | 41 | shell> df | grep arm 42 | /dev/md0s2a 5971064 4056912 1436472 74% /zroot/poudriere/jails/12arm7 43 | 44 | 45 | .. seealso:: 46 | 47 | * Annotated Source code :ref:`as_mount-img.yml` 48 | -------------------------------------------------------------------------------- /docs/source/tasks-mount-iso.rst: -------------------------------------------------------------------------------- 1 | Mount ISO *(mount-iso)* 2 | ----------------------- 3 | 4 | Mount ISO. 5 | 6 | Example 7 | ^^^^^^^ 8 | 9 | Enable the mounting of ISO images (2) and create the list of mount points (3). For example, 10 | 11 | .. code-block:: yaml 12 | :emphasize-lines: 2,3 13 | :linenos: 14 | 15 | shell> cat host_vars/build.example.com/fp-mount-iso.yml 16 | fp_mount_iso: true 17 | fp_mount_iso_entries: 18 | - iso: /export/img/FreeBSD/12.2/FreeBSD-12.2-RELEASE-amd64-disc1.iso 19 | mount: /export/distro/FreeBSD-12.1-RELEASE-amd64-disc1.iso 20 | 21 | Dry-run the tasks, display the variables, and display the changes :: 22 | 23 | shell> ansible-playbook playbook.yml -t fp_mount_iso -e fp_mount_iso_debug=true -CD 24 | 25 | If all seems to be right create the vnode and mount the ISO image :: 26 | 27 | shell> ansible-playbook playbook.yml -t fp_mount_iso 28 | 29 | Log to the remote host, list memory disks (2) and related mount points (5) 30 | 31 | .. code-block:: sh 32 | :emphasize-lines: 2,5 33 | :linenos: 34 | 35 | shell> mdconfig -l -v 36 | md0 vnode 868M /export/images/FreeBSD/12.2/FreeBSD-12.2-RELEASE-amd64-disc1.iso 37 | 38 | shell> df | grep iso 39 | /dev/md0 888380 888380 0 100% /export/distro/FreeBSD-12.2-RELEASE-amd64-disc1.iso 40 | 41 | .. seealso:: 42 | 43 | * Annotated Source code :ref:`as_mount-iso.yml` 44 | -------------------------------------------------------------------------------- /docs/source/tasks-users.rst: -------------------------------------------------------------------------------- 1 | Users *(users)* 2 | --------------- 3 | 4 | Manage users. 5 | 6 | Example 7 | ^^^^^^^ 8 | 9 | Enable management of users (3) and create list of the users (4). For 10 | example, 11 | 12 | .. code-block:: yaml 13 | :emphasize-lines: 3,4 14 | :linenos: 15 | 16 | shell> cat host_vars/build.example.com/fp-users.yml 17 | --- 18 | fp_users: true 19 | fp_users_conf: 20 | - name: admin 21 | shell: /bin/sh 22 | groups: [wheel] 23 | - name: responder 24 | shell: /usr/sbin/nologin 25 | - name: freebsd 26 | state: absent 27 | ... 28 | 29 | Dry-run the tasks, display the variables, and display the changes :: 30 | 31 | shell> ansible-playbook playbook.yml -t fp_users -e fp_users_debug=true -CD 32 | 33 | If all seems to be right, configure the users :: 34 | 35 | shell> ansible-playbook playbook.yml -t fp_users 36 | 37 | .. seealso:: 38 | 39 | * Annotated Source code :ref:`as_users.yml` 40 | -------------------------------------------------------------------------------- /docs/source/vars-defaults.rst: -------------------------------------------------------------------------------- 1 | Default variables 2 | ================= 3 | 4 | [`defaults/main `_] 5 | -------------------------------------------------------------------------------- /files/devd-action-manpic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Create an alias for NICs based on their MAC address 3 | # https://forums.FreeBSD.org/threads/how-to-associate-an-interface-name-with-its-mac.89337/post-613188 4 | PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/sbin:/usr/sbin 5 | export PATH 6 | IFMAP=/usr/local/etc/ifmap 7 | DEBUG=YES 8 | dev=$1 9 | mac=$(ifconfig "$dev" | grep ether | awk '{print $2;}') 10 | name=$(grep -i "^$mac" $IFMAP | awk '{print $2;}') 11 | if [ $DEBUG = "YES" ] 12 | then 13 | ( 14 | echo "$0: $(date)" 15 | echo " dev=$1" 16 | echo " mac=$mac" 17 | echo " name=$name" 18 | echo " ifconfig \"$dev\" name \"$name\"" 19 | echo "======" 20 | ) >>/tmp/ifmap.log 21 | else 22 | [ -n "$name" ] && ifconfig "$dev" name "$name" 23 | fi 24 | -------------------------------------------------------------------------------- /handlers/adjkerntz.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # update the local time CMOS clock and kernel machdep.adjkerntz 3 | # variable when timezone changes occur 4 | - name: Adjust CMOS # noqa: no-changed-when 5 | listen: adjust CMOS 6 | ansible.builtin.command: 7 | cmd: adjkerntz -a 8 | -------------------------------------------------------------------------------- /handlers/apcupsd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for apcupsd 4 | - name: Start apcupsd 5 | listen: start apcupsd 6 | vbotka.freebsd.service: 7 | script: apcupsd 8 | command: start 9 | 10 | - name: Stop apcupsd 11 | listen: stop apcupsd 12 | vbotka.freebsd.service: 13 | script: apcupsd 14 | command: stop 15 | 16 | - name: Restart apcupsd 17 | listen: restart apcupsd 18 | when: fp_apcupsd_enable | bool 19 | vbotka.freebsd.service: 20 | script: apcupsd 21 | command: restart 22 | 23 | - name: Reload apcupsd 24 | listen: reload apcupsd 25 | when: fp_apcupsd_enable | bool 26 | vbotka.freebsd.service: 27 | script: apcupsd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/devd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for devd 4 | - name: Start devd 5 | listen: start devd 6 | vbotka.freebsd.service: 7 | script: devd 8 | command: start 9 | 10 | - name: Stop devd 11 | listen: stop devd 12 | vbotka.freebsd.service: 13 | script: devd 14 | command: stop 15 | 16 | - name: Restart devd 17 | listen: restart devd 18 | when: fp_devd_enable | bool 19 | vbotka.freebsd.service: 20 | script: devd 21 | command: restart 22 | 23 | - name: Reload devd 24 | listen: reload devd 25 | when: fp_devd_enable | bool 26 | vbotka.freebsd.service: 27 | script: devd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/devfs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for devfs 4 | - name: Start devfs 5 | listen: start devfs 6 | vbotka.freebsd.service: 7 | script: devfs 8 | command: start 9 | 10 | - name: Stop devfs 11 | listen: stop devfs 12 | vbotka.freebsd.service: 13 | script: devfs 14 | command: stop 15 | 16 | - name: Restart devfs 17 | listen: restart devfs 18 | when: fp_devfs_enable | bool 19 | vbotka.freebsd.service: 20 | script: devfs 21 | command: restart 22 | 23 | - name: Reload devfs 24 | listen: reload devfs 25 | when: fp_devfs_enable | bool 26 | vbotka.freebsd.service: 27 | script: devfs 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/dhclient.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Restart dhclient 3 | listen: restart dhclient 4 | ansible.builtin.service: 5 | name: dhclient 6 | state: restarted 7 | 8 | - name: Restart dhclient all # noqa: no-changed-when 9 | listen: restart dhclient all 10 | ansible.builtin.command: 11 | cmd: /etc/rc.d/dhclient restart {{ item }} 12 | loop: "{{ fp_dhclient_ifn }}" 13 | 14 | - name: Restart dhclient blocks # noqa: no-changed-when 15 | listen: restart dhclient blocks 16 | ansible.builtin.command: 17 | cmd: /etc/rc.d/dhclient restart {{ item }} 18 | loop: "{{ fp_dhclient_conf_changes.results | selectattr('changed') | map(attribute='item.ifn') | unique }}" 19 | -------------------------------------------------------------------------------- /handlers/fstab.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # fstab 3 | # - name: mount all 4 | # command: mount -a 5 | - name: Meta noop 6 | listen: meta noop 7 | ansible.builtin.meta: noop 8 | -------------------------------------------------------------------------------- /handlers/hostapd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for hostapd 4 | - name: Start hostapd 5 | listen: start hostapd 6 | vbotka.freebsd.service: 7 | script: hostapd 8 | command: start 9 | 10 | - name: Stop hostapd 11 | listen: stop hostapd 12 | vbotka.freebsd.service: 13 | script: hostapd 14 | command: stop 15 | 16 | - name: Restart hostapd 17 | listen: restart hostapd 18 | when: fp_hostapd_enable | bool 19 | vbotka.freebsd.service: 20 | script: hostapd 21 | command: restart 22 | 23 | - name: Reload hostapd 24 | listen: reload hostapd 25 | when: fp_hostapd_enable | bool 26 | vbotka.freebsd.service: 27 | script: hostapd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/hostname.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Set hostname # noqa: no-changed-when 3 | listen: set hostname 4 | ansible.builtin.command: 5 | cmd: hostname {{ rc_conf_hostname }} 6 | -------------------------------------------------------------------------------- /handlers/inetd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for inetd 4 | - name: Start inetd 5 | listen: start inetd 6 | vbotka.freebsd.service: 7 | script: inetd 8 | command: start 9 | 10 | - name: Stop inetd 11 | listen: stop inetd 12 | vbotka.freebsd.service: 13 | script: inetd 14 | command: stop 15 | 16 | - name: Restart inetd 17 | listen: restart inetd 18 | when: fp_inetd_enable | bool 19 | vbotka.freebsd.service: 20 | script: inetd 21 | command: restart 22 | 23 | - name: Reload inetd 24 | listen: reload inetd 25 | when: fp_inetd_enable | bool 26 | vbotka.freebsd.service: 27 | script: inetd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/lockd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for lockd 4 | - name: Start lockd 5 | listen: start lockd 6 | vbotka.freebsd.service: 7 | script: lockd 8 | command: start 9 | 10 | - name: Stop lockd 11 | listen: stop lockd 12 | vbotka.freebsd.service: 13 | script: lockd 14 | command: stop 15 | 16 | - name: Restart lockd 17 | listen: restart lockd 18 | when: fp_lockd_enable | bool 19 | vbotka.freebsd.service: 20 | script: lockd 21 | command: restart 22 | 23 | - name: Reload lockd 24 | listen: reload lockd 25 | when: fp_lockd_enable | bool 26 | vbotka.freebsd.service: 27 | script: lockd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/login.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Rebuild login_conf # noqa: no-changed-when 3 | listen: rebuild login_conf 4 | ansible.builtin.command: 5 | cmd: /usr/bin/cap_mkdb /etc/login.conf 6 | -------------------------------------------------------------------------------- /handlers/messages.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Loader message reboot 3 | listen: loader message reboot 4 | ansible.builtin.debug: 5 | msg: "[MESSAGE] Reboot to activate configuration in /boot/loader.conf" 6 | 7 | # TODO: Optionally reboot and wait_for 8 | # EOF 9 | -------------------------------------------------------------------------------- /handlers/mountd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for mountd 4 | - name: Start mountd 5 | listen: start mountd 6 | vbotka.freebsd.service: 7 | script: mountd 8 | command: start 9 | 10 | - name: Stop mountd 11 | listen: stop mountd 12 | vbotka.freebsd.service: 13 | script: mountd 14 | command: stop 15 | 16 | - name: Restart mountd 17 | listen: restart mountd 18 | when: fp_mountd_enable | bool 19 | vbotka.freebsd.service: 20 | script: mountd 21 | command: restart 22 | 23 | - name: Reload mountd 24 | listen: reload mountd 25 | when: fp_mountd_enable | bool 26 | vbotka.freebsd.service: 27 | script: mountd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/newaliases.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Newaliases # noqa: no-changed-when 3 | listen: newaliases 4 | ansible.builtin.command: 5 | cmd: /usr/bin/newaliases 6 | -------------------------------------------------------------------------------- /handlers/newsyslog.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create newsyslog # noqa: no-changed-when 3 | listen: create newsyslog 4 | ansible.builtin.command: newsyslog -C 5 | 6 | - name: Create all newsyslog # noqa: no-changed-when 7 | listen: create all newsyslog 8 | ansible.builtin.command: newsyslog -CC 9 | -------------------------------------------------------------------------------- /handlers/nfsclient.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for nfsclient 4 | - name: Start nfsclient 5 | listen: start nfsclient 6 | vbotka.freebsd.service: 7 | script: nfsclient 8 | command: start 9 | 10 | - name: Stop nfsclient 11 | listen: stop nfsclient 12 | vbotka.freebsd.service: 13 | script: nfsclient 14 | command: stop 15 | 16 | - name: Restart nfsclient 17 | listen: restart nfsclient 18 | when: fp_nfs_enable | bool 19 | vbotka.freebsd.service: 20 | script: nfsclient 21 | command: restart 22 | 23 | - name: Reload nfsclient 24 | listen: reload nfsclient 25 | when: fp_nfs_enable | bool 26 | vbotka.freebsd.service: 27 | script: nfsclient 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/nfsd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for nfsd 4 | - name: Start nfsd 5 | listen: start nfsd 6 | vbotka.freebsd.service: 7 | script: nfsd 8 | command: start 9 | 10 | - name: Stop nfsd 11 | listen: stop nfsd 12 | vbotka.freebsd.service: 13 | script: nfsd 14 | command: stop 15 | 16 | - name: Restart nfsd 17 | listen: restart nfsd 18 | when: fp_nfsd_enable | bool 19 | vbotka.freebsd.service: 20 | script: nfsd 21 | command: restart 22 | 23 | - name: Reload nfsd 24 | listen: reload nfsd 25 | when: fp_nfsd_enable | bool 26 | vbotka.freebsd.service: 27 | script: nfsd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/ntpd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for ntpd 4 | - name: Start ntpd 5 | listen: start ntpd 6 | vbotka.freebsd.service: 7 | script: ntpd 8 | command: start 9 | 10 | - name: Stop ntpd 11 | listen: stop ntpd 12 | vbotka.freebsd.service: 13 | script: ntpd 14 | command: stop 15 | 16 | - name: Restart ntpd 17 | listen: restart ntpd 18 | when: fp_ntpd_enable | bool 19 | vbotka.freebsd.service: 20 | script: ntpd 21 | command: restart 22 | 23 | - name: Reload ntpd 24 | listen: reload ntpd 25 | when: fp_ntpd_enable | bool 26 | vbotka.freebsd.service: 27 | script: ntpd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/ntpdate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for ntpdate 4 | - name: Start ntpdate 5 | listen: start ntpdate 6 | vbotka.freebsd.service: 7 | script: ntpdate 8 | command: start 9 | 10 | - name: Stop ntpdate 11 | listen: stop ntpdate 12 | vbotka.freebsd.service: 13 | script: ntpdate 14 | command: stop 15 | 16 | - name: Restart ntpdate 17 | listen: restart ntpdate 18 | when: fp_ntpdate_enable | bool 19 | vbotka.freebsd.service: 20 | script: ntpdate 21 | command: restart 22 | 23 | - name: Reload ntpdate 24 | listen: reload ntpdate 25 | when: fp_ntpdate_enable | bool 26 | vbotka.freebsd.service: 27 | script: ntpdate 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/qemu.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for qemu 4 | - name: Start qemu 5 | listen: start qemu 6 | vbotka.freebsd.service: 7 | script: qemu 8 | command: start 9 | 10 | - name: Stop qemu 11 | listen: stop qemu 12 | vbotka.freebsd.service: 13 | script: qemu 14 | command: stop 15 | 16 | - name: Restart qemu 17 | listen: restart qemu 18 | when: fp_qemu_enable | bool 19 | vbotka.freebsd.service: 20 | script: qemu 21 | command: restart 22 | 23 | - name: Reload qemu 24 | listen: reload qemu 25 | when: fp_qemu_enable | bool 26 | vbotka.freebsd.service: 27 | script: qemu 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/qemu_user_static.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for qemu_user_static 4 | - name: Start qemu_user_static 5 | listen: start qemu_user_static 6 | vbotka.freebsd.service: 7 | script: qemu_user_static 8 | command: start 9 | 10 | - name: Stop qemu_user_static 11 | listen: stop qemu_user_static 12 | vbotka.freebsd.service: 13 | script: qemu_user_static 14 | command: stop 15 | 16 | - name: Restart qemu_user_static 17 | listen: restart qemu_user_static 18 | when: fp_qemu_user_static_enable | bool 19 | vbotka.freebsd.service: 20 | script: qemu_user_static 21 | command: restart 22 | 23 | - name: Reload qemu_user_static 24 | listen: reload qemu_user_static 25 | when: fp_qemu_user_static_enable | bool 26 | vbotka.freebsd.service: 27 | script: qemu_user_static 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/resolvconf.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Resolvconf apply # noqa: no-changed-when 3 | listen: resolvconf apply 4 | ansible.builtin.command: 5 | cmd: resolvconf -u 6 | -------------------------------------------------------------------------------- /handlers/rpcbind.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for rpcbind 4 | - name: Start rpcbind 5 | listen: start rpcbind 6 | vbotka.freebsd.service: 7 | script: rpcbind 8 | command: start 9 | 10 | - name: Stop rpcbind 11 | listen: stop rpcbind 12 | vbotka.freebsd.service: 13 | script: rpcbind 14 | command: stop 15 | 16 | - name: Restart rpcbind 17 | listen: restart rpcbind 18 | when: fp_rpcbind_enable | bool 19 | vbotka.freebsd.service: 20 | script: rpcbind 21 | command: restart 22 | 23 | - name: Reload rpcbind 24 | listen: reload rpcbind 25 | when: fp_rpcbind_enable | bool 26 | vbotka.freebsd.service: 27 | script: rpcbind 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/smartd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for smartd 4 | - name: Start smartd 5 | listen: start smartd 6 | vbotka.freebsd.service: 7 | script: smartd 8 | command: start 9 | 10 | - name: Stop smartd 11 | listen: stop smartd 12 | vbotka.freebsd.service: 13 | script: smartd 14 | command: stop 15 | 16 | - name: Restart smartd 17 | listen: restart smartd 18 | when: fp_smartd_enable | bool 19 | vbotka.freebsd.service: 20 | script: smartd 21 | command: restart 22 | 23 | - name: Reload smartd 24 | listen: reload smartd 25 | when: fp_smartd_enable | bool 26 | vbotka.freebsd.service: 27 | script: smartd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/snmpd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for snmpd 4 | - name: Start snmpd 5 | listen: start snmpd 6 | vbotka.freebsd.service: 7 | script: snmpd 8 | command: start 9 | 10 | - name: Stop snmpd 11 | listen: stop snmpd 12 | vbotka.freebsd.service: 13 | script: snmpd 14 | command: stop 15 | 16 | - name: Restart snmpd 17 | listen: restart snmpd 18 | when: fp_snmpd_enable | bool 19 | vbotka.freebsd.service: 20 | script: snmpd 21 | command: restart 22 | 23 | - name: Reload snmpd 24 | listen: reload snmpd 25 | when: fp_snmpd_enable | bool 26 | vbotka.freebsd.service: 27 | script: snmpd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/sshd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for sshd 4 | - name: Start sshd 5 | listen: start sshd 6 | vbotka.freebsd.service: 7 | script: sshd 8 | command: start 9 | 10 | - name: Stop sshd 11 | listen: stop sshd 12 | vbotka.freebsd.service: 13 | script: sshd 14 | command: stop 15 | 16 | - name: Restart sshd 17 | listen: restart sshd 18 | when: fp_sshd_enable | bool 19 | vbotka.freebsd.service: 20 | script: sshd 21 | command: restart 22 | 23 | - name: Reload sshd 24 | listen: reload sshd 25 | when: fp_sshd_enable | bool 26 | vbotka.freebsd.service: 27 | script: sshd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/statd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for statd 4 | - name: Start statd 5 | listen: start statd 6 | vbotka.freebsd.service: 7 | script: statd 8 | command: start 9 | 10 | - name: Stop statd 11 | listen: stop statd 12 | vbotka.freebsd.service: 13 | script: statd 14 | command: stop 15 | 16 | - name: Restart statd 17 | listen: restart statd 18 | when: fp_statd_enable | bool 19 | vbotka.freebsd.service: 20 | script: statd 21 | command: restart 22 | 23 | - name: Reload statd 24 | listen: reload statd 25 | when: fp_statd_enable | bool 26 | vbotka.freebsd.service: 27 | script: statd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/sysctl.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for sysctl 4 | - name: Reload sysctl 5 | listen: reload sysctl 6 | vbotka.freebsd.service: 7 | script: sysctl 8 | command: reload 9 | 10 | # EOF 11 | -------------------------------------------------------------------------------- /handlers/syslogd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Generated by .configure.yml 3 | # Handlers for syslogd 4 | - name: Start syslogd 5 | listen: start syslogd 6 | vbotka.freebsd.service: 7 | script: syslogd 8 | command: start 9 | 10 | - name: Stop syslogd 11 | listen: stop syslogd 12 | vbotka.freebsd.service: 13 | script: syslogd 14 | command: stop 15 | 16 | - name: Restart syslogd 17 | listen: restart syslogd 18 | when: fp_syslogd_enable | bool 19 | vbotka.freebsd.service: 20 | script: syslogd 21 | command: restart 22 | 23 | - name: Reload syslogd 24 | listen: reload syslogd 25 | when: fp_syslogd_enable | bool 26 | vbotka.freebsd.service: 27 | script: syslogd 28 | command: reload 29 | 30 | # EOF 31 | -------------------------------------------------------------------------------- /handlers/wpasupplicant.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Restart netif 3 | listen: restart netif 4 | ansible.builtin.service: 5 | name: netif 6 | state: restarted 7 | 8 | - name: Reconfigure wpa_supplicant 9 | listen: reconfigure wpa_supplicant 10 | when: item.changed 11 | ansible.builtin.shell: # noqa: no-changed-when 12 | cmd: > 13 | [ -S {{ fp_wpasupplicant_conf_ctrl_interface }}/{{ item.item.dev }} ] && 14 | wpa_cli -p {{ fp_wpasupplicant_conf_ctrl_interface }} -i {{ item.item.dev }} reconfigure || 15 | exit 0 16 | loop: "{{ fp_wpa_supplicant_conf_changes }}" 17 | 18 | # TODO: Wait for OK result. Error: 'RECONFIGURE' command timed out. 19 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | namespace: vbotka 4 | role_name: freebsd_postinstall 5 | author: Vladimir Botka 6 | description: Postinstallation configuration of FreeBSD. 7 | company: https://botka.info 8 | github_branch: master 9 | license: BSD 10 | min_ansible_version: "2.18" 11 | platforms: 12 | - name: FreeBSD 13 | versions: 14 | - 13.4 15 | - 13.5 16 | - 14.1 17 | - 14.2 18 | galaxy_tags: 19 | - freebsd 20 | - ups 21 | - cron 22 | - fstab 23 | - hostapd 24 | - hosts 25 | - libmap 26 | - loader 27 | - make 28 | - nfs 29 | - ntp 30 | - procmail 31 | - smart 32 | - sudo 33 | - ssh 34 | - swap 35 | - sysctl 36 | - timezone 37 | - users 38 | - packages 39 | dependencies: [] 40 | collections: 41 | - ansible.posix 42 | - ansible.utils 43 | - community.general 44 | - vbotka.freebsd 45 | -------------------------------------------------------------------------------- /tasks/aliases.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Aliases: Configure {{ fp_aliases_conf_file }}" 3 | notify: newaliases 4 | ansible.builtin.lineinfile: 5 | dest: "{{ fp_aliases_conf_file }}" 6 | regexp: ^\s*{{ item.alias }}:(.*)$ 7 | line: "{{ item.alias }}: {{ item.user }}" 8 | backup: "{{ fp_backup }}" 9 | loop: "{{ fp_aliases_conf }}" 10 | 11 | # EOF 12 | -------------------------------------------------------------------------------- /tasks/apcupsd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Configure apcupsd 3 | tags: fp_apcupsd_conf 4 | block: 5 | 6 | - name: "Apcupsd: Create directory {{ fp_apcupsd_conf_dir }}" 7 | ansible.builtin.file: 8 | state: directory 9 | path: "{{ fp_apcupsd_conf_dir }}" 10 | mode: "{{ fp_apcupsd_conf_dir_mode }}" 11 | 12 | - name: "Apcupsd: Configure apcupsd.conf" 13 | notify: restart apcupsd 14 | ansible.builtin.template: 15 | src: apcupsd.conf.j2 16 | dest: "{{ fp_apcupsd_conf_file }}" 17 | owner: "{{ fp_apcupsd_conf_owner }}" 18 | group: "{{ fp_apcupsd_conf_group }}" 19 | mode: "{{ fp_apcupsd_conf_mode }}" 20 | backup: "{{ fp_backup }}" 21 | 22 | - name: "Apcupsd: Configure rc.conf" 23 | tags: fp_apcupsd_rcconf 24 | vars: 25 | _service: apcupsd 26 | ansible.builtin.import_tasks: fn/rcconf.yml 27 | 28 | # EOF 29 | -------------------------------------------------------------------------------- /tasks/cloud-providers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Import cloud-providers/digitalocean.yml 3 | when: digitalocean | bool 4 | tags: fp_do 5 | ansible.builtin.import_tasks: cloud-providers/digitalocean.yml 6 | 7 | # EOF 8 | -------------------------------------------------------------------------------- /tasks/copy/unarch-default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Copy:unarch-default: Debug default archive exists fp_copy_debug={{ fp_copy_debug }}" 3 | when: fp_copy_debug | bool 4 | vars: 5 | mypath: "{{ fp_copy_dir }}/{{ fp_copy_arch_default }}" 6 | mystat: "{{ mypath is exists }}" 7 | ansible.builtin.debug: 8 | msg: "Archive {{ mypath }} exists: {{ mystat }}" 9 | 10 | - name: "Copy:unarch-default: Extract default archive {{ fp_copy_dir ~ '/' ~ fp_copy_arch_default }}" 11 | when: mypath is exists 12 | vars: 13 | mypath: "{{ fp_copy_dir }}/{{ fp_copy_arch_default }}" 14 | environment: "{{ fp_environment.crypto | d(fp_environment.default) }}" 15 | ansible.builtin.unarchive: 16 | src: "{{ fp_copy_dir }}/{{ fp_copy_arch_default }}" 17 | dest: / 18 | keep_newer: "{{ fp_unarchive_keep_newer }}" 19 | 20 | # EOF 21 | -------------------------------------------------------------------------------- /tasks/copy/unarch-optional.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Copy:unarch-optional: Debug optional archive exists fp_copy_debug={{ fp_copy_debug }}" 3 | when: fp_copy_debug | bool 4 | vars: 5 | mypath: "{{ fp_copy_dir }}/{{ fp_copy_arch_optional }}" 6 | mystat: "{{ mypath is exists }}" 7 | ansible.builtin.debug: 8 | msg: "Archive {{ mypath }} exists: {{ mystat }}" 9 | 10 | - name: "Copy:unarch-optional: Extract optional archive {{ fp_copy_dir ~ '/' ~ fp_copy_arch_optional }}" 11 | when: mypath is exists 12 | vars: 13 | mypath: "{{ fp_copy_dir }}/{{ fp_copy_arch_optional }}" 14 | environment: "{{ fp_environment.crypto | d(fp_environment.default) }}" 15 | ansible.builtin.unarchive: 16 | src: "{{ fp_copy_dir }}/{{ fp_copy_arch_optional }}" 17 | dest: / 18 | keep_newer: "{{ fp_unarchive_keep_newer }}" 19 | 20 | # EOF 21 | -------------------------------------------------------------------------------- /tasks/fn/cron-rename-entry.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Cron-rename-entry: Stat {{ fp_cron_dir ~ '/' ~ item.user }}" 3 | register: result 4 | ansible.builtin.stat: 5 | path: "{{ fp_cron_dir }}/{{ item.user }}" 6 | 7 | - name: "Cron-rename-entry: Rename present crontab entry" 8 | when: result.stat.exists 9 | ansible.builtin.replace: 10 | path: "{{ fp_cron_dir }}/{{ item.user }}" 11 | regexp: ^\s*#\s*{{ item.name }}$ 12 | replace: "#Ansible: {{ item.name }}" 13 | backup: "{{ fp_backup }}" 14 | 15 | # EOF 16 | -------------------------------------------------------------------------------- /tasks/fn/mdconfig-attach-disk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Mdconfig-attach-disk: Attach memory disk" 3 | vars: 4 | al_mdconfig_file: "{{ item[_fp_mount_task] }}" # noqa: var-naming[no-role-prefix] 5 | ansible.builtin.include_role: 6 | name: vbotka.ansible_lib 7 | tasks_from: al_mdconfig.yml 8 | 9 | # EOF 10 | -------------------------------------------------------------------------------- /tasks/fn/mdconfig-detach-disk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Mdconfig-detach-disk: Detach memory disk" 3 | vars: 4 | al_mdconfig_file: "{{ item[_fp_mount_task] }}" # noqa: var-naming[no-role-prefix] 5 | al_mdconfig_state: absent 6 | ansible.builtin.include_role: 7 | name: vbotka.ansible_lib 8 | tasks_from: al_mdconfig.yml 9 | 10 | # EOF 11 | -------------------------------------------------------------------------------- /tasks/fn/rcconf-item.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "{{ oi.label }}" 3 | community.general.sysrc: 4 | path: "{{ oi.dest | d('/etc/rc.conf') }}" 5 | name: "{{ item.key }}" 6 | value: "{{ item.value | d(omit) }}" 7 | state: "{{ item.state | d(omit) }}" 8 | delim: "{{ item.delim | d(omit) }}" 9 | loop: "{{ oi.conf }}" 10 | notify: "{{ oi.notify }}" 11 | 12 | # EOF 13 | -------------------------------------------------------------------------------- /tasks/fstab.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Fstab: Configure fstab entries by mount" 3 | ansible.posix.mount: 4 | name: "{{ item.name }}" 5 | src: "{{ item.src }}" 6 | fstype: "{{ item.fstype }}" 7 | opts: "{{ item.opts }}" 8 | dump: "{{ item.dump | d('0') }}" 9 | passno: "{{ item.passno | d('0') }}" 10 | state: "{{ item.state | d('mounted') }}" 11 | backup: "{{ fp_backup }}" 12 | loop: "{{ fp_fstab_entries | rejectattr('fstype', 'in', fp_fstab_fstype_blacklist) }}" 13 | 14 | - name: "Fstab: Configure fstab swap entries." 15 | notify: mount swap 16 | ansible.builtin.lineinfile: 17 | path: /etc/fstab 18 | regexp: ^\s*{{ item.src }}\s+(.*)$ 19 | line: "{{ item.src }} none swap {{ item.opts }} 0 0" 20 | state: "{{ item.state | d('present') }}" 21 | backup: "{{ fp_backup }}" 22 | loop: "{{ fp_fstab_entries | selectattr('fstype', 'eq', 'swap') }}" 23 | 24 | # NOTE: 25 | # The module ansible.posix.mount do not mount swap 26 | # SEE: 27 | # * Add support for swap management #106 28 | # https://github.com/ansible-collections/ansible.posix/issues/106 29 | # * New module swap: manage ... swap partitions #49455 30 | # https://github.com/ansible/ansible/pull/49455 31 | 32 | # EOF 33 | -------------------------------------------------------------------------------- /tasks/gitserver.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Gitserver: Add group {{ fp_gitserver_group }}" 3 | tags: fp_gitserver_group 4 | ansible.builtin.group: 5 | name: "{{ fp_gitserver_group }}" 6 | gid: "{{ fp_gitserver_group_gid | d(omit) }}" 7 | 8 | - name: "Gitserver: Add user {{ fp_gitserver_owner }}" 9 | tags: fp_gitserver_owner 10 | ansible.builtin.user: 11 | name: "{{ fp_gitserver_owner }}" 12 | uid: "{{ fp_gitserver_owner_uid | d(omit) }}" 13 | shell: "{{ fp_gitserver_owner_shell | d(omit) }}" 14 | home: "{{ fp_gitserver_owner_home | d(omit) }}" 15 | 16 | - name: "Gitserver: Add user to group" 17 | tags: fp_gitserver_owner 18 | ansible.builtin.user: 19 | name: "{{ fp_gitserver_owner }}" 20 | groups: "{{ fp_gitserver_group }}" 21 | 22 | - name: "Gitserver: Set ownership and permissions of {{ fp_gitserver_dir }}" 23 | tags: fp_gitserver_dir 24 | ansible.builtin.file: 25 | state: directory 26 | path: "{{ fp_gitserver_dir }}" 27 | owner: "{{ fp_gitserver_owner }}" 28 | group: "{{ fp_gitserver_group }}" 29 | mode: "{{ fp_gitserver_dir_mode }}" 30 | 31 | # TODO: How do I Setup up a Multi-User Git Server 32 | # https://forums.freebsd.org/threads/how-do-i-setup-up-a-multi-user-git-server.50969/ 33 | 34 | # EOF 35 | -------------------------------------------------------------------------------- /tasks/groups.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Groups: Debug fp_groups_debug={{ fp_groups_debug }}" 3 | when: fp_groups_debug | bool 4 | tags: fp_groups_debug 5 | vars: 6 | msg: |- 7 | fp_groups_conf: 8 | {{ fp_groups_conf | to_nice_yaml(indent=2) | indent(2) }} 9 | ansible.builtin.debug: 10 | msg: "{{ '{}'.format(msg) }}" 11 | 12 | - name: "Groups: Manage groups" 13 | tags: fp_groups_conf 14 | ansible.builtin.group: 15 | name: "{{ item.name }}" 16 | gid: "{{ item.gid | d(omit) }}" 17 | local: "{{ item.local | d(omit) }}" 18 | state: "{{ item.state | d(omit) }}" 19 | system: "{{ item.system | d(omit) }}" 20 | loop: "{{ fp_groups_conf }}" 21 | 22 | # EOF 23 | -------------------------------------------------------------------------------- /tasks/hostapd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Hostapd: Configure {{ fp_hostapd_conf_file }}" 3 | notify: restart hostapd 4 | tags: fp_hostapd_conf 5 | ansible.builtin.template: 6 | src: "{{ fp_hostapd_conf_template }}" 7 | dest: "{{ fp_hostapd_conf_file }}" 8 | owner: "{{ fp_hostapd_conf_owner }}" 9 | group: "{{ fp_hostapd_conf_group }}" 10 | mode: "{{ fp_hostapd_conf_mode }}" 11 | backup: "{{ fp_backup }}" 12 | 13 | - name: "Hostapd: Configure rc.conf" 14 | tags: fp_hostapd_rcconf 15 | vars: 16 | _service: hostapd 17 | ansible.builtin.import_tasks: fn/rcconf.yml 18 | 19 | # EOF 20 | -------------------------------------------------------------------------------- /tasks/hostname.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Hostname: Configure hostname in {{ _path }}" 3 | vars: 4 | _path: "{{ fp_rcconfd | bool | ternary(fp_rcconfd_path.hostname, '/etc/rc.conf') }}" 5 | notify: set hostname 6 | community.general.sysrc: 7 | path: "{{ _path }}" 8 | name: "{{ item.key }}" 9 | value: "{{ item.value | d(omit) }}" 10 | state: "{{ item.state | d(omit) }}" 11 | loop: "{{ fp_hostname_rcconf }}" 12 | 13 | # EOF 14 | -------------------------------------------------------------------------------- /tasks/libmap.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Libmap: Configure {{ fp_libmap_conf_file }}" 3 | ansible.builtin.lineinfile: 4 | dest: "{{ fp_libmap_conf_file }}" 5 | regexp: ^\s*{{ item.origin }}\s+(.*)$ 6 | line: "{{ item.origin }} {{ item.target }}" 7 | backup: "{{ fp_backup }}" 8 | loop: "{{ fp_libmap_entries }}" 9 | 10 | # TODO: includedir /usr/local/etc/libmap.d 11 | 12 | # EOF 13 | -------------------------------------------------------------------------------- /tasks/login.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Login: Create {{ fp_login_conf_file }}" 3 | when: fp_login_conf_global | bool 4 | notify: rebuild login_conf 5 | ansible.builtin.template: 6 | src: "{{ fp_login_conf_template }}" 7 | dest: "{{ fp_login_conf_file }}" 8 | owner: root 9 | group: wheel 10 | mode: "0644" 11 | backup: "{{ fp_backup }}" 12 | 13 | - name: "Login: Create local .login_conf" 14 | ansible.builtin.template: 15 | src: "{{ fp_login_conf_template_local }}" 16 | dest: /home/{{ item.user }}/.login_conf 17 | owner: "{{ item.user }}" 18 | group: "{{ item.group | d(item.user) }}" 19 | mode: "0644" 20 | backup: "{{ fp_backup }}" 21 | loop: "{{ fp_login_conf_local }}" 22 | loop_control: 23 | label: "{{ item.user }}" 24 | 25 | # EOF 26 | -------------------------------------------------------------------------------- /tasks/make.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Make: Debug fp_make_debug={{ fp_make_debug }}" 3 | when: fp_make_debug | bool 4 | tags: fp_make_debug 5 | vars: 6 | msg: |- 7 | fp_make_conf_template: {{ fp_make_conf_template }} 8 | fp_make_conf_file: {{ fp_make_conf_file }} 9 | fp_make_conf_owner: {{ fp_make_conf_owner }} 10 | fp_make_conf_group: {{ fp_make_conf_group }} 11 | fp_make_conf_mode: {{ fp_make_conf_mode }} 12 | fp_make_conf: 13 | {{ fp_make_conf | to_nice_yaml(indent=2) | indent(2) }} 14 | ansible.builtin.debug: 15 | msg: "{{ '{}'.format(msg) }}" 16 | 17 | - name: "Make: Configure {{ fp_make_conf_file }}" 18 | tags: fp_make_conf 19 | ansible.builtin.template: 20 | src: "{{ fp_make_conf_template }}" 21 | dest: "{{ fp_make_conf_file }}" 22 | owner: "{{ fp_make_conf_owner }}" 23 | group: "{{ fp_make_conf_group }}" 24 | mode: "{{ fp_make_conf_mode }}" 25 | backup: "{{ fp_backup }}" 26 | 27 | # EOF 28 | -------------------------------------------------------------------------------- /tasks/motd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Motd: Configure /etc/motd" 3 | tags: fp_motd_create 4 | ansible.builtin.template: 5 | src: "{{ fp_motd_conf_template }}" 6 | dest: "{{ fp_motd_conf_file }}" 7 | mode: "{{ fp_motd_conf_mode }}" 8 | backup: "{{ fp_backup }}" 9 | 10 | - name: "Motd: Configure rc.conf" 11 | tags: fp_motd_rcconf 12 | vars: 13 | _rcconfd_path: "{{ fp_rcconfd_path[_service] }}" 14 | _path: "{{ fp_rcconfd | bool | ternary(_rcconfd_path, '/etc/rc.conf') }}" 15 | community.general.sysrc: 16 | path: "{{ _path }}" 17 | name: update_motd 18 | value: "{{ fp_motd_update | bool | ternary('YES', 'NO') }}" 19 | 20 | # EOF 21 | -------------------------------------------------------------------------------- /tasks/mount-img.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Mount-img: Debug fp_mount_img_debug={{ fp_mount_img_debug }}" 3 | when: fp_mount_img_debug | bool 4 | tags: fp_mount_img_debug 5 | vars: 6 | msg: |- 7 | fp_mount_img_points_create: {{ fp_mount_img_points_create }} 8 | fp_mount_img_entries: 9 | {{ fp_mount_img_entries | to_nice_yaml(indent=2) | indent(2) }} 10 | ansible.builtin.debug: 11 | msg: "{{ '{}'.format(msg) }}" 12 | 13 | - name: "Mount-img: Import mount-vnode.yml" 14 | vars: 15 | _fp_mount_task: img 16 | _fp_mount_fstype_default: ufs 17 | _fp_mount_points_create: "{{ fp_mount_img_points_create }}" 18 | _fp_mount_entries: "{{ fp_mount_img_entries }}" 19 | _fp_mount_debug: "{{ fp_mount_img_debug }}" 20 | ansible.builtin.import_tasks: mount-vnode.yml 21 | 22 | # EOF 23 | -------------------------------------------------------------------------------- /tasks/mount-iso.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Mount-iso: Debug fp_mount_iso_debug={{ fp_mount_iso_debug }}" 3 | when: fp_mount_iso_debug | bool 4 | tags: fp_mount_iso_debug 5 | vars: 6 | msg: |- 7 | fp_mount_iso_points_create: {{ fp_mount_iso_points_create }} 8 | fp_mount_iso_entries: 9 | {{ fp_mount_iso_entries | to_nice_yaml(indent=2) | indent(2) }} 10 | ansible.builtin.debug: 11 | msg: "{{ '{}'.format(msg) }}" 12 | 13 | - name: "Mount-iso: Import mount-vnode.yml" 14 | vars: 15 | _fp_mount_task: iso 16 | _fp_mount_fstype_default: cd9660 17 | _fp_mount_points_create: "{{ fp_mount_iso_points_create }}" 18 | _fp_mount_entries: "{{ fp_mount_iso_entries }}" 19 | _fp_mount_debug: "{{ fp_mount_iso_debug }}" 20 | ansible.builtin.import_tasks: mount-vnode.yml 21 | 22 | # EOF 23 | -------------------------------------------------------------------------------- /tasks/ntp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Ntp: Create /etc/ntp.conf from template" 3 | tags: fp_ntp_conf 4 | notify: restart ntpd 5 | ansible.builtin.template: 6 | src: "{{ fp_ntp_conf_template }}" 7 | dest: "{{ fp_ntp_conf_file }}" 8 | mode: "{{ fp_ntp_conf_mode }}" 9 | backup: "{{ fp_backup }}" 10 | 11 | - name: "Ntp: Configure rc.conf" 12 | tags: fp_ntp_rcconf 13 | vars: 14 | _service: ntpd 15 | ansible.builtin.import_tasks: fn/rcconf.yml 16 | 17 | # EOF 18 | -------------------------------------------------------------------------------- /tasks/ntpdate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Ntpdate: Configure rc.conf" 3 | tags: fp_ntpdate_rcconf 4 | vars: 5 | _service: ntpdate 6 | ansible.builtin.import_tasks: fn/rcconf.yml 7 | 8 | # EOF 9 | -------------------------------------------------------------------------------- /tasks/periodic.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Periodic: Debug fp_periodic_debug={{ fp_periodic_debug }}" 3 | when: fp_periodic_debug | bool 4 | tags: fp_periodic_debug 5 | vars: 6 | msg: |- 7 | fp_periodic_conf_local_file: {{ fp_periodic_conf_local_file }} 8 | fp_periodic_conf_local: 9 | {{ fp_periodic_conf_local | to_yaml(indent=2) | indent(2) }} 10 | ansible.builtin.debug: 11 | msg: "{{ '{}'.format(msg) }}" 12 | 13 | - name: "Periodic: Configure {{ fp_periodic_conf_local_file }}" 14 | tags: fp_periodic_conf_local 15 | ansible.builtin.lineinfile: 16 | create: true 17 | mode: "0644" 18 | dest: "{{ fp_periodic_conf_local_file }}" 19 | regexp: ^\s*{{ item.key }}\s*=(.*)$ 20 | line: '{{ item.key }}="{{ item.value }}"' 21 | backup: "{{ fp_backup }}" 22 | loop: "{{ fp_periodic_conf_local }}" 23 | 24 | # NOTES 25 | # 26 | # 13.10. Monitoring Third Party Security Issues 27 | # https://www.freebsd.org/doc/handbook/security-pkg.html 28 | # 29 | # Not Getting Security Reports 30 | # https://forums.freebsd.org/threads/not-getting-security-reports.21841/ 31 | # 32 | # Daily security scripts: best practice for jails? 33 | # https://forums.freebsd.org/threads/daily-security-scripts-best-practice-for-jails.55868/ 34 | 35 | # EOF 36 | -------------------------------------------------------------------------------- /tasks/qemu.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Qemu: Configure rc.conf" 3 | tags: fp_qemu_rcconf 4 | vars: 5 | _service: "{{ fp_qemu_service }}" 6 | ansible.builtin.import_tasks: fn/rcconf.yml 7 | 8 | # EOF 9 | -------------------------------------------------------------------------------- /tasks/sanity.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Sanity: Debug fp_sanity_debug={{ fp_sanity_debug }}" 3 | when: fp_sanity_debug | bool 4 | tags: fp_sanity_debug 5 | ansible.builtin.debug: 6 | msg: |- 7 | fp_sanity_quiet: {{ fp_sanity_quiet }} 8 | fp_sanity_tags_fatal: {{ fp_sanity_tags_fatal }} 9 | ansible_run_tags: 10 | {{ ansible_run_tags | to_yaml(indent=2) | indent(2) }} 11 | ansible_skip_tags: 12 | {{ ansible_skip_tags | to_yaml(indent=2) | indent(2) }} 13 | fp_sanity_tags: 14 | {{ fp_sanity_tags | to_yaml(indent=2) | indent(2) }} 15 | 16 | - name: Tags 17 | when: fp_sanity_tags_fatal | bool 18 | tags: fp_sanity_tags 19 | vars: 20 | _ansible_run_tags: "{{ ansible_run_tags | difference(['all']) }}" 21 | block: 22 | 23 | - name: "Sanity: Unknown run tags" 24 | when: _ansible_run_tags | length > 0 25 | vars: 26 | tags_unknown: "{{ _ansible_run_tags | difference(fp_sanity_tags) }}" 27 | ansible.builtin.assert: 28 | that: tags_unknown | length == 0 29 | quiet: "{{ fp_sanity_quiet }}" 30 | fail_msg: "[ERR] Unknown run tag(s): {{ tags_unknown }}" 31 | 32 | - name: "Sanity: Unknown skip tags" 33 | when: ansible_skip_tags | length > 0 34 | vars: 35 | tags_unknown: "{{ ansible_skip_tags | difference(fp_sanity_tags) }}" 36 | ansible.builtin.assert: 37 | that: tags_unknown | length == 0 38 | quiet: "{{ fp_sanity_quiet }}" 39 | fail_msg: "[ERR] Unknown skip tag(s): {{ tags_unknown }}" 40 | 41 | # EOF 42 | -------------------------------------------------------------------------------- /tasks/smartd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Configure smartd 3 | tags: fp_smartd_conf 4 | notify: reload smartd 5 | block: 6 | 7 | - name: "Smartd: Configure smartd.conf" 8 | ansible.builtin.lineinfile: 9 | dest: "{{ fp_smartd_conf_file }}" 10 | regexp: ^\s*DEVICESCAN(.*)$ 11 | state: absent 12 | backup: "{{ fp_backup }}" 13 | 14 | - name: "Smartd: Configure devices in {{ fp_smartd_conf_file }}" 15 | ansible.builtin.lineinfile: 16 | create: true 17 | dest: "{{ fp_smartd_conf_file }}" 18 | regexp: "{{ item.regexp }}" 19 | line: "{{ item.line }}" 20 | state: "{{ item.state | d(omit) }}" 21 | owner: "{{ fp_smartd_conf_owner }}" 22 | group: "{{ fp_smartd_conf_group }}" 23 | mode: "{{ fp_smartd_conf_mode }}" 24 | backup: "{{ fp_backup }}" 25 | loop: "{{ fp_smartd_devices }}" 26 | 27 | - name: "Smartd: Configure rc.conf" 28 | tags: fp_smartd_rcconf 29 | vars: 30 | _service: smartd 31 | ansible.builtin.import_tasks: fn/rcconf.yml 32 | 33 | # EOF 34 | -------------------------------------------------------------------------------- /tasks/snmpd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Configure /usr/local/etc/snmpd.conf 3 | tags: fp_snmpd_conf 4 | notify: restart snmpd 5 | block: 6 | 7 | - name: "Snmpd: Copy snmpd.conf.example to snmpd.conf if not exist" 8 | ansible.builtin.copy: 9 | force: false 10 | remote_src: true 11 | src: /usr/local/share/snmp/snmpd.conf.example 12 | dest: /usr/local/etc/snmpd.conf 13 | owner: root 14 | group: wheel 15 | mode: "0644" 16 | 17 | - name: "Snmpd: Configure /usr/local/etc/snmpd.conf" 18 | ansible.builtin.lineinfile: 19 | path: /usr/local/etc/snmpd.conf 20 | regexp: ^\s*{{ item.key }}\s*=(.*)$ 21 | line: "{{ item.key }} {{ item.value }}" 22 | state: "{{ item.state | d(omit) }}" 23 | backup: "{{ fp_backup }}" 24 | loop: "{{ fp_snmpd_conf }}" 25 | 26 | - name: "Snmpd: Configure rc.conf" 27 | tags: fp_snmpd_rcconf 28 | vars: 29 | _service: snmpd 30 | ansible.builtin.import_tasks: fn/rcconf.yml 31 | 32 | # EOF 33 | -------------------------------------------------------------------------------- /tasks/ssh.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Ssh: Debug fp_ssh_debug={{ fp_ssh_debug }}" 3 | when: fp_ssh_debug | bool 4 | tags: fp_ssh_debug 5 | vars: 6 | msg: |- 7 | fp_ssh_conf_file: {{ fp_ssh_conf_file }} 8 | fp_ssh_conf: 9 | {{ fp_ssh_conf | to_yaml(indent=2) | indent(2) }} 10 | ansible.builtin.debug: 11 | msg: "{{ '{}'.format(msg) }}" 12 | 13 | - name: "Ssh: Configure {{ fp_ssh_conf_file }}" 14 | tags: fp_ssh_config 15 | ansible.builtin.template: 16 | src: "{{ fp_ssh_conf_template }}" 17 | dest: "{{ fp_ssh_conf_file }}" 18 | owner: "{{ fp_ssh_conf_owner }}" 19 | group: "{{ fp_ssh_conf_group }}" 20 | mode: "{{ fp_ssh_conf_mode }}" 21 | backup: "{{ fp_backup }}" 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /tasks/sshd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Sshd: Debug fp_sshd_debug={{ fp_sshd_debug }}" 3 | when: fp_sshd_debug | bool 4 | tags: fp_sshd_debug 5 | vars: 6 | msg: |- 7 | fp_sshd_enable: {{ fp_sshd_enable }} 8 | fp_sshd_notify: {{ fp_sshd_notify }} 9 | fp_sshd_service_task: {{ fp_sshd_service_task }} 10 | 11 | fp_sshd_rcconf: 12 | {{ fp_sshd_rcconf | to_yaml(indent=2) | indent(2) }} 13 | fp_sshd_bin: {{ fp_sshd_bin }} 14 | fp_sshd_conf_file: {{ fp_sshd_conf_file }} 15 | fp_sshd_conf: 16 | {{ fp_sshd_conf | to_yaml(indent=2) | indent(2) }} 17 | ansible.builtin.debug: 18 | msg: "{{ '{}'.format(msg) }}" 19 | 20 | - name: "Sshd: Configure {{ fp_sshd_conf_file }}" 21 | tags: fp_sshd_config 22 | notify: reload sshd 23 | ansible.builtin.lineinfile: 24 | dest: "{{ fp_sshd_conf_file }}" 25 | regexp: ^\s*{{ item.key }}\s+(.*)$ 26 | insertbefore: ^\s*#\s*{{ item.key }} 27 | line: "{{ item.key }} {{ item.value }}" 28 | backup: "{{ fp_backup }}" 29 | validate: "{{ fp_sshd_bin }} -t -f %s" 30 | loop: "{{ fp_sshd_conf }}" 31 | 32 | - name: "Sshd: Configure rc.conf" 33 | tags: fp_sshd_rcconf 34 | vars: 35 | _service: sshd 36 | ansible.builtin.import_tasks: fn/rcconf.yml 37 | 38 | # EOF 39 | -------------------------------------------------------------------------------- /tasks/sudoers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Sudoers: Configure {{ fp_sudoers_conf_file }}" 3 | ansible.builtin.lineinfile: 4 | dest: "{{ fp_sudoers_conf_file }}" 5 | regexp: ^\s*{{ item.key }}\s+(.*)$ 6 | line: "{{ item.key }} {{ item.value }}" 7 | state: "{{ item.state | d(omit) }}" 8 | insertafter: EOF 9 | owner: "{{ fp_sudoers_conf_owner }}" 10 | group: "{{ fp_sudoers_conf_group }}" 11 | mode: "{{ fp_sudoers_conf_mode }}" 12 | backup: "{{ fp_backup }}" 13 | loop: "{{ fp_sudoers_conf }}" 14 | 15 | # TODO: 16 | # (1) configure /usr/local/etc/sudoers.d 17 | # (2) configure /usr/local/etc/sudoers.dist 18 | 19 | # EOF 20 | -------------------------------------------------------------------------------- /tasks/timezone.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Timezone: Debug fp_timezone_debug={{ fp_timezone_debug }}" 3 | when: fp_timezone_debug | bool 4 | tags: fp_timezone_debug 5 | ansible.builtin.debug: 6 | msg: |- 7 | fp_zoneinfo: {{ fp_zoneinfo }} 8 | 9 | - name: "Timezone: set timezone to {{ fp_zoneinfo }}" 10 | notify: adjust CMOS 11 | community.general.timezone: 12 | name: "{{ fp_zoneinfo }}" 13 | 14 | # EOF 15 | -------------------------------------------------------------------------------- /tasks/tmpmfs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Tmpmfs: Debug fp_tmpmfs_debug={{ fp_tmpmfs_debug }}" 3 | when: fp_tmpmfs_debug | bool 4 | tags: fp_tmpmfs_debug 5 | vars: 6 | msg: |- 7 | fp_tmpmfs_rcconf: 8 | {{ fp_tmpmfs_rcconf | to_yaml(indent=2) | indent(2) }} 9 | ansible.builtin.debug: 10 | msg: "{{ '{}'.format(msg) }}" 11 | 12 | - name: "Tmpmfs: Configure tmpmfs in {{ _path }}" 13 | vars: 14 | _rcconfd_path: "{{ fp_rcconfd_path[_service] }}" 15 | _path: "{{ fp_rcconfd | bool | ternary(_rcconfd_path, '/etc/rc.conf') }}" 16 | tags: fp_tmpmfs_rcconf 17 | community.general.sysrc: 18 | path: "{{ _path }}" 19 | name: "{{ item.name }}" 20 | value: "{{ item.value | d(omit) }}" 21 | state: "{{ item.state | d(omit) }}" 22 | loop: "{{ fp_tmpmfs_rcconf }}" 23 | 24 | # EOF 25 | -------------------------------------------------------------------------------- /tasks/vars.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get default versions 3 | when: fp_vars_default_versions | bool 4 | tags: fp_vars_default_versions 5 | block: 6 | 7 | - name: "Vars: Copy Makefile" 8 | ansible.builtin.copy: 9 | src: Makefile.default-versions 10 | dest: Makefile 11 | mode: "0644" 12 | 13 | - name: "Vars: Get default versions" 14 | register: result 15 | ansible.builtin.command: 16 | cmd: make default-versions 17 | changed_when: false 18 | 19 | - name: "Vars: Create dictionary pf_default_versions" 20 | ansible.builtin.set_fact: 21 | pf_default_versions: "{{ result.stdout | from_yaml }}" 22 | 23 | - name: "Vars: Debug default versions (fp_vars_debug={{ fp_vars_debug }})" 24 | when: fp_vars_debug | bool 25 | ansible.builtin.debug: 26 | var: pf_default_versions 27 | -------------------------------------------------------------------------------- /templates/apcupsd.conf.j2: -------------------------------------------------------------------------------- 1 | ## apcupsd.conf v1.1 ## 2 | # {{ ansible_managed }} 3 | UPSNAME {{ fp_apcupsd_upsname }} 4 | UPSCABLE {{ fp_apcupsd_upscable }} 5 | UPSTYPE {{ fp_apcupsd_upstype }} 6 | LOCKFILE {{ fp_apcupsd_lockfile }} 7 | SCRIPTDIR {{ fp_apcupsd_scriptdir }} 8 | PWRFAILDIR {{ fp_apcupsd_pwrfaildir }} 9 | NOLOGINDIR {{ fp_apcupsd_nologindir }} 10 | ONBATTERYDELAY {{ fp_apcupsd_onbatterydelay }} 11 | BATTERYLEVEL {{ fp_apcupsd_batterylevel }} 12 | MINUTES {{ fp_apcupsd_minutes }} 13 | TIMEOUT {{ fp_apcupsd_timeout }} 14 | ANNOY {{ fp_apcupsd_annoy }} 15 | ANNOYDELAY {{ fp_apcupsd_annoydelay }} 16 | NOLOGON {{ fp_apcupsd_nologon }} 17 | KILLDELAY {{ fp_apcupsd_killdelay }} 18 | NETSERVER {{ fp_apcupsd_netserver }} 19 | NISIP {{ fp_apcupsd_nisip }} 20 | NISPORT {{ fp_apcupsd_nisport }} 21 | EVENTSFILE {{ fp_apcupsd_eventsfile }} 22 | EVENTSFILEMAX {{ fp_apcupsd_eventsfilemax }} 23 | UPSCLASS {{ fp_apcupsd_upsclass }} 24 | UPSMODE {{ fp_apcupsd_upsmode }} 25 | STATTIME {{ fp_apcupsd_stattime }} 26 | STATFILE {{ fp_apcupsd_statfile }} 27 | LOGSTATS {{ fp_apcupsd_logstats }} 28 | -------------------------------------------------------------------------------- /templates/exports.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {% for item in fp_nfsd_exports %} 3 | {{ item.mount_point }} {{ item.flags }} 4 | {% endfor %} 5 | -------------------------------------------------------------------------------- /templates/groupadd.j2: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/bash 2 | exec {{ fp_group_add }} "$@" 3 | -------------------------------------------------------------------------------- /templates/groupdel.j2: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/bash 2 | exec {{ fp_group_del }} "$@" 3 | -------------------------------------------------------------------------------- /templates/groupmod.j2: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/bash 2 | exec {{ fp_group_mod }} "$@" 3 | -------------------------------------------------------------------------------- /templates/hostapd.conf.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | ssid={{ fp_hostapd_ssid }} 3 | interface={{ fp_hostapd_interface }} 4 | driver={{ fp_hostapd_driver }} 5 | ctrl_interface={{ fp_hostapd_ctrl_interface }} 6 | ctrl_interface_group={{ fp_hostapd_ctrl_interface_group }} 7 | hw_mode={{ fp_hostapd_hw_mode }} 8 | channel={{ fp_hostapd_channel }} 9 | beacon_int={{ fp_hostapd_beacon_int }} 10 | dtim_period={{ fp_hostapd_dtim_period }} 11 | max_num_sta={{ fp_hostapd_max_num_sta }} 12 | rts_threshold={{ fp_hostapd_rts_threshold }} 13 | fragm_threshold={{ fp_hostapd_fragm_threshold }} 14 | auth_algs={{ fp_hostapd_auth_algs }} 15 | ignore_broadcast_ssid={{ fp_hostapd_ignore_broadcast_ssid }} 16 | # 17 | wpa={{ fp_hostapd_wpa }} 18 | wpa_pairwise={{ fp_hostapd_wpa_pairwise }} 19 | wpa_key_mgmt={{ fp_hostapd_wpa_key_mgmt }} 20 | wpa_passphrase={{ fp_hostapd_wpa_passphrase }} 21 | # 22 | logger_syslog={{ fp_hostapd_logger_syslog }} 23 | logger_syslog_level={{ fp_hostapd_logger_syslog_level }} 24 | logger_stdout={{ fp_hostapd_logger_stdout }} 25 | logger_stdout_level={{ fp_hostapd_logger_stdout_level }} 26 | # 27 | ##### Integrated EAP server 28 | eap_server={{ fp_hostapd_eap_server }} 29 | #eap_user_file=/etc/hostapd.eap_user 30 | #ca_cert=/etc/hostapd.ca.pem 31 | #server_cert=/etc/hostapd.server.pem 32 | #private_key=/etc/hostapd.server.prv 33 | #private_key_passwd=secret passphrase 34 | #check_crl=1 35 | #dh_file=/etc/hostapd.dh.pem 36 | #eap_sim_db=unix:/tmp/hlr_auc_gw.sock 37 | #pac_opaque_encr_key=000102030405060708090a0b0c0d0e0f 38 | #eap_fast_a_id=test server 39 | #tnc=1 40 | -------------------------------------------------------------------------------- /templates/hosts-aliases-list.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {{ fp_hosts_localhost_ipv6 }} localhost localhost.{{ fp_domain }} 3 | {{ fp_hosts_localhost_ipv4 }} localhost localhost.{{ fp_domain }} 4 | 5 | {% for item in fp_hosts_conf %} 6 | {{ item.ip }} {{ item.fqdn }}{% for alias in item.aliases|default([]) %} {{ alias }}{% endfor %}{% if item.hostname|default('')|length > 0 %} {{ item.hostname }} 7 | {% endif %} 8 | {% endfor %} 9 | 10 | # EOF 11 | -------------------------------------------------------------------------------- /templates/hosts.allow-01.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {% for item in fp_inetd_hosts_allow_conf %} 3 | {% set v=item.values()|list %} 4 | {% if v|length == 2 %} 5 | {{ v[0]|join(' ') }} : {{ v[1]|join(' ') }} 6 | {% else %} 7 | {{ v[0]|join(' ') }} : {{ v[1]|join(' ') }} \ 8 | {% for vi in v[2:-1] %} 9 | : {{ vi|join(' ') }} \ 10 | {% endfor %} 11 | : {{ v[-1]|join(' ') }} 12 | {% endif %} 13 | {% endfor %} 14 | -------------------------------------------------------------------------------- /templates/hosts.allow-02.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {% for item in fp_inetd_hosts_allow_conf %} 3 | {{ item.daemons | join(' ') }} : \ 4 | {{ item.clients | join(' ') }} : \ 5 | {% if item.options is defined %} 6 | {{ item.options | join(' ') }} : \ 7 | {% endif %} 8 | {{ item.action | join(' ') }} 9 | {% endfor %} 10 | -------------------------------------------------------------------------------- /templates/hosts.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {{ fp_hosts_localhost_ipv6 }} localhost localhost.{{ fp_domain }} 3 | {{ fp_hosts_localhost_ipv4 }} localhost localhost.{{ fp_domain }} 4 | 5 | {% for item in fp_hosts_conf %} 6 | {{ item.ip }} {{ item.fqdn }} {{ item.hostname|default('') }} 7 | {% endfor %} 8 | 9 | # EOF 10 | -------------------------------------------------------------------------------- /templates/loader.conf.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | 3 | # fp_loader_conf 4 | {% for item in fp_loader_conf %} 5 | {{ item }} 6 | {% endfor %} 7 | {% for item in fp_sysctl_loader_conf %} 8 | {{ item }} 9 | {% endfor %} 10 | 11 | # fp_loader_conf_modules 12 | {% for item in fp_loader_conf_modules %} 13 | {{ item }}_load="YES" 14 | {% endfor %} 15 | 16 | # EOF 17 | -------------------------------------------------------------------------------- /templates/loader.conf2.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | 3 | # fp_loader_conf 4 | {% for item in fp_loader_conf %} 5 | {{ item.name }}={{ item.value }} 6 | {% endfor %} 7 | 8 | # fp_loader_conf_modules 9 | {% for item in fp_loader_conf_modules %} 10 | {{ item }}_load="YES" 11 | {% endfor %} 12 | 13 | # EOF 14 | -------------------------------------------------------------------------------- /templates/login.conf.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | 3 | # system classes 4 | {% for item in fp_login_conf %} 5 | {{ item.class }}:\ 6 | {% for citem in item.conf|flatten %} 7 | {{ '\t' }}:{{ citem }}:{% if not loop.last %}\{% endif %} 8 | 9 | {% endfor %} 10 | {% endfor %} 11 | 12 | # extra classes 13 | {% for item in fp_login_conf_extra %} 14 | {{ item.class }}:\ 15 | {% for citem in item.conf|flatten %} 16 | {{ '\t' }}:{{ citem }}:{% if not loop.last %}\{% endif %} 17 | 18 | {% endfor %} 19 | {% endfor %} 20 | 21 | # EOF 22 | -------------------------------------------------------------------------------- /templates/login_conf.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | 3 | {{ item.class }}:\ 4 | {% for citem in item.conf|flatten %} 5 | {{ '\t' }}:{{ citem }}:{% if not loop.last %}\{% endif %} 6 | 7 | {% endfor %} 8 | 9 | # EOF 10 | -------------------------------------------------------------------------------- /templates/make.conf.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {% for item in fp_make_conf %} 3 | {{ item }} 4 | {% endfor %} 5 | -------------------------------------------------------------------------------- /templates/motd.j2: -------------------------------------------------------------------------------- 1 | {{ fp_motd_message }} 2 | -------------------------------------------------------------------------------- /templates/newsyslog.conf.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {% set separator=' ' %} 3 | {% for k,v in fp_syslogd_newconf.items() %} 4 | {% if k == 'include' %} 5 | 6 | {% for i in v %} 7 | {{ i }} 8 | {% endfor %} 9 | {% else %} 10 | {{ k }} {{ v|join(separator) }} 11 | {% endif %} 12 | {% endfor %} 13 | -------------------------------------------------------------------------------- /templates/procmailrc-includerc-capability.j2: -------------------------------------------------------------------------------- 1 | # Subject: capability; Capability: Send list of capabilities 2 | :0i 3 | * !^Subject:.*Re: 4 | * !^FROM_DAEMON 5 | * ^Subject:.*capability 6 | | (/usr/local/bin/formail -r -A "From: {{ item.par1 }}"; \ 7 | grep -h -r "^# Subject.*Capability" {{ item.par2 }}/*.rc ) \ 8 | | $SENDMAIL -oi -t 9 | -------------------------------------------------------------------------------- /templates/procmailrc-includerc-duplicates.j2: -------------------------------------------------------------------------------- 1 | # get's rid of duplicates 2 | :0 Wh: msgid.lock 3 | | formail -D 8192 msgid.cache 4 | -------------------------------------------------------------------------------- /templates/procmailrc-includerc-get-certificate.j2: -------------------------------------------------------------------------------- 1 | # Subject: get certificate; Capability: Send fingerprint of certifcate 2 | :0i 3 | * !^Subject:.*Re: 4 | * !^FROM_DAEMON 5 | * ^Subject:.*get certificate 6 | | (/usr/local/bin/formail -r -A "From: {{ item.par1 }}"; {{ item.par2 }}) | $SENDMAIL -oi -t 7 | -------------------------------------------------------------------------------- /templates/procmailrc-includerc-get-fingerprint.j2: -------------------------------------------------------------------------------- 1 | # Subject: get fingerprint; Capability: Send fingerprint of /etc/ssh/ssh_host_ecdsa_key.pub 2 | :0i 3 | * !^Subject:.*Re: 4 | * !^FROM_DAEMON 5 | * ^Subject:.*get fingerprint 6 | | (/usr/local/bin/formail -r -A "From: {{ item.par1 }}"; \ 7 | ssh-keygen -l -f {{ item.par2 }}; \ 8 | ssh-keygen -l -E MD5 -f {{ item.par2 }}) \ 9 | | $SENDMAIL -oi -t 10 | -------------------------------------------------------------------------------- /templates/procmailrc-includerc-get-fingerprints.j2: -------------------------------------------------------------------------------- 1 | # Subject: get fingerprints; Capability: Send fingerprints of /etc/ssh/*.pub 2 | :0i 3 | * !^Subject:.*Re: 4 | * !^FROM_DAEMON 5 | * ^Subject:.*get fingerprints 6 | | (/usr/local/bin/formail -r -A "From: {{ item.par1 }}"; \ 7 | for i in /etc/ssh/*.pub; \ 8 | do printf "$i\n"; \ 9 | ssh-keygen -l -f $i; \ 10 | ssh-keygen -l -E MD5 -f $i; \ 11 | printf "\n"; done) \ 12 | | $SENDMAIL -oi -t 13 | -------------------------------------------------------------------------------- /templates/procmailrc-includerc-get-message.j2: -------------------------------------------------------------------------------- 1 | # Subject: get message; Capability: Send content of {{ item.par2 }} 2 | # 3 | # https://www.freebsd.org/cgi/man.cgi?query=procmailex 4 | # If someone sends you a mail with the word `retrieve' in the 5 | # subject, the following will automatically send back the contents 6 | # of info_file to the sender. Like in all recipes where we send 7 | # mail, we watch out for mail loops. 8 | # 9 | # :0 10 | # * !^From +YOUR_USERNAME 11 | # * !^Subject:.*Re: 12 | # * !^FROM_DAEMON 13 | # * ^Subject:.*retrieve 14 | # | (formail -r ; cat info_file) | $SENDMAIL -oi -t 15 | # 16 | 17 | :0i 18 | * !^Subject:.*Re: 19 | * !^FROM_DAEMON 20 | * ^Subject:.*get message 21 | | (/usr/local/bin/formail -r -A "From: {{ item.par1 }}"; cat {{ item.par2 }} ) | $SENDMAIL -oi -t 22 | -------------------------------------------------------------------------------- /templates/procmailrc.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {% for line in config %} 3 | {{ line }} 4 | {% endfor %} 5 | -------------------------------------------------------------------------------- /templates/ssh_config.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {% for item in fp_ssh_conf %} 3 | Host {{ item.host }} 4 | {% for conf in item.conf %} 5 | {{ conf.key }} {{ conf.val }} 6 | {% endfor %} 7 | {% endfor %} 8 | 9 | # EOF 10 | -------------------------------------------------------------------------------- /templates/syslog.conf.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {% for k,v in fp_syslogd_conf.items() %} 3 | {% if v is mapping %} 4 | {{ k }} 5 | {% for l,f in v.items() %} 6 | {{ f|join(';') }} {{ l }} 7 | {% endfor %} 8 | {% else %} 9 | {{ v|join(';') }} {{ k }} 10 | {% endif %} 11 | {% endfor %} 12 | -------------------------------------------------------------------------------- /templates/wpa_supplicant.conf.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | {% for gvar in fp_wpasupplicant_conf_global %} 3 | {{ gvar.key }}={{ gvar.value }} 4 | {% endfor %} 5 | {% for net in item.network %} 6 | {% for nvar in net.conf %} 7 | {% if loop.first %} 8 | 9 | network={ 10 | {% endif %} 11 | {{ nvar.key }}={{ nvar.value }} 12 | {% if loop.last %} 13 | } 14 | {% endif %} 15 | {% endfor %} 16 | {% endfor %} 17 | 18 | # EOF 19 | -------------------------------------------------------------------------------- /tests/.ansible-lint: -------------------------------------------------------------------------------- 1 | --- 2 | skip_list: [] 3 | -------------------------------------------------------------------------------- /tests/inventory: -------------------------------------------------------------------------------- 1 | localhost -------------------------------------------------------------------------------- /tests/requirements.yml: -------------------------------------------------------------------------------- 1 | --- 2 | roles: 3 | - name: vbotka.ansible_lib 4 | collections: 5 | - name: ansible.posix 6 | - name: community.general 7 | -------------------------------------------------------------------------------- /tests/test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Test 3 | hosts: localhost 4 | connection: local 5 | roles: 6 | - ansible-freebsd-postinstall 7 | -------------------------------------------------------------------------------- /vars/samples/aliases.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_aliases: true 2 | # fp_aliases_conf: 3 | # - {alias: root, user: admin@example.com} 4 | # - {alias: devel, user: admin@example.com} 5 | -------------------------------------------------------------------------------- /vars/samples/authorized-key.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_authorized_key: true 2 | # fp_authorized_key_install_exclusive: true 3 | # fp_authorized_key_install_individually: false 4 | # fp_authorized_key_conf: 5 | # - {user: admin, key: "{{ lookup('file', '~/.ansible/copy/ssh-pub-keys/devel-box1/id_rsa.pub') }}"} 6 | # - {user: admin, key: "{{ lookup('file', '~/.ansible/copy/ssh-pub-keys/devel-box2/id_rsa.pub') }}"} 7 | # - {user: admin, key: "{{ lookup('file', '~/.ansible/copy/ssh-pub-keys/devel-box3/id_rsa.pub') }}"} 8 | -------------------------------------------------------------------------------- /vars/samples/copy.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_copy: true 2 | 3 | # fp_synchronize_default: [] 4 | # fp_synchronize_archive: false 5 | # fp_synchronize_checksum: true 6 | # fp_unarchive_keep_newer: true 7 | -------------------------------------------------------------------------------- /vars/samples/cron.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_cron: true 2 | # fp_cron_var: 3 | # - {user: root, name: MAILTO, value: root} 4 | # fp_cron_tab: 5 | # - {state: present, 6 | # user: root, 7 | # name: rsnapshot hourly, 8 | # minute: "35", hour: "*/4", day: "*", month: "*", weekday: "*", 9 | # command: "/usr/local/bin/rsnapshot hourly"} 10 | # - {state: present, 11 | # user: root, 12 | # name: rsnapshot daily, 13 | # minute: "35", hour: "3", day: "*", month: "*", weekday: "*", 14 | # command: "/usr/local/bin/rsnapshot daily"} 15 | # - {state: present, 16 | # user: root, 17 | # name: rsnapshot weekly, 18 | # minute: "40", hour: "3", day: "*", month: "*", weekday: "1", 19 | # command: "/usr/local/bin/rsnapshot weekly"} 20 | # - {state: present, 21 | # user: root, 22 | # name: rsnapshot montly, 23 | # minute: "45", hour: "3", day: "1", month: "*", weekday: "*", 24 | # command: "/usr/local/bin/rsnapshot monthly"} 25 | -------------------------------------------------------------------------------- /vars/samples/devd.yml.sample: -------------------------------------------------------------------------------- 1 | --- 2 | fp_devd: true 3 | 4 | fp_devd_local_files: 5 | 6 | notify_ue0: | 7 | notify 0 { 8 | match "system" "IFNET"; 9 | match "subsystem" "ue0"; 10 | match "type" "ADDR_ADD"; 11 | action "echo $address > /var/db/devd.address.$subsystem"; 12 | }; 13 | 14 | # Create an alias for NICs based on their MAC address 15 | # https://forums.FreeBSD.org/threads/how-to-associate-an-interface-name-with-its-mac.89337/post-613188 16 | nicalias: | 17 | notify 100 { 18 | match "system" "IFNET"; 19 | match "type" "LINK_UP"; 20 | media-type "ethernet"; 21 | action "/usr/local/bin/mapnic $subsystem"; 22 | }; 23 | 24 | fp_devd_action_scripts: 25 | /usr/local/bin/mapnic: 26 | src: devd-action-manpic.sh 27 | mode: "0775" 28 | 29 | fp_devd_misc_files: 30 | /usr/local/etc/ifmap: 31 | content: | 32 | 40:86:cb:d2:53:90 eth0 33 | 3c:33:32:c7:20:19 eth1 34 | mode: "0664" 35 | -------------------------------------------------------------------------------- /vars/samples/freebsd-update.yml.sample: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Defaults for /etc/freebsd-update.yml 4 | -------------------------------------------------------------------------------- /vars/samples/fstab.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_fstab: true 2 | # fp_fstab_entries: 3 | # - {name: none, src: /dev/ada0p3, fstype: swap, opts: sw} 4 | # - {name: /export, src: /dev/ada0p5, fstype: ext2fs, opts: rw} 5 | # - {name: /proc, src: proc, fstype: procfs, opts: rw} 6 | # - {name: /dev/fd, src: fdesc, fstype: fdescfs, opts: rw} 7 | # - {name: /export/test, src: 'box9:/export/test', fstype: nfs, opts: rw, state: present} 8 | # - {name: /export/images, src: 'box9:/zroot/images', fstype: nfs, opts: 'ro,late', state: present} 9 | -------------------------------------------------------------------------------- /vars/samples/hosts.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_hosts: true 2 | # fp_hosts_conf_template: hosts-aliases-list.j2 3 | # fp_hosts_conf: 4 | # - {ip: "10.1.0.1", fqdn: "ac1.d3.example.com", hostname: "ac1"} 5 | # - {ip: "10.1.0.2", fqdn: "ac2.d3.example.com", hostname: "ac2"} 6 | # - {ip: "10.1.0.3", fqdn: "ac3.d3.example.com", hostname: "ac3"} 7 | # - {ip: "10.1.0.10", fqdn: "srv1.d3.example.com", hostname: "srv1"} 8 | # - {ip: "10.1.0.11", fqdn: "srv2.d3.example.com", hostname: "srv2"} 9 | # - {ip: "10.1.0.12", fqdn: "srv3.d3.example.com", hostname: "srv3", aliases: ["build", "www", "mail", "nagios"]} 10 | -------------------------------------------------------------------------------- /vars/samples/linux.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_linux: true 2 | # fp_linux_install: true 3 | # fp_linux_enable: true 4 | # fp_linux_debug: false 5 | # fp_linux_fstab: 6 | # - {name: /compat/linux/proc, src: linproc, fstype: linprocfs, opts: rw} 7 | # fp_linux_lib_dir: copy/linux-compat-lib 8 | # fp_linux_lib: 9 | # - {src: /lib/x86_64-linux-gnu/libpthread.so.0, link: libpthread.so.0} 10 | # - {src: /lib/x86_64-linux-gnu/libc.so.6, link: libc.so.6} 11 | -------------------------------------------------------------------------------- /vars/samples/loader.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_loader: true 2 | # fp_loader_conf_template_enable: true 3 | # fp_loader_load_modules: false 4 | # fp_loader_conf_modules: 5 | # - if_ath 6 | # - wlan_wep 7 | # - wlan_ccmp 8 | # - wlan_tkip 9 | # - pf 10 | # - geom_eli 11 | # fp_loader_conf: [] 12 | -------------------------------------------------------------------------------- /vars/samples/login.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_login: true 2 | # fp_login_conf_global: true 3 | # fp_login_conf_extra: 4 | # - class: insecure 5 | # conf: 6 | # - copyright=/etc/COPYRIGHT 7 | # - welcome=/etc/motd 8 | # - setenv=MAIL=/var/mail/$,BLOCKSIZE=K 9 | # - path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin 10 | # - manpath=/usr/share/man /usr/local/man 11 | # - nologin=/usr/sbin/nologin 12 | # - cputime=1h30m 13 | # - datasize=8M 14 | # - vmemoryuse=100M 15 | # - stacksize=2M 16 | # - memorylocked=4M 17 | # - memoryuse=8M 18 | # - filesize=8M 19 | # - coredumpsize=8M 20 | # - openfiles=24 21 | # - maxproc=32 22 | # - priority=0 23 | # - requirehome 24 | # - passwordtime=91d 25 | # - umask=022 26 | # - ignoretime@ 27 | # - label=biba/10(10-10) 28 | # fp_login_conf_local: 29 | # - user: admin 30 | # class: me 31 | # conf: 32 | # - "{{ fp_login_conf_iocage_locale }}" 33 | # - user: devel 34 | # class: me 35 | # conf: 36 | # - "{{ fp_login_conf_iocage_locale }}" 37 | # fp_login_conf_iocage_locale: 38 | # - charset=UTF-8 39 | # - lang=en_US.UTF-8 40 | # - setenv=LC_COLLATE=C 41 | -------------------------------------------------------------------------------- /vars/samples/main.yml.sample: -------------------------------------------------------------------------------- 1 | --- 2 | # vars for freebsd_postinstall 3 | 4 | # NOTES 5 | # 6 | # 1) gtar: Ansible module unarchive needs gtar. Ansible make use of the 7 | # tar argument --diff. OpenBSD and FreeBSD doesn't have an --diff, 8 | # -d, --compare option for tar. Without gtar unarchive always 9 | # extracts and reports as changed. 10 | # 11 | # 2) SEE: How do I generate crypted passwords for the user module? 12 | # http://docs.ansible.com/ansible/faq.html#how-do-i-generate-crypted-passwords-for-the-user-module 13 | # example: mkpasswd --method=SHA-512 PASSWORD -s SALT 14 | # SALT can be created with: pwgen -s 16 1 15 | # 16 | # 3) fp_sysctl configuration is stored in /etc/sysctl.conf. 17 | # Set state=absent to remove the item from /etc/sysctl.conf before 18 | # removing it from the list fp_sysctl. 19 | # fp_sysctl: 20 | # - {name: vfs.zfs.prefetch_disable, value: 0} 21 | # - {name: net.inet.ip.forwarding, value: 1} 22 | # - {name: security.jail.set_hostname_allowed, value: 1} 23 | # - {name: security.jail.param.path, value: 1024} 24 | # 25 | # 4) FreeBSD handbook: 15.7.1. Create an Insecure User Class 26 | # https://www.freebsd.org/doc/handbook/mac-implementing.html 27 | 28 | # EOF 29 | ... 30 | -------------------------------------------------------------------------------- /vars/samples/make.yml.sample: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # role: freebsd_postinstall 4 | # task: make.yml 5 | # creates: /etc/make.conf 6 | # Variables bsd_make_* in defaults/main/pkgdict_versions.yml 7 | 8 | fp_make: true 9 | fp_make_conf: 10 | - "OPTIONS_UNSET+=\t\t\tDOCS NLS X11 EXAMPLES" 11 | - "OPTIONS_UNSET+=\t\t\tGSSAPI_BASE KRB_BASE KERBEROS" 12 | - "OPTIONS_SET+=\t\t\tGSSAPI_NONE KRB_NONE" 13 | - "DEFAULT_VERSIONS+=\t\temacs=nox" 14 | - "DEFAULT_VERSIONS+=\t\tgcc={{ bsd_make_gcc_version }}" 15 | - "DEFAULT_VERSIONS+=\t\tmysql={{ bsd_make_mysql_version }}" 16 | - "DEFAULT_VERSIONS+=\t\tperl5={{ bsd_make_perl_version }}" 17 | - "DEFAULT_VERSIONS+=\t\tphp={{ bsd_make_php_version }}" 18 | - "DEFAULT_VERSIONS+=\t\tpython={{ bsd_make_python_version }}" 19 | - "DEFAULT_VERSIONS+=\t\tssl={{ bsd_make_ssl_version }}" 20 | 21 | # - "WRKDIRPREFIX=/var/ports 22 | # - "DISTDIR=/var/ports/distfiles 23 | # - "PACKAGES=/var/ports/packages 24 | # - "INDEXDIR=/var/ports 25 | -------------------------------------------------------------------------------- /vars/samples/motd.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_motd: true 2 | # fp_motd_message: "To get capabilities of the responder send email TO: responder@{{rc_conf_hostname}} SUBJECT: capability" 3 | # fp_update_motd: false 4 | -------------------------------------------------------------------------------- /vars/samples/mount-img.yml.sample: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/11b3a8519f3521a6d805a3fcafcace7f0b5dc614/vars/samples/mount-img.yml.sample -------------------------------------------------------------------------------- /vars/samples/mount-iso.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_mount_iso: true 2 | # fp_mount_iso_entries: 3 | # - iso: "/export/images/FreeBSD/12.1/FreeBSD-12.1-RELEASE-amd64-disc1.iso" 4 | # mount: "/export/distro/FreeBSD-12.1-RELEASE-amd64-disc1.iso" 5 | # state: mounted 6 | -------------------------------------------------------------------------------- /vars/samples/nfs.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_nfs: true 2 | # fp_nfs_enable: true 3 | -------------------------------------------------------------------------------- /vars/samples/nfsd.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_nfsd: true 2 | # fp_nfsd_enable: true 3 | # fp_nfs_server_flags: '-u -t -n 4' 4 | # fp_nfsv4_server_enable: 'YES' 5 | # fp_mountd_enable: true 6 | # fp_mountd_flags: '-r' 7 | # fp_rpcbind_enable: true 8 | # fp_rpc_lockd_enable: true 9 | # fp_rpc_statd_enable: true 10 | 11 | # fp_nfsd_exports: 12 | # - {mount_point: '/usr/ports/packages', flags: '10.132.0.3 10.132.0.4'} 13 | -------------------------------------------------------------------------------- /vars/samples/ntp.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_ntp: true 2 | # fp_ntp_enable: true 3 | -------------------------------------------------------------------------------- /vars/samples/ntpdate.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_ntpdate: true 2 | # fp_ntpdate_enable: "NO" 3 | # fp_ntpdate_flags: "-b" 4 | # fp_ntpd_sync_on_start: "YES" 5 | # fp_ntpdate_rcconf: 6 | # - {key: ntpdate_enable, value: "{{ fp_ntpdate_enable }}"} 7 | # - {key: ntpdate_flags, value: "{{ fp_ntpdate_flags }}"} 8 | # - {key: ntpd_sync_on_start, value: "{{ fp_ntpd_sync_on_start }}"} 9 | -------------------------------------------------------------------------------- /vars/samples/packages.yml.sample: -------------------------------------------------------------------------------- 1 | fp_install: false 2 | 3 | fp_packages: 4 | - {list: apache, enabled: true} 5 | - {list: apcups, enabled: "{{ fp_apcupsd_install }}"} 6 | - {list: bind, enabled: false} 7 | - {list: devel, enabled: false} 8 | - {list: dhcp, enabled: false} 9 | - {list: hostap, enabled: "{{ fp_hostapd_install }}"} 10 | - {list: integrity, enabled: true} 11 | - {list: jail, enabled: true} 12 | - {list: leutils, enabled: false} 13 | - {list: linux, enabled: "{{ fp_linux_install }}"} 14 | - {list: minimal, enabled: true} 15 | - {list: mysql, enabled: false} 16 | - {list: pip, enabled: enable} 17 | - {list: pf, enabled: false} 18 | - {list: postinstall, enabled: true} 19 | - {list: poudriere, enabled: true} 20 | - {list: procmail, enabled: "{{ fp_procmail_install }}"} 21 | - {list: python, enabled: true} 22 | - {list: qemu, enabled: "{{ fp_qemu_install }}"} 23 | - {list: qemu_user_static, enabled: "{{ fp_qemu_user_static_install }}"} 24 | - {list: smart, enabled: "{{ fp_smartd_install }}"} 25 | - {list: snmpd, enabled: "{{ fp_snmpd_install }}"} 26 | - {list: wpa_supplicant, enabled: "{{ fp_wpasupplicant_install }}"} 27 | 28 | fp_links: 29 | - target: "/usr/local/bin/python{{ bsd_make_python_version }}" 30 | link: /usr/local/bin/python 31 | - target: /usr/local/bin/bash 32 | link: /bin/bash 33 | -------------------------------------------------------------------------------- /vars/samples/passwords.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_passwords: true 2 | # fp_passwordstore: true 3 | # fp_passwordstore_hostname_var: ansible_hostname 4 | -------------------------------------------------------------------------------- /vars/samples/periodic.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_periodic: true 2 | # fp_periodic_conf_local: 3 | # - {key: daily_clean_hoststat_enable, value: "NO"} 4 | # - {key: daily_status_mail_rejects_enable, value: "NO"} 5 | # - {key: daily_status_include_submit_mailq, value: "NO"} 6 | # - {key: daily_submit_queuerun, value: "NO"} 7 | # - {key: daily_status_zfs_enable, value: "YES"} 8 | # - {key: daily_status_zfs_zpool_list_enable, value: "YES"} 9 | # - {key: daily_scrub_zfs_enable, value: "YES"} 10 | # - {key: daily_scrub_zfs_pools, value: "zroot"} 11 | # - {key: daily_scrub_zfs_default_threshold, value: "10"} 12 | # - {key: daily_scrub_zfs_prod_threshold, value: "7"} 13 | # - {key: daily_sa_enable, value: "NO"} 14 | # - {key: daily_sa_compile, value: "NO"} 15 | # - {key: daily_sa_compile_nice, value: "NO"} 16 | # - {key: daily_sa_restart_spamd, value: "NO"} 17 | -------------------------------------------------------------------------------- /vars/samples/procmail.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_procmail: true 2 | # fp_procmail_install: true 3 | # fp_procmail_verbose: "off" 4 | # fp_procmail_forwarders: 5 | # - user: responder 6 | # forward: "|exec {{ fp_procmail_bin }}" 7 | # fp_procmail_includerc: 8 | # - user: responder 9 | # template: duplicates 10 | # par1: "" 11 | # par2: "" 12 | # - user: responder 13 | # template: capability 14 | # par1: "responder@{{ rc_conf_hostname }}" 15 | # par2: "{{ fp_procmail_pmdir }}" 16 | # - user: responder 17 | # template: get-message 18 | # par1: "responder@{{ rc_conf_hostname }}" 19 | # par2: /home/responder/MESSAGE.procmail 20 | # - user: responder 21 | # template: get-fingerprints 22 | # par1: "responder@{{ rc_conf_hostname }}" 23 | # par2: "" 24 | # - user: responder 25 | # template: get-fingerprint 26 | # par1: "responder@{{ rc_conf_hostname }}" 27 | # par2: /etc/ssh/ssh_host_ecdsa_key.pub 28 | # - user: responder 29 | # template: get-certificate 30 | # par1: "responder@{{ rc_conf_hostname }}" 31 | # par2: cat /usr/local/etc/letsencrypt/FINGERPRINT 32 | -------------------------------------------------------------------------------- /vars/samples/qemu.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_qemu: true 2 | # fp_qemu_enable: true 3 | # fp_qemu_install: false # list of packages: qemu 4 | # fp_qemu_user_static_install: true # list of packages: qemu_user_static 5 | # fp_qemu_rcvar: qemu_user_static 6 | -------------------------------------------------------------------------------- /vars/samples/resolvconf.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_resolvconf: false 2 | # fp_resolvconf_conf: 3 | # - {key: resolvconf, value: "YES"} 4 | # - {key: name_servers, value: 192.168.1.1} 5 | -------------------------------------------------------------------------------- /vars/samples/smartd.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_smartd: true 2 | # fp_smartd_install: true 3 | # fp_smartd_enable: true 4 | # fp_smartd_devices: 5 | # - regexp: "^/dev/ada0" 6 | # line: "/dev/ada0 -a -o on -S on -s (S/../.././02|L/../../6/03) -m admin" 7 | # - regexp: "^/dev/ada1" 8 | # line: "/dev/ada1 -a -o on -S on -s (S/../.././02|L/../../6/03) -m admin" 9 | -------------------------------------------------------------------------------- /vars/samples/snmpd.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_snmpd: true 2 | # fp_snmpd_install: true 3 | # fp_snmpd_enable: true 4 | # fp_snmpd_conf: 5 | # - key: agentAddress 6 | # value: "udp:127.0.0.1:161,udp:10.1.0.12:161" 7 | -------------------------------------------------------------------------------- /vars/samples/ssh.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_ssh: true 2 | # ssh_Protocol: "2" 3 | # ssh_ForwardAgent: "no" 4 | # ssh_ForwardX11: "no" 5 | # ssh_HostbasedAuthentication: "no" 6 | # ssh_StrictHostKeyChecking: "no" 7 | # ssh_Ciphers: "aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc" 8 | # ssh_Tunnel: "no" 9 | # ssh_ServerAliveInterval: "420" 10 | # fp_ssh_conf: 11 | # - host: "*" 12 | # conf: 13 | # - {key: Protocol, val: "{{ ssh_Protocol }}"} 14 | # - {key: ForwardAgent, val: "{{ ssh_ForwardAgent }}"} 15 | # - {key: ForwardX11, val: "{{ ssh_ForwardX11 }}"} 16 | # - {key: HostbasedAuthentication, val: "{{ ssh_HostbasedAuthentication }}"} 17 | # - {key: StrictHostKeyChecking, val: "{{ ssh_StrictHostKeyChecking }}"} 18 | # - {key: Ciphers, val: "{{ ssh_Ciphers }}"} 19 | # - {key: Tunnel, val: "{{ ssh_Tunnel }}"} 20 | # - {key: ServerAliveInterval, val: "{{ ssh_ServerAliveInterval }}"} 21 | -------------------------------------------------------------------------------- /vars/samples/sshd.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_sshd: true 2 | # fp_sshd_enable: true 3 | # sshd_passwordauthentication: "no" 4 | # sshd_challengeresponseauthentication: "no" 5 | # sshd_permitrootlogin: "no" 6 | # sshd_permittunnel: "no" 7 | # sshd_allowtcpforwarding: "yes" 8 | # sshd_x11forwarding: "no" 9 | # fp_sshd_conf: 10 | # - {key: PasswordAuthentication, value: "{{ sshd_passwordauthentication }}"} 11 | # - {key: ChallengeResponseAuthentication, value: "{{ sshd_challengeresponseauthentication }}"} 12 | # - {key: PermitRootLogin, value: "{{ sshd_permitrootlogin }}"} 13 | # - {key: PermitTunnel, value: "{{ sshd_permittunnel }}"} 14 | # - {key: AllowTcpForwarding, value: "{{ sshd_allowtcpforwarding }}"} 15 | # - {key: X11Forwarding, value: "{{ sshd_x11forwarding }}"} 16 | # - {key: UseBlacklist, value: "yes"} 17 | -------------------------------------------------------------------------------- /vars/samples/sudoers.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_sudoers: true 2 | # fp_sudoers_conf: 3 | # - {key: asadmin, value: "ALL=(ALL) NOPASSWD: ALL"} 4 | # - {key: acadmin, value: "ALL=(ALL) NOPASSWD: ALL"} 5 | -------------------------------------------------------------------------------- /vars/samples/swap.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_swap: false 2 | # fp_swap_file: /usr/swap0 3 | # fp_swap_md: md99 4 | # fp_swap_size: 4096 5 | # fp_swap_stsize: "{{ fp_swap_size * 1024 * 1024 }}" 6 | # #fp_swap_stsize: "4294967296" 7 | -------------------------------------------------------------------------------- /vars/samples/sysctl.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_sysctl: true 2 | # fp_sysctl_conf: 3 | # - {name: kern.boot_tag, value: '"---<>---"'} 4 | # - {name: net.inet.ip.forwarding, value: 1} 5 | -------------------------------------------------------------------------------- /vars/samples/users.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_users: true 2 | # fp_users_conf: 3 | # - name: ansible 4 | # shell: /bin/sh 5 | # groups: [wheel] 6 | # - name: admin 7 | # shell: /usr/local/bin/bash 8 | # groups: [wheel] 9 | # - name: responder 10 | # shell: /usr/sbin/nologin 11 | # - name: freebsd 12 | # state: absent 13 | -------------------------------------------------------------------------------- /vars/samples/wpasupplicant.yml.sample: -------------------------------------------------------------------------------- 1 | # fp_wpasupplicant: true 2 | # fp_wpasupplicant_install: true 3 | # fp_wpasupplicant_debug: false 4 | # fp_wpasupplicant_backup: true 5 | # fp_wpasupplicant_conf_rc: true 6 | # fp_wpasupplicant_conf_file_link: wlan0 7 | # fp_wpasupplicant_program: /usr/local/sbin/wpa_supplicant 8 | # fp_wpasupplicant_conf_ctrl_interface: /var/run/wpa_supplicant 9 | # fp_wpasupplicant_conf_global: 10 | # - key: ctrl_interface 11 | # value: "{{ fp_wpasupplicant_conf_ctrl_interface }}" 12 | # - key: ctrl_interface_group 13 | # value: wheel 14 | # - key: eapol_version 15 | # value: "2" 16 | # - key: ap_scan 17 | # value: "1" 18 | # - key: fast_reauth 19 | # value: "1" 20 | # fp_wpasupplicant_conf: 21 | # - dev: wlan0 22 | # network: 23 | # - conf: 24 | # - {key: ssid, value: '"MY-AP1"'} 25 | # - {key: psk, value: '"MY-AP1-PSK"'} 26 | # - {key: key_mgmt, value: WPA-PSK} 27 | # - {key: pairwise, value: CCMP} 28 | --------------------------------------------------------------------------------