vbotka.linux_postinstall
linux_postinstall
Ansibleロール。 Linuxを構成します:acpi、エイリアス、apparmor、apt、承認されたキー、autofs、 自動アップグレード、Bluetooth、cron、debsums、dnsmasq、fstab、gpg、gpsd、グループ、grub、ホスト名、hosts、chrony、iptables、kvm、latex、libvirt、lid、logrotate、モデムマネージャー、モジュール、netplan、networkd、networkmanager、nfsd、パッケージ、パスワード、pm-utils、postfix、rc.local、repos、resolvconf、サービス、smart、speech-dispatcher、ssh、sshd、sudoers、スワップ、sysctl、systemd、timesyncd、タイムゾーン、tlp、udev、ufw、ユーザー、virtualbox、wpa_gui、wpa_supplicant、xen、xorg.conf.d、zfs(進行中...)
このロールとドキュメントは進行中です。もしタスクのドキュメントが不足している場合は、使用方法を理解するためにsource codeを確認してください。機能が不足している場合は、ロール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
- OS固有の変数はvars/defaultsを参照
- vars/main.yml.sampleに例があります
- vars/flavorsにFlavor固有の変数をカスタマイズまたは追加します
- lp_flavors_enable: trueを有効にすることができます。これはプレイブックを遅くします
- 必要に応じて、カスタマイズしたOS固有の変数をvarsディレクトリに配置します
- 名前付け規則と優先順位については、tasks/vars.ymlを参照
- OS固有の変数は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
すべてが正しければ、プレイブックを2回実行します。2回目の実行で、すべてのタスクがOKで、変更・到達不可能・失敗が0となるはずです。
shell> ansible-playbook lp.yml
パッケージの自動インストール
変数lp_*_packages
にリストされたパッケージは、変数lp_*_install
が有効な場合にtasks/packages.ymlで自動的にインストールされます。例えば、
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
以下を参照してください:
サービスの自動管理
変数lp_service_auto
は、タスクservice.ymlによって自動的に管理されるサービスのリストを含みます。サービスはlp_<service>: true
が設定されている場合にtask service.ymlによって管理されます。lp_<service>: false
を設定すると、そのサービスの管理が無効になります。変数lp_<service>_enable
とlp_<service>_state
はサービスの有効化と状態を制御します。例えば、サービスudevは、lp_udev: true
に設定すると、lp_service_auto
にリストされているため、有効化され、開始されます(デフォルトで)。
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
以下を参照してください:
OSインストール後の推奨設定
- ユーザー、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