├── tests
├── inventory
├── .ansible-lint
├── requirements.yml
└── test.yml
├── vars
└── samples
│ ├── mount-img.yml.sample
│ ├── nfs.yml.sample
│ ├── ntp.yml.sample
│ ├── freebsd-update.yml.sample
│ ├── passwords.yml.sample
│ ├── aliases.yml.sample
│ ├── resolvconf.yml.sample
│ ├── sysctl.yml.sample
│ ├── copy.yml.sample
│ ├── sudoers.yml.sample
│ ├── motd.yml.sample
│ ├── snmpd.yml.sample
│ ├── swap.yml.sample
│ ├── qemu.yml.sample
│ ├── mount-iso.yml.sample
│ ├── users.yml.sample
│ ├── smartd.yml.sample
│ ├── ntpdate.yml.sample
│ ├── nfsd.yml.sample
│ ├── rcd.yml.sample
│ ├── loader.yml.sample
│ ├── linux.yml.sample
│ ├── authorized-key.yml.sample
│ ├── fstab.yml.sample
│ ├── hosts.yml.sample
│ ├── sshd.yml.sample
│ ├── periodic.yml.sample
│ ├── ssh.yml.sample
│ ├── make.yml.sample
│ ├── cron.yml.sample
│ ├── wpasupplicant.yml.sample
│ ├── devd.yml.sample
│ ├── procmail.yml.sample
│ ├── main.yml.sample
│ ├── login.yml.sample
│ └── packages.yml.sample
├── .ansible-lint
├── templates
├── motd.j2
├── groupadd.j2
├── groupdel.j2
├── groupmod.j2
├── procmailrc-includerc-duplicates.j2
├── procmailrc.j2
├── make.conf.j2
├── exports.j2
├── syslog.conf.client.j2
├── login_conf.j2
├── ssh_config.j2
├── procmailrc-includerc-get-certificate.j2
├── syslog.conf.j2
├── procmailrc-includerc-capability.j2
├── loader.conf2.j2
├── newsyslog.conf.j2
├── hosts.j2
├── hosts.allow-02.j2
├── loader.conf.j2
├── procmailrc-includerc-get-fingerprint.j2
├── procmailrc-includerc-get-fingerprints.j2
├── hosts.allow-01.j2
├── wpa_supplicant.conf.j2
├── hosts-aliases-list.j2
├── login.conf.j2
├── syslog-ng.conf.client.j2
├── procmailrc-includerc-get-message.j2
├── syslog-ng.conf.server.j2
├── apcupsd.conf.j2
└── syslog-ng.conf.sample.j2
├── changelog
├── changelog.yml
├── CHANGELOG.md
└── CHANGELOG-v2.8.rst
├── docs
├── source
│ ├── dg.rst
│ ├── legalnotice.rst
│ ├── _themes
│ │ ├── guzzle_sphinx_theme
│ │ │ ├── logo-text.html
│ │ │ ├── static
│ │ │ │ └── fonts
│ │ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ │ ├── open-sans
│ │ │ │ │ └── fonts
│ │ │ │ │ │ ├── OpenSans-Bold-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Bold-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-Bold-webfont.woff
│ │ │ │ │ │ ├── OpenSans-Italic-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Italic-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-Light-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Light-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-Light-webfont.woff
│ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.eot
│ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-Italic-webfont.woff
│ │ │ │ │ │ ├── OpenSans-Regular-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Regular-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-Regular-webfont.woff
│ │ │ │ │ │ ├── OpenSans-Semibold-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Semibold-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-Semibold-webfont.woff
│ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.eot
│ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.woff
│ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.woff
│ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.eot
│ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.woff
│ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.eot
│ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.eot
│ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.woff
│ │ │ │ │ │ └── OpenSans-SemiboldItalic-webfont.woff
│ │ │ │ │ └── source-serif-pro
│ │ │ │ │ ├── EOT
│ │ │ │ │ ├── SourceSerifPro-Black.eot
│ │ │ │ │ ├── SourceSerifPro-Bold.eot
│ │ │ │ │ ├── SourceSerifPro-Light.eot
│ │ │ │ │ ├── SourceSerifPro-Regular.eot
│ │ │ │ │ ├── SourceSerifPro-Semibold.eot
│ │ │ │ │ └── SourceSerifPro-ExtraLight.eot
│ │ │ │ │ ├── OTF
│ │ │ │ │ ├── SourceSerifPro-Black.otf
│ │ │ │ │ ├── SourceSerifPro-Bold.otf
│ │ │ │ │ ├── SourceSerifPro-Light.otf
│ │ │ │ │ ├── SourceSerifPro-Regular.otf
│ │ │ │ │ ├── SourceSerifPro-Semibold.otf
│ │ │ │ │ └── SourceSerifPro-ExtraLight.otf
│ │ │ │ │ ├── TTF
│ │ │ │ │ ├── SourceSerifPro-Black.ttf
│ │ │ │ │ ├── SourceSerifPro-Bold.ttf
│ │ │ │ │ ├── SourceSerifPro-Light.ttf
│ │ │ │ │ ├── SourceSerifPro-Regular.ttf
│ │ │ │ │ ├── SourceSerifPro-Semibold.ttf
│ │ │ │ │ └── SourceSerifPro-ExtraLight.ttf
│ │ │ │ │ ├── WOFF
│ │ │ │ │ ├── OTF
│ │ │ │ │ │ ├── SourceSerifPro-Black.otf.woff
│ │ │ │ │ │ ├── SourceSerifPro-Bold.otf.woff
│ │ │ │ │ │ ├── SourceSerifPro-Light.otf.woff
│ │ │ │ │ │ ├── SourceSerifPro-Regular.otf.woff
│ │ │ │ │ │ ├── SourceSerifPro-Semibold.otf.woff
│ │ │ │ │ │ └── SourceSerifPro-ExtraLight.otf.woff
│ │ │ │ │ └── TTF
│ │ │ │ │ │ ├── SourceSerifPro-Black.ttf.woff
│ │ │ │ │ │ ├── SourceSerifPro-Bold.ttf.woff
│ │ │ │ │ │ ├── SourceSerifPro-Light.ttf.woff
│ │ │ │ │ │ ├── SourceSerifPro-Regular.ttf.woff
│ │ │ │ │ │ ├── SourceSerifPro-Semibold.ttf.woff
│ │ │ │ │ │ └── SourceSerifPro-ExtraLight.ttf.woff
│ │ │ │ │ ├── bower.json
│ │ │ │ │ └── README.md
│ │ │ ├── localtoc.html
│ │ │ ├── globaltoc.html
│ │ │ ├── searchbox.html
│ │ │ ├── theme.conf
│ │ │ └── comments.html
│ │ └── sphinx_rtd_theme
│ │ │ ├── static
│ │ │ ├── fonts
│ │ │ │ ├── Lato-Bold.ttf
│ │ │ │ ├── FontAwesome.otf
│ │ │ │ ├── Lato-Regular.ttf
│ │ │ │ ├── RobotoSlab-Bold.ttf
│ │ │ │ ├── Inconsolata-Bold.ttf
│ │ │ │ ├── Inconsolata-Regular.ttf
│ │ │ │ ├── RobotoSlab-Regular.ttf
│ │ │ │ ├── fontawesome-webfont.eot
│ │ │ │ ├── fontawesome-webfont.ttf
│ │ │ │ ├── fontawesome-webfont.woff
│ │ │ │ └── fontawesome-webfont.woff2
│ │ │ ├── css
│ │ │ │ └── fonts
│ │ │ │ │ ├── lato-bold.woff
│ │ │ │ │ ├── lato-bold.woff2
│ │ │ │ │ ├── lato-normal.woff
│ │ │ │ │ ├── lato-normal.woff2
│ │ │ │ │ ├── Roboto-Slab-Bold.woff
│ │ │ │ │ ├── Roboto-Slab-Bold.woff2
│ │ │ │ │ ├── lato-bold-italic.woff
│ │ │ │ │ ├── lato-bold-italic.woff2
│ │ │ │ │ ├── Roboto-Slab-Regular.woff
│ │ │ │ │ ├── Roboto-Slab-Regular.woff2
│ │ │ │ │ ├── fontawesome-webfont.eot
│ │ │ │ │ ├── fontawesome-webfont.ttf
│ │ │ │ │ ├── fontawesome-webfont.woff
│ │ │ │ │ ├── fontawesome-webfont.woff2
│ │ │ │ │ ├── lato-normal-italic.woff
│ │ │ │ │ └── lato-normal-italic.woff2
│ │ │ └── js
│ │ │ │ └── badge_only.js
│ │ │ ├── locale
│ │ │ ├── da
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── de
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── en
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── es
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── et
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── fr
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── hr
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ ├── sphinx.mo
│ │ │ │ │ └── sphinx.po
│ │ │ ├── hu
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ ├── sphinx.mo
│ │ │ │ │ └── sphinx.po
│ │ │ ├── it
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── lt
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── nl
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── pl
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── pt
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── ru
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── sv
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── tr
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── fa_IR
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── pt_BR
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ ├── zh_CN
│ │ │ │ └── LC_MESSAGES
│ │ │ │ │ └── sphinx.mo
│ │ │ └── zh_TW
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── sphinx.mo
│ │ │ │ └── sphinx.po
│ │ │ ├── searchbox.html
│ │ │ ├── theme.conf
│ │ │ └── versions.html
│ ├── ag_configuration.rst
│ ├── guide-examples.rst
│ ├── vars-defaults.rst
│ ├── ag.rst
│ ├── annotation.rst
│ ├── guide-sanity.rst
│ ├── guide-firstboot.rst
│ ├── guide.rst
│ ├── guide-tasks.rst
│ ├── guide-variables.rst
│ ├── tasks-users.rst
│ ├── guide-examples-ex1.rst
│ ├── guide-examples-ex2.rst
│ ├── debug-sshd-example.rst
│ ├── guide-devel.rst
│ ├── guide-playbook.rst
│ ├── tasks-mount-iso.rst
│ ├── tasks-mount-img.rst
│ ├── copyright.rst
│ └── guide-best-practice.rst
├── requirements.txt
├── batch1.sh
├── annotation
│ ├── handlers-list.txt
│ ├── README
│ ├── templates-list.txt
│ ├── annotation-handlers.rst.j2
│ ├── annotation-templates.rst.j2
│ ├── tasks-list.txt
│ ├── annotation-templates.yml.j2
│ ├── pb-annotations.yml
│ ├── vars
│ │ ├── nfsd.yml
│ │ └── nfs.yml
│ ├── annotation-tasks.rst.j2
│ ├── annotation-tasks.yml.j2
│ └── annotation-handlers.yml.j2
├── Makefile
└── make.bat
├── defaults
└── main
│ ├── cloud-providers.yml
│ ├── gpg.yml
│ ├── groups.yml
│ ├── aliases.yml
│ ├── vars.yml
│ ├── libmap.yml
│ ├── users.yml
│ ├── sanity.yml
│ ├── mount-img.yml
│ ├── mount-iso.yml
│ ├── timezone.yml
│ ├── hostname.yml
│ ├── sysctl.yml
│ ├── sudoers.yml
│ ├── rcd.yml
│ ├── cron.yml
│ ├── ssh.yml
│ ├── fstab.yml
│ ├── gitserver.yml
│ ├── snmpd.yml
│ ├── main.yml
│ ├── swap.yml
│ ├── linux.yml
│ ├── periodic.yml
│ ├── smartd.yml
│ ├── groupwrappers.yml
│ ├── make.yml
│ ├── motd.yml
│ ├── qemu.yml
│ ├── hosts.yml
│ ├── loader.yml
│ ├── handlers.yml
│ ├── sshd.yml
│ ├── devd.yml
│ ├── syslog-ng.yml
│ ├── syslogd.yml
│ ├── digitalocean.yml
│ ├── rcconf.yml
│ ├── tmpmfs.yml
│ ├── inetd.yml
│ ├── ntpdate.yml
│ ├── procmail.yml
│ ├── authorized-key.yml
│ ├── passwords.yml
│ ├── rcconfd.yml
│ ├── packages.yml
│ ├── resolvconf.yml
│ ├── nfs_services.yml
│ ├── devfs.yml
│ ├── nfs.yml
│ ├── apcupsd.yml
│ └── copy.yml
├── .gitignore
├── handlers
├── fstab.yml
├── newaliases.yml
├── resolvconf.yml
├── hostname.yml
├── login.yml
├── sysctl.yml
├── messages.yml
├── adjkerntz.yml
├── newsyslog.yml
├── wpasupplicant.yml
├── dhclient.yml
├── devd.yml
├── nfsd.yml
├── ntpd.yml
├── qemu.yml
├── sshd.yml
├── devfs.yml
├── inetd.yml
├── lockd.yml
├── snmpd.yml
├── statd.yml
├── mountd.yml
├── smartd.yml
├── apcupsd.yml
├── hostapd.yml
├── ntpdate.yml
├── rpcbind.yml
├── syslogd.yml
├── nfsclient.yml
├── syslog-ng.yml
└── qemu_user_static.yml
├── tasks
├── ntpdate.yml
├── qemu.yml
├── cloud-providers.yml
├── fn
│ ├── mdconfig-attach-disk.yml
│ ├── mdconfig-detach-disk.yml
│ ├── rcconf-item.yml
│ └── cron-rename-entry.yml
├── aliases.yml
├── libmap.yml
├── timezone.yml
├── hostname.yml
├── ntp.yml
├── hostapd.yml
├── sudoers.yml
├── motd.yml
├── groups.yml
├── ssh.yml
├── login.yml
├── copy
│ ├── unarch-default.yml
│ └── unarch-optional.yml
├── tmpmfs.yml
├── vars.yml
├── apcupsd.yml
├── make.yml
├── snmpd.yml
├── smartd.yml
├── fstab.yml
├── gitserver.yml
├── periodic.yml
├── sshd.yml
└── rcd.yml
├── .ansible-lint.local
├── .travis.yml
├── .configure.vars
└── handlers_service.yml
├── .readthedocs.yaml
├── files
└── devd-action-manpic.sh
├── meta
└── main.yml
├── .configure.tasks
├── create_nfs_services.yml
├── create_nfsd_services.yml
├── create_handlers_main.yml
└── create_handlers_service.yml
└── LICENSE
/tests/inventory:
--------------------------------------------------------------------------------
1 | localhost
--------------------------------------------------------------------------------
/vars/samples/mount-img.yml.sample:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.ansible-lint:
--------------------------------------------------------------------------------
1 | ---
2 | skip_list: []
3 |
--------------------------------------------------------------------------------
/templates/motd.j2:
--------------------------------------------------------------------------------
1 | {{ fp_motd_message }}
2 |
--------------------------------------------------------------------------------
/changelog/changelog.yml:
--------------------------------------------------------------------------------
1 | ---
2 | releases: {}
3 |
--------------------------------------------------------------------------------
/tests/.ansible-lint:
--------------------------------------------------------------------------------
1 | ---
2 | skip_list: []
3 |
--------------------------------------------------------------------------------
/vars/samples/nfs.yml.sample:
--------------------------------------------------------------------------------
1 | # fp_nfs: true
2 | # fp_nfs_enable: true
3 |
--------------------------------------------------------------------------------
/vars/samples/ntp.yml.sample:
--------------------------------------------------------------------------------
1 | # fp_ntp: true
2 | # fp_ntp_enable: true
3 |
--------------------------------------------------------------------------------
/docs/source/dg.rst:
--------------------------------------------------------------------------------
1 | .. _dg:
2 |
3 | Developer's Guide
4 | #################
5 |
6 | TBD
7 |
--------------------------------------------------------------------------------
/defaults/main/cloud-providers.yml:
--------------------------------------------------------------------------------
1 | ---
2 | aws: false
3 | digitalocean: false
4 | gcp: false
5 |
--------------------------------------------------------------------------------
/defaults/main/gpg.yml:
--------------------------------------------------------------------------------
1 | ---
2 | fp_gpg_packages: [] # TODO
3 | fp_gpg_packages_extra: [] # TODO
4 |
--------------------------------------------------------------------------------
/vars/samples/freebsd-update.yml.sample:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Defaults for /etc/freebsd-update.yml
4 |
--------------------------------------------------------------------------------
/defaults/main/groups.yml:
--------------------------------------------------------------------------------
1 | ---
2 | fp_groups: false
3 | fp_groups_debug: false
4 | fp_groups_conf: []
5 |
--------------------------------------------------------------------------------
/docs/requirements.txt:
--------------------------------------------------------------------------------
1 | sphinx==7.2.6
2 | sphinx_rtd_theme==1.3.0
3 | readthedocs-sphinx-search==0.3.2
4 |
--------------------------------------------------------------------------------
/defaults/main/aliases.yml:
--------------------------------------------------------------------------------
1 | ---
2 | fp_aliases: false
3 | fp_aliases_conf_file: /etc/aliases
4 | fp_aliases_conf: []
5 |
--------------------------------------------------------------------------------
/defaults/main/vars.yml:
--------------------------------------------------------------------------------
1 | ---
2 | fp_vars: false
3 | fp_vars_debug: false
4 |
5 | fp_vars_default_versions: false
6 |
--------------------------------------------------------------------------------
/defaults/main/libmap.yml:
--------------------------------------------------------------------------------
1 | ---
2 | fp_libmap: false
3 | fp_libmap_conf_file: /etc/libmap.conf
4 | fp_libmap_entries: []
5 |
--------------------------------------------------------------------------------
/templates/groupadd.j2:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # {{ ansible_managed }}
3 | # {{ template_path }}
4 | exec {{ fp_group_add }} "$@"
5 |
--------------------------------------------------------------------------------
/templates/groupdel.j2:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # {{ ansible_managed }}
3 | # {{ template_path }}
4 | exec {{ fp_group_del }} "$@"
5 |
--------------------------------------------------------------------------------
/templates/groupmod.j2:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # {{ ansible_managed }}
3 | # {{ template_path }}
4 | exec {{ fp_group_mod }} "$@"
5 |
--------------------------------------------------------------------------------
/templates/procmailrc-includerc-duplicates.j2:
--------------------------------------------------------------------------------
1 | # get's rid of duplicates
2 | :0 Wh: msgid.lock
3 | | formail -D 8192 msgid.cache
4 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/procmailrc.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% for line in config %}
4 | {{ line }}
5 | {% endfor %}
6 |
--------------------------------------------------------------------------------
/tests/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | collections:
3 | - name: ansible.posix
4 | - name: community.general
5 | - name: vbotka.freebsd
6 |
--------------------------------------------------------------------------------
/tests/test.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Test
3 | hosts: localhost
4 | connection: local
5 | roles:
6 | - ansible-freebsd-postinstall
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/batch1.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | (cd annotation && ansible-playbook pb-annotations.yml)
4 | ansible-playbook playbook.yml
5 | make html
6 |
--------------------------------------------------------------------------------
/templates/make.conf.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% for item in fp_make_conf %}
4 | {{ item }}
5 | {% endfor %}
6 |
--------------------------------------------------------------------------------
/vars/samples/passwords.yml.sample:
--------------------------------------------------------------------------------
1 | # fp_passwords: true
2 | # fp_passwordstore: true
3 | # fp_passwordstore_hostname_var: ansible_hostname
4 |
--------------------------------------------------------------------------------
/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/_themes/guzzle_sphinx_theme/logo-text.html:
--------------------------------------------------------------------------------
1 | {{ theme_project_nav_name or shorttitle }}
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/newaliases.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Newaliases # noqa: no-changed-when
3 | listen: newaliases
4 | ansible.builtin.command:
5 | cmd: /usr/bin/newaliases
6 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/exports.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% for item in fp_nfsd_exports %}
4 | {{ item.mount_point }} {{ item.flags }}
5 | {% endfor %}
6 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/syslog.conf.client.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% for k, v in fp_syslogd_conf.items() %}
4 | {{ v | join(';') }} @{{ k }}
5 | {% endfor %}
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 |
--------------------------------------------------------------------------------
/docs/source/vars-defaults.rst:
--------------------------------------------------------------------------------
1 | Default variables
2 | =================
3 |
4 | [`defaults/main `_]
5 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/fonts/Lato-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/sphinx_rtd_theme/static/fonts/Lato-Bold.ttf
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/fonts/Lato-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/sphinx_rtd_theme/static/fonts/Lato-Regular.ttf
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/locale/da/LC_MESSAGES/sphinx.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/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/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/locale/et/LC_MESSAGES/sphinx.mo
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/locale/fr/LC_MESSAGES/sphinx.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/locale/hr/LC_MESSAGES/sphinx.mo
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/locale/hu/LC_MESSAGES/sphinx.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/sphinx_rtd_theme/locale/hu/LC_MESSAGES/sphinx.mo
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/locale/it/LC_MESSAGES/sphinx.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/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/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/locale/pt/LC_MESSAGES/sphinx.mo
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/locale/ru/LC_MESSAGES/sphinx.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/locale/tr/LC_MESSAGES/sphinx.mo
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold.woff2
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/locale/fa_IR/LC_MESSAGES/sphinx.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/sphinx_rtd_theme/locale/fa_IR/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/HEAD/docs/source/_themes/sphinx_rtd_theme/locale/pt_BR/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/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/locale/zh_TW/LC_MESSAGES/sphinx.mo
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal.woff2
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Regular.ttf
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Bold.woff2
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-bold-italic.woff2
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/Roboto-Slab-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/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/HEAD/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/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/sphinx_rtd_theme/static/css/fonts/lato-normal-italic.woff2
--------------------------------------------------------------------------------
/defaults/main/rcd.yml:
--------------------------------------------------------------------------------
1 | ---
2 | fp_rcd: false
3 | fp_rcd_debug: false
4 |
5 | fp_rcd_scripts_absent: []
6 |
7 | fp_rcd_scripts: {}
8 | fp_rcd_scripts_owner: root
9 | fp_rcd_scripts_group: wheel
10 | fp_rcd_scripts_mode: "0555"
11 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/static/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.ttf
--------------------------------------------------------------------------------
/templates/login_conf.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 |
4 | {{ item.class }}:\
5 | {% for citem in item.conf | flatten %}
6 | {{ '\t' }}:{{ citem }}:{% if not loop.last %}\{% endif %}
7 |
8 | {% endfor %}
9 |
10 | # EOF
11 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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-Italic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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-Light-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Light-webfont.woff
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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-Italic-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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-Regular-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/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/HEAD/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/HEAD/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/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-Semibold-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/HEAD/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/HEAD/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-Light.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/OTF/SourceSerifPro-Black.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/TTF/SourceSerifPro-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Light.ttf
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/ssh_config.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% for item in fp_ssh_conf %}
4 | Host {{ item.host }}
5 | {% for conf in item.conf %}
6 | {{ conf.key }} {{ conf.val }}
7 | {% endfor %}
8 | {% endfor %}
9 |
10 | # EOF
11 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/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.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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-LightItalic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.ttf
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-Regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/TTF/SourceSerifPro-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-Semibold.ttf
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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-SemiboldItalic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.ttf
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/EOT/SourceSerifPro-ExtraLight.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/OTF/SourceSerifPro-ExtraLight.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/TTF/SourceSerifPro-ExtraLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/TTF/SourceSerifPro-ExtraLight.ttf
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/HEAD/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-SemiboldItalic-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/WOFF/OTF/SourceSerifPro-Black.otf.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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-Light.otf.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/TTF/SourceSerifPro-Black.ttf.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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-Light.ttf.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Light.ttf.woff
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/HEAD/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/HEAD/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-Regular.ttf.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/HEAD/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/WOFF/OTF/SourceSerifPro-ExtraLight.otf.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/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/TTF/SourceSerifPro-ExtraLight.ttf.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vbotka/ansible-freebsd-postinstall/HEAD/docs/source/_themes/guzzle_sphinx_theme/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-ExtraLight.ttf.woff
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/localtoc.html:
--------------------------------------------------------------------------------
1 | {%- if display_toc %}
2 |
10 | {%- endif %}
11 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/syslog.conf.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% for k, v in fp_syslogd_conf.items() %}
4 | {% if v is mapping %}
5 | {{ k }}
6 | {% for l, f in v.items() %}
7 | {{ f | join(';') }} {{ l }}
8 | {% endfor %}
9 | {% else %}
10 | {{ v | join(';') }} {{ k }}
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 |
--------------------------------------------------------------------------------
/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: "{{ fp_ansible_lib[ansible_role_name] }}"
7 | tasks_from: al_mdconfig.yml
8 |
9 | # EOF
10 |
--------------------------------------------------------------------------------
/templates/loader.conf2.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 |
4 | # fp_loader_conf
5 | {% for item in fp_loader_conf %}
6 | {{ item.name }}="{{ item.value }}"
7 | {% endfor %}
8 |
9 | # fp_loader_conf_modules
10 | {% for item in fp_loader_conf_modules %}
11 | {{ item }}_load="YES"
12 | {% endfor %}
13 |
14 | # EOF
15 |
--------------------------------------------------------------------------------
/templates/newsyslog.conf.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% set separator=' ' %}
4 | {% for k, v in fp_syslogd_newconf.items() %}
5 | {% if k == 'include' %}
6 |
7 | {% for i in v %}
8 | {{ i }}
9 | {% endfor %}
10 | {% else %}
11 | {{ k }} {{ v | join(separator) }}
12 | {% endif %}
13 | {% endfor %}
14 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/changelog/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | * [2.8.0](https://github.com/vbotka/ansible-freebsd-postinstall/blob/master/changelogs/CHANGELOG-v2.8.rst)
2 | * [2.7.0](https://github.com/vbotka/ansible-freebsd-postinstall/blob/master/changelogs/CHANGELOG-v2.7.rst)
3 | * [2.6.0](https://github.com/vbotka/ansible-freebsd-postinstall/blob/master/changelogs/CHANGELOG-v2.6.rst)
4 |
--------------------------------------------------------------------------------
/templates/hosts.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {{ fp_hosts_localhost_ipv6 }} localhost localhost.{{ fp_domain }}
4 | {{ fp_hosts_localhost_ipv4 }} localhost localhost.{{ fp_domain }}
5 |
6 | {% for item in fp_hosts_conf %}
7 | {{ item.ip }} {{ item.fqdn }} {{ item.hostname | d('') }}
8 | {% endfor %}
9 |
10 | # EOF
11 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/hosts.allow-02.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% for item in fp_inetd_hosts_allow_conf %}
4 | {{ item.daemons | join(' ') }} : \
5 | {{ item.clients | join(' ') }} : \
6 | {% if item.options is defined %}
7 | {{ item.options | join(' ') }} : \
8 | {% endif %}
9 | {{ item.action | join(' ') }}
10 | {% endfor %}
11 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/defaults/main/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | fp_role_version: 2.8.2
3 | fp_debug: false
4 | fp_backup: false
5 |
6 | fp_environment:
7 | default:
8 | CRYPTOGRAPHY_OPENSSL_NO_LEGACY: '1'
9 |
10 | # Use vbotka.freebsd.lib in collection vbotka.freebsd
11 | fp_ansible_lib:
12 | vbotka.freebsd_postinstall: vbotka.ansible_lib
13 | vbotka.freebsd.postinstall: vbotka.freebsd.lib
14 |
--------------------------------------------------------------------------------
/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: "{{ fp_ansible_lib[ansible_role_name] }}"
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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/loader.conf.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 |
4 | # fp_loader_conf
5 | {% for item in fp_loader_conf %}
6 | {{ item }}
7 | {% endfor %}
8 | {% for item in fp_sysctl_loader_conf %}
9 | {{ item }}
10 | {% endfor %}
11 |
12 | # fp_loader_conf_modules
13 | {% for item in fp_loader_conf_modules %}
14 | {{ item }}_load="YES"
15 | {% endfor %}
16 |
17 | # EOF
18 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/vars/samples/rcd.yml.sample:
--------------------------------------------------------------------------------
1 | ---
2 | fp_rcd: false
3 |
4 | fp_rcd_scripts:
5 | dummy:
6 | script: |
7 | {{ '#' }}!/bin/sh
8 |
9 | . /etc/rc.subr
10 |
11 | name="dummy"
12 | start_cmd="${name}_start"
13 | stop_cmd=":"
14 |
15 | dummy_start()
16 | {
17 | echo "Nothing started."
18 | }
19 |
20 | load_rc_config $name
21 | run_rc_command "$1"
22 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/globaltoc.html:
--------------------------------------------------------------------------------
1 |
2 |
15 |
--------------------------------------------------------------------------------
/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: []
5 | # fp_loader_conf_modules:
6 | # - { name: if_ath, value: "YES" }
7 | # - { name: wlan_wep, value: "YES" }
8 | # - { name: wlan_ccmp, value: "YES" }
9 | # - { name: wlan_tkip, value: "YES" }
10 | # - { name: pf, value: "YES" }
11 | # - { name: geom_eli, value: "YES" }
12 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 | fp_qemu_user_static_enable: false
13 |
14 | # set according the installed packages
15 | fp_qemu_service: qemu_user_static
16 |
--------------------------------------------------------------------------------
/templates/hosts.allow-01.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% for item in fp_inetd_hosts_allow_conf %}
4 | {% set v=item.values() | list %}
5 | {% if v | length == 2 %}
6 | {{ v[0] | join(' ') }} : {{ v[1] | join(' ') }}
7 | {% else %}
8 | {{ v[0] | join(' ') }} : {{ v[1] | join(' ') }} \
9 | {% for vi in v[2:-1] %}
10 | : {{ vi | join(' ') }} \
11 | {% endfor %}
12 | : {{ v[-1] | join(' ') }}
13 | {% endif %}
14 | {% endfor %}
15 |
--------------------------------------------------------------------------------
/templates/wpa_supplicant.conf.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {% for gvar in fp_wpasupplicant_conf_global %}
4 | {{ gvar.key }}={{ gvar.value }}
5 | {% endfor %}
6 | {% for net in item.network %}
7 | {% for nvar in net.conf %}
8 | {% if loop.first %}
9 |
10 | network={
11 | {% endif %}
12 | {{ nvar.key }}={{ nvar.value }}
13 | {% if loop.last %}
14 | }
15 | {% endif %}
16 | {% endfor %}
17 | {% endfor %}
18 |
19 | # EOF
20 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/hosts-aliases-list.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 | {{ fp_hosts_localhost_ipv6 }} localhost localhost.{{ fp_domain }}
4 | {{ fp_hosts_localhost_ipv4 }} localhost localhost.{{ fp_domain }}
5 |
6 | {% for item in fp_hosts_conf %}
7 | {{ item.ip }} {{ item.fqdn }}{% for alias in item.aliases|default([]) %} {{ alias }}{% endfor %}{% if item.hostname|default('')|length > 0 %} {{ item.hostname }}
8 | {% endif %}
9 | {% endfor %}
10 |
11 | # EOF
12 |
--------------------------------------------------------------------------------
/docs/source/_themes/sphinx_rtd_theme/searchbox.html:
--------------------------------------------------------------------------------
1 | {%- if 'singlehtml' not in builder %}
2 |
3 |
8 |
9 | {%- endif %}
10 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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_file: /boot/loader.conf
8 | fp_loader_conf: []
9 | fp_loader_modules: []
10 | fp_loader_conf_modules: []
11 |
12 | # Template for fp_loader_conf_file
13 | # If empty, module sysrc is used instead of template. Available after
14 | # community.general #10417 merged.
15 | fp_loader_conf_template: loader.conf2.j2
16 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 | syslog-ng.yml
32 | wpasupplicant.yml
33 |
--------------------------------------------------------------------------------
/templates/login.conf.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 |
4 | # system classes
5 | {% for item in fp_login_conf %}
6 | {{ item.class }}:\
7 | {% for citem in item.conf | flatten %}
8 | {{ '\t' }}:{{ citem }}:{% if not loop.last %}\{% endif %}
9 |
10 | {% endfor %}
11 | {% endfor %}
12 |
13 | # extra classes
14 | {% for item in fp_login_conf_extra %}
15 | {{ item.class }}:\
16 | {% for citem in item.conf | flatten %}
17 | {{ '\t' }}:{{ citem }}:{% if not loop.last %}\{% endif %}
18 |
19 | {% endfor %}
20 | {% endfor %}
21 |
22 | # EOF
23 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/defaults/main/syslog-ng.yml:
--------------------------------------------------------------------------------
1 | ---
2 | fp_syslogng: false
3 | fp_syslogng_install: false # list of packages: syslog-ng
4 | fp_syslogng_enable: false
5 | fp_syslogng_notify: true
6 | fp_syslogng_service_task: false
7 | fp_syslogng_debug: false
8 |
9 | # See commented and tested examples in vars/samples/syslog-ng.yml.sample
10 |
11 | # /etc/rc.conf
12 | fp_syslogng_rcconf: []
13 |
14 | # /usr/local/etc/syslog-ng.conf
15 | fp_syslogng_conf_orig: false
16 | fp_syslogng_conf_sanity: true
17 | fp_syslogng_conf_template: syslog-ng.conf.j2
18 | fp_syslogng_conf_file: /usr/local/etc/syslog-ng.conf
19 | fp_syslogng_conf: {}
20 |
--------------------------------------------------------------------------------
/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 |
13 | # /etc/syslog.conf
14 | fp_syslogd_conf_orig: false
15 | fp_syslogd_conf_sanity: true
16 | fp_syslogd_conf_template: syslog.conf.j2
17 | fp_syslogd_conf_file: /etc/syslog.conf
18 | fp_syslogd_conf: {}
19 | fp_syslogd_confd: []
20 |
21 | # /etc/newsyslog.conf
22 | fp_syslogd_newconf_orig: false
23 | fp_syslogd_newconf: {}
24 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/searchbox.html:
--------------------------------------------------------------------------------
1 | {%- if pagename != "search" %}
2 |
15 | {%- endif %}
16 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | syslog-ng: syslog_ng_enable
9 |
10 | fp_rcconf_var:
11 | default: "fp_{{ _service }}_enable"
12 | syslog-ng: fp_syslogng_enable
13 |
14 | fp_rcconf_rcconf:
15 | default: "fp_{{ _service }}_rcconf"
16 | syslog-ng: fp_syslogng_rcconf
17 |
18 | fp_notify_var:
19 | default: "fp_{{ _service }}_notify"
20 | syslog-ng: fp_syslogng_notify
21 |
22 | fp_service_task_var:
23 | default: "fp_{{ _service }}_service_task"
24 | syslog-ng: fp_syslogng_service_task
25 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.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 | syslog-ng:
27 |
28 | service_enable_var:
29 | nfsclient: nfs
30 | syslog-ng: syslogng
31 |
32 | service_blacklist: [default]
33 | service_condition_commands_allow: [reload, restart]
34 | service_condition_deny: [sysctl]
35 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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/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/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/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/handlers/syslog-ng.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Generated by .configure.yml
3 | # Handlers for syslog-ng
4 | - name: Start syslog-ng
5 | listen: start syslog-ng
6 | vbotka.freebsd.service:
7 | script: syslog-ng
8 | command: start
9 |
10 | - name: Stop syslog-ng
11 | listen: stop syslog-ng
12 | vbotka.freebsd.service:
13 | script: syslog-ng
14 | command: stop
15 |
16 | - name: Restart syslog-ng
17 | listen: restart syslog-ng
18 | when: fp_syslogng_enable | bool
19 | vbotka.freebsd.service:
20 | script: syslog-ng
21 | command: restart
22 |
23 | - name: Reload syslog-ng
24 | listen: reload syslog-ng
25 | when: fp_syslogng_enable | bool
26 | vbotka.freebsd.service:
27 | script: syslog-ng
28 | command: reload
29 |
30 | # EOF
31 |
--------------------------------------------------------------------------------
/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 | # See https://regexr.com/64p5n
8 | fp_authorized_key_valid_regex: '^ssh-rsa\s+[A-Za-z0-9+/]+[=]{0,3}(\s+.+)?\s*$'
9 |
10 | # If False, group keys by user and install string of keys
11 | fp_authorized_key_install_individually: true
12 |
13 | # See module authorized_key parameters
14 | # fp_authorized_key_comment: ""
15 | # fp_authorized_key_install_exclusive: false
16 | # fp_authorized_key_follow: false
17 | # fp_authorized_key_manage_dir: true
18 | # fp_authorized_key_path: ""
19 | # fp_authorized_key_state: present
20 | # fp_authorized_key_key_options: ""
21 | # fp_authorized_key_validate_certs: true
22 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | syslog-ng: syslog-ng
23 | tmpmfs: tmpmfs
24 | wpasupplicant: wpasupplicant
25 | fp_rcconfd_path: "{{ dict(fp_rcconfd_file.keys()
26 | | zip([fp_rcconfd_dir]
27 | | product(fp_rcconfd_file.values())
28 | | map('join', '/'))) }}"
29 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/syslog-ng.conf.client.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 |
4 | {% for h in fp_syslogng_conf.header %}
5 | {{ h }}
6 | {% endfor %}
7 |
8 | #
9 | # sources
10 | #
11 | {% for source, opts in fp_syslogng_conf.source.items() %}
12 | source {{ source }} {
13 | {% for opt, param in opts.items() %}
14 | {{ opt }}({{ param }});
15 | {% endfor %}
16 | {% endfor %}
17 | };
18 |
19 | #
20 | # destinations
21 | #
22 | {% for dest, opts in fp_syslogng_conf.destination.items() %}
23 | destination {{ dest }} {
24 | {% for k, v in opts.items() %}
25 | {{ k }}({{ v }});
26 | {% endfor %}
27 | {% endfor %}
28 | };
29 |
30 | #
31 | # log
32 | #
33 | {% for i in fp_syslogng_conf.log %}
34 | log {
35 | source({{ i.source }});
36 | destination({{ i.destination }});
37 | {% endfor %}
38 | };
39 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 | _service: tmpmfs
15 | _rcconfd_path: "{{ fp_rcconfd_path[_service] }}"
16 | _path: "{{ fp_rcconfd | bool | ternary(_rcconfd_path, '/etc/rc.conf') }}"
17 | tags: fp_tmpmfs_rcconf
18 | community.general.sysrc:
19 | path: "{{ _path }}"
20 | name: "{{ item.name }}"
21 | value: "{{ item.value | d(omit) }}"
22 | state: "{{ item.state | d(omit) }}"
23 | loop: "{{ fp_tmpmfs_rcconf }}"
24 |
25 | # EOF
26 |
--------------------------------------------------------------------------------
/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/syslog-ng.conf.server.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 |
4 | {% for h in fp_syslogng_conf.header %}
5 | {{ h }}
6 | {% endfor %}
7 |
8 | #
9 | # sources
10 | #
11 | {% for source, opts in fp_syslogng_conf.source.items() %}
12 | source {{ source }} {
13 | {% for opt, params in opts.items() %}
14 | {{ opt }}({% for k, v in params.items() %}{{ k }}({{ v }}) {% endfor %});
15 | {% endfor %}
16 | {% endfor %}
17 | };
18 |
19 | #
20 | # destinations
21 | #
22 | {% for dest, opts in fp_syslogng_conf.destination.items() %}
23 | destination {{ dest }} {
24 | {% for k, v in opts.items() %}
25 | {{ k }}({{ v }});
26 | {% endfor %}
27 | {% endfor %}
28 | };
29 |
30 | #
31 | # log
32 | #
33 | {% for i in fp_syslogng_conf.log %}
34 | log {
35 | source({{ i.source }});
36 | destination({{ i.destination }});
37 | {% endfor %}
38 | };
39 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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.client.j2
30 | syslog.conf.j2
31 | syslog-ng.conf.client.j2
32 | syslog-ng.conf.sample.j2
33 | syslog-ng.conf.server.j2
34 | wpa_supplicant.conf.j2
35 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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.19"
11 | platforms:
12 | - name: FreeBSD
13 | versions:
14 | - 13.5
15 | - 14.2
16 | - 14.3
17 | galaxy_tags:
18 | - freebsd
19 | - ups
20 | - cron
21 | - fstab
22 | - hostapd
23 | - hosts
24 | - libmap
25 | - loader
26 | - make
27 | - nfs
28 | - ntp
29 | - procmail
30 | - smart
31 | - sudo
32 | - ssh
33 | - swap
34 | - sysctl
35 | - timezone
36 | - users
37 | - packages
38 | dependencies: []
39 | collections:
40 | - ansible.posix
41 | - ansible.utils
42 | - community.general
43 | - vbotka.freebsd
44 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/docs/source/_themes/guzzle_sphinx_theme/comments.html:
--------------------------------------------------------------------------------
1 | {% if theme_disqus_comments_shortname %}
2 |
16 | {% endif %}
17 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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){}});
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/templates/apcupsd.conf.j2:
--------------------------------------------------------------------------------
1 | ## apcupsd.conf v1.1 ##
2 | # {{ ansible_managed }}
3 | # {{ template_path }}
4 | UPSNAME {{ fp_apcupsd_upsname }}
5 | UPSCABLE {{ fp_apcupsd_upscable }}
6 | UPSTYPE {{ fp_apcupsd_upstype }}
7 | LOCKFILE {{ fp_apcupsd_lockfile }}
8 | SCRIPTDIR {{ fp_apcupsd_scriptdir }}
9 | PWRFAILDIR {{ fp_apcupsd_pwrfaildir }}
10 | NOLOGINDIR {{ fp_apcupsd_nologindir }}
11 | ONBATTERYDELAY {{ fp_apcupsd_onbatterydelay }}
12 | BATTERYLEVEL {{ fp_apcupsd_batterylevel }}
13 | MINUTES {{ fp_apcupsd_minutes }}
14 | TIMEOUT {{ fp_apcupsd_timeout }}
15 | ANNOY {{ fp_apcupsd_annoy }}
16 | ANNOYDELAY {{ fp_apcupsd_annoydelay }}
17 | NOLOGON {{ fp_apcupsd_nologon }}
18 | KILLDELAY {{ fp_apcupsd_killdelay }}
19 | NETSERVER {{ fp_apcupsd_netserver }}
20 | NISIP {{ fp_apcupsd_nisip }}
21 | NISPORT {{ fp_apcupsd_nisport }}
22 | EVENTSFILE {{ fp_apcupsd_eventsfile }}
23 | EVENTSFILEMAX {{ fp_apcupsd_eventsfilemax }}
24 | UPSCLASS {{ fp_apcupsd_upsclass }}
25 | UPSMODE {{ fp_apcupsd_upsmode }}
26 | STATTIME {{ fp_apcupsd_stattime }}
27 | STATFILE {{ fp_apcupsd_statfile }}
28 | LOGSTATS {{ fp_apcupsd_logstats }}
29 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/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-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/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 | nfs.yml
29 | nfsd.yml
30 | ntp.yml
31 | ntpdate.yml
32 | packages-install.yml
33 | packages.yml
34 | passwords.yml
35 | periodic.yml
36 | procmail.yml
37 | qemu.yml
38 | rcd.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 | syslog-ng.yml
50 | timezone.yml
51 | tmpmfs.yml
52 | users.yml
53 | vars.yml
54 | wpasupplicant.yml
55 | cloud-providers/digitalocean.yml
56 | copy/sync-default.yml
57 | copy/sync-optional.yml
58 | copy/unarch-default.yml
59 | copy/unarch-optional.yml
60 | fn/cron-rename-entry.yml
61 | fn/mdconfig-attach-disk.yml
62 | fn/mdconfig-detach-disk.yml
63 | fn/rcconf-item.yml
64 | fn/rcconf.yml
65 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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/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/vars/nfsd.yml:
--------------------------------------------------------------------------------
1 | ---
2 | task_nfsd_synopsis: |
3 | Configure NFS server.
4 |
5 | task_nfsd_description: |
6 | :2: Display variables.
7 |
8 | :3: enable ``fp_nfsd_debug=true``.
9 |
10 | :60: Collect status of the services stored in the list
11 | ``fp_nfsd_services``.
12 |
13 | :67: Create dictionary ``fp_nfsd_services_status``.
14 |
15 | :73: Display this dictionary. This dictionary is used to select the
16 | handlers in the dictionary ``fp_nfsd_handlers``.
17 |
18 | :78: Display the dictionary ``fp_nfsd_handlers``. The defaults are
19 | used in check mode because of empty dictionary
20 | ``fp_nfsd_services_status``.
21 |
22 | :83: Configure ``/etc/exports`` and notify handler ``reload
23 | mountd``.
24 |
25 | :92: Enable services.
26 |
27 | :101: Disable services.
28 |
29 | task_nfsd_lines: 2,3,60,67,73,78,83,92,101
30 |
31 | task_nfsd_seealso:
32 | handlers:
33 | - nfsd
34 | templates:
35 | - exports
36 | others:
37 | -
38 |
39 | task_nfsd_note:
40 | - "The variables ``fp_nfsd_services_enable`` (96) and ``fp_nfsd_services_disable`` (105) are created by the playbook ``.configure.yml``"
41 |
42 | task_nfsd_hint:
43 | -
44 |
45 | task_nfsd_warning:
46 | -
47 |
48 | # EOF
49 | ...
50 |
--------------------------------------------------------------------------------
/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-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 |
--------------------------------------------------------------------------------
/tasks/rcd.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: "Rcd: Debug fp_rcd_debug={{ fp_rcd_debug }}"
3 | when: fp_rcd_debug | bool
4 | tags: fp_rcd_debug
5 | vars:
6 | msg: |-
7 | fp_rcd_scripts_owner: {{ fp_rcd_scripts_owner }}
8 | fp_rcd_scripts_group: {{ fp_rcd_scripts_group }}
9 | fp_rcd_scripts_mode: {{ fp_rcd_scripts_mode }}
10 | fp_rcd_scripts:
11 | {{ fp_rcd_scripts | to_nice_yaml(indent=2) | indent(2) }}
12 | fp_rcd_scripts_absent:
13 | {{ fp_rcd_scripts_absent | to_nice_yaml(indent=2) | indent(2) }}
14 | ansible.builtin.debug:
15 | msg: "{{ '{}'.format(msg) }}"
16 |
17 | - name: "Rcd: Delete rc.d scripts"
18 | tags: fp_rcd_scripts_absent
19 | ansible.builtin.file:
20 | state: absent
21 | dest: "/etc/rc.d/{{ item }}"
22 | loop: "{{ fp_rcd_scripts_absent }}"
23 |
24 | - name: "Rcd: Create rc.d scripts"
25 | tags: fp_rcd_scripts
26 | ansible.builtin.copy:
27 | dest: "/etc/rc.d/{{ item.key }}"
28 | content: |
29 | {{ item.value.script }}
30 | owner: "{{ item.value.owner | d(fp_rcd_scripts_owner) }}"
31 | group: "{{ item.value.group | d(fp_rcd_scripts_group) }}"
32 | mode: "{{ item.value.mode | d(fp_rcd_scripts_mode) }}"
33 | backup: "{{ fp_backup }}"
34 | loop: "{{ fp_rcd_scripts | dict2items }}"
35 | loop_control:
36 | label: "{{ item.key }}"
37 |
38 | # EOF
39 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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: syslog-ng, enabled: "{{ fp_syslogng_install }}"}
27 | - {list: wpa_supplicant, enabled: "{{ fp_wpasupplicant_install }}"}
28 |
29 | fp_links:
30 | - target: "/usr/local/bin/python{{ bsd_make_python_version }}"
31 | link: /usr/local/bin/python
32 | - target: /usr/local/bin/bash
33 | link: /bin/bash
34 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/changelog/CHANGELOG-v2.8.rst:
--------------------------------------------------------------------------------
1 | ============================================
2 | vbotka.freebsd_postinstall 2.8 Release Notes
3 | ============================================
4 |
5 | .. contents:: Topics
6 |
7 |
8 | 2.8.2
9 | =====
10 |
11 | Release Summary
12 | ---------------
13 | Fix mount-iso and mount-img tasks.
14 |
15 | Major Changes
16 | -------------
17 |
18 | Minor Changes
19 | -------------
20 | * Remove _fp_mount_debug variable frmon the names.
21 |
22 |
23 | 2.8.1
24 | =====
25 |
26 | Release Summary
27 | ---------------
28 | Add dictionary fp_ansible_lib; Update mount-\*.yml
29 |
30 | Major Changes
31 | -------------
32 |
33 | Minor Changes
34 | -------------
35 | * Add dictionary fp_ansible_lib
36 | * In collection import vbotka.freebsd.lib, otherwise import vbotka.ansible_lib
37 | * Remove mount-vnode.yml and put the content into mount-img.yml and mount-iso.yml
38 | * Update docs.
39 |
40 |
41 | 2.8.0
42 | =====
43 |
44 | Release Summary
45 | ---------------
46 | Ansible 2.19 upgrade.
47 |
48 | Major Changes
49 | -------------
50 | * Meta: Ansible 2.19; FreeBSD 13.5, 14.2, and 14.3
51 |
52 | Minor Changes
53 | -------------
54 | * Explicit bool conversion is no longer needed.
55 |
56 | Bug fix
57 | -------
58 | * Add missing default fp_qemu_user_static_enable=false
59 | * Add missing default fp_swap_file=/usr/swap0
60 | * Add missing variable _service=tmpmfs in tasks/tmpmfs.yml
61 |
62 | Breaking Changes / Porting Guide
63 | --------------------------------
64 |
--------------------------------------------------------------------------------
/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/vars/nfs.yml:
--------------------------------------------------------------------------------
1 | ---
2 | task_nfs_synopsis: |
3 | Configure NFS client.
4 |
5 | task_nfs_description: |
6 | :2: Display variables.
7 |
8 | :3: Enable ``fp_nfs_debug=true``.
9 |
10 | :35: Collect status of the services stored in the list
11 | ``fp_nfs_services``.
12 |
13 | :42: Create dictionary ``fp_nfs_services_status``.
14 |
15 | :55: Test the existence of the file ``var/db/nounttab``. There is no status
16 | option of the service ``nfsclient``. Instead of starting the service,
17 | restart it if there are any nfs mountpoints. This means if the file
18 | ``/var/db/mounttab`` exists.
19 |
20 | :60: Display the result ``fp_nfs_var_db_mounttab.stat.exists``. This variable
21 | will be used to select the handler in the dictionary ``fp_nfs_handlers``.
22 |
23 | :65: Display the dictionary ``fp_nfsd_handlers``. The defaults are
24 | used in check mode because of empty dictionary
25 | ``fp_nfs_services_status``.
26 |
27 | :70: Enable services.
28 |
29 | :79: Disable services.
30 |
31 | task_nfs_lines: 2,3,35,42,55,60,65,70,79
32 |
33 | task_nfs_seealso:
34 | handlers:
35 | - nfsclient
36 | - nfsd
37 | templates: []
38 | others:
39 | -
40 |
41 | task_nfs_note:
42 | - "The variables ``fp_nfs_services_enable`` (74) and ``fp_nfs_services_disable`` (83) are created
43 | by the playbook ``.configure.yml``"
44 |
45 | task_nfs_hint:
46 | -
47 |
48 | task_nfs_warning:
49 | -
50 |
51 | # EOF
52 | ...
53 |
--------------------------------------------------------------------------------
/templates/syslog-ng.conf.sample.j2:
--------------------------------------------------------------------------------
1 | # {{ ansible_managed }}
2 | # {{ template_path }}
3 |
4 | {% for h in fp_syslogng_conf.header %}
5 | {{ h }}
6 | {% endfor %}
7 |
8 | #
9 | # options
10 | #
11 | options {
12 | {% for k, v in fp_syslogng_conf.options.items() %}
13 | {{ k }}({{ v }});
14 | {% endfor %}
15 | };
16 |
17 | #
18 | # sources
19 | #
20 | source src {
21 | {% for k, v in fp_syslogng_conf.source.src.items() %}
22 | {{ k }}({{ v }});
23 | {% endfor %}
24 | };
25 |
26 | #
27 | # destinations
28 | #
29 | {% for dest, opts in fp_syslogng_conf.destination.items() %}
30 | destination {{ dest }} { {% for k, v in opts.items() %}{{ k }}("{{ v }}"); {% endfor %}};
31 | {% endfor %}
32 |
33 | #
34 | # log facility filters
35 | #
36 | {% for k, v in fp_syslogng_conf.filter.facility.items() %}
37 | filter {{ k }} { facility({{ v }}); };
38 | {% endfor %}
39 |
40 | {% for k, v in fp_syslogng_conf.filter.facility_not.items() %}
41 | filter {{ k }} { not facility({{ v }}); };
42 | {% endfor %}
43 |
44 | #
45 | # log level filters
46 | #
47 | {% for k, v in fp_syslogng_conf.filter.level.items() %}
48 | filter {{ k }} { level({{ v }}); };
49 | {% endfor %}
50 |
51 | #
52 | # program filters
53 | #
54 | {% for k, v in fp_syslogng_conf.filter.program.items() %}
55 | filter {{ k }} { program("{{ v }}"); };
56 | {% endfor %}
57 |
58 | #
59 | # log
60 | #
61 | {% for i in fp_syslogng_conf.log.src %}
62 | log { source(src);{% for f in i.filter %} filter({{ f }}); {% endfor %}destination({{ i.destination }} ); };
63 | {% endfor %}
64 |
--------------------------------------------------------------------------------