vbotka.linux_postinstall
linux_postinstall
Ansible 角色。 配置 Linux:acpi、 别名、apparmor、apt、授权密钥、autofs、自动升级、蓝牙、cron、debsums、 dnsmasq、fstab、gpg、gpsd、组、grub、主机名、hosts、chrony、iptables、kvm、latex、libvirt、 盖子、logrotate、调制解调器管理器、模块、netplan、networkd、networkmanager、nfsd、软件包、 密码、pm-utils、postfix、rc.local、repo、resolvconf、服务、smart、speech-dispatcher、ssh、 sshd、sudoers、交换、sysctl、systemd、timesyncd、时区、tlp、udev、ufw、用户、virtualbox、 wpa_gui、wpa_supplicant、xen、xorg.conf.d、zfs,(正在进行中 …)
此角色及其文档正在进行中。如果有任务的 文档缺失,则需要查看 源代码 了解如何使用它。如果缺少某项功能,请考虑使用角色 config_light。参见 各种 示例。如果 config_light无法满足您的需求,请创建新的任务。
欢迎随时分享您的反馈和报告问题。
欢迎贡献。
支持的平台
该角色已在以下平台上开发和测试:
- Ubuntu 支持的版本
- Armbian 5.90
对其他平台的支持正在进行中。有些任务也支持 Centos。鼓励您 在vars/defaults中调整变量,并在自己的环境中测试任务。
需求
角色
集合
- ansible.posix
- ansible.utils
- community.general
角色变量
请查看默认值和vars中的示例。
工作流程
- 安装角色和集合
安装角色
shell> ansible-galaxy role install vbotka.linux_postinstall
shell> ansible-galaxy role install vbotka.ansible_lib
shell> ansible-galaxy role install vbotka.linux_lib
ansible.posix和community.general 集合已包含在 主流 ansible 包中。如果缺失,请安装它们
shell> ansible-galaxy collection install ansible.posix
shell> ansible-galaxy collection install ansible.utils
shell> ansible-galaxy collection install community.general
- 修改变量,例如在 vars/main.yml 中
shell> editor vbotka.linux_postinstall/vars/main.yml
- 在 vars/defaults 中查看特定操作系统的变量
- 在 vars/main.yml.sample 中查看示例
- 在 vars/flavors 中自定义或添加特定风味的变量
- 可选择启用 lp_flavors_enable: true。这会减慢任务执行速度
- 可选择将自定义的特定操作系统变量放入 vars 目录
- 查看 tasks/vars.yml 以获取命名约定和优先级
- 特定操作系统的变量将覆盖 var/main.yml 中的变量
- 创建清单
shell> cat hosts
[group1]
host1.example.com
[group1:vars]
ansible_user=admin
ansible_connection=ssh
ansible_python_interpreter=/usr/bin/python3.8
ansible_perl_interpreter=/usr/bin/perl
- 创建剧本
shell> cat lp.yml
- hosts: group1
become: yes
become_user: root
become_method: sudo
roles:
- vbotka.linux_postinstall
- 运行剧本
shell> ansible-playbook lp.yml
最佳实践
检查剧本语法
shell> ansible-playbook lp.yml --syntax-check
审查变量。可选择检测并存储风味
shell> ansible-playbook lp.yml -t lp_vars
在检查模式下运行剧本
shell> ansible-playbook lp.yml --check
如果一切正常,运行剧本两次。第二次运行时,所有任务应为 OK,且没有更改、不可达和失败。
shell> ansible-playbook lp.yml
自动安装软件包
在变量lp_*_packages
中列出的软件包将由 tasks/packages.yml 自动安装,前提是通过变量 lp_*_install
启用。例如,
lp_libvirt_install: true
lp_libvirt_packages:
- libvirt0
- libvirt-bin
- libvirt-daemon
- libvirt-daemon-driver-storage-rbd
- libvirt-daemon-system
- virtinst
在 lp_libvirt_packages
中列出的软件包将包含在通过以下命令安装的包中:
shell> ansible-playbook lp.yml -t lp_packages_auto -e lp_packages_auto=true
参见:
- 软件包
- 源代码 packages.yml
自动管理服务
变量 lp_service_auto
包含由任务 service.yml 自动管理的服务列表。如果 lp_<service>: true
,则该 服务将由任务 service.yml 管理。将 lp_<service>: false
设置为假将禁用该服务的管理。变量 lp_<service>_enable
和 lp_<service>_state
控制服务的启用和状态。例如,服务 udev 如果设置为 lp_udev: true
,就会被启用并启动,因为它包含在 lp_service_auto
中,且默认优先级为 (优先级 2):
lp_udev: true
lp_udev_enable: true
lp_udev_state: started
运行以下命令以查看将管理的服务。
shell> ansible-playbook lp.yml -e lp_service_debug=true -t lp_service_debug
参见:
- 服务
- 源代码 service.yml
安装操作系统后推荐的配置
- 配置用户、sudoers 和持久网络接口
ansible-playbook lp.yml -t lp_vars
ansible-playbook lp.yml -t lp_hostname
ansible-playbook lp.yml -t lp_groups
ansible-playbook lp.yml -t lp_users
ansible-playbook lp.yml -t lp_sudoers
ansible-playbook lp.yml -t lp_udev
ansible-playbook lp.yml -t lp_netplan
ansible-playbook lp.yml -t lp_wpasupplicant
ansible-playbook lp.yml -t lp_reboot -e 'lp_reboot=true lp_reboot_force=true'
- 配置防火墙。例如 iptables
shell> ansible-playbook lp.yml -t lp_iptables
- 测试软件包安装
shell> ansible-playbook -t lp_packages -e 'lp_package_install_dryrun=true' lp.yml
- 安装软件包
shell> ansible-playbook -t lp_packages lp.yml
- 检查、安装和配置其他任务
shell> ansible-playbook lp.yml --check
shell> ansible-playbook lp.yml
Ansible lint
在运行 ansible-lint 时使用配置文件 .ansible-lint.local。某些规则可能被禁用,某些警告可能被忽略。请查看配置文件中的说明。
shell> ansible-lint -c .ansible-lint.local