eins,
1. Verwenden Sie das Debug-Modul, um die IP-Adresse des DNS-Servers des aktuell verwalteten Hosts anzuzeigen.
Job-Code:
---
- host: all
tasks:
- debug:
var: ansible_facts.default_ipv4.address
2. Übertragen Sie die Datei „createuser.fact“ als benutzerdefinierte Faktvariablendatei (/etc/ansible/facts.d/) auf den verwalteten Host. Der Inhalt der Datei lautet wie folgt:
[general]
username = wujing
mima = $6$UAxRbhT3kyc=$AxQfYYP8dhCv750tH.rmrmv690ugT/lZU8OGEqSs7xZR0rEvSIurs4w/W88wUiY3hNnZBWS4uCaGUCdztI9An.
Erstellen Sie einen Benutzer mit den Variablen username und mima und legen Sie das Passwort des Benutzers fest.
Job-Code:
---
- hosts: all
tasks:
- file:
path: /etc/ansible/facts.d/
state: directory
recurse: yes
- name: copy file
copy:
src: createuser.fact
dest: /etc/ansible/facts.d/createuser.fact
- debug:
var: ansible_facts.ansible_local.createuser.general.username
- name: create user
user:
name: "{
{ ansible_fact.ansible_local.createuser.general.username }}"
password: "{
{ ansible_fact.ansible_local.createuser.general.mima }}"
3. Schreiben Sie den folgenden Inhalt in die Datei /home/file des verwalteten Hosts:
hostname=当前主机的名字
memory=当前主机的内存大小
BIOS version=当前主机的bios的版本
distribution=当前linux主机的发行版本信息
Size of disk device is 当前主机的磁盘大小
Bearbeiten Sie debug.yml, also „vim debug.yml“.
---
- host: all
tasks:
- debug:
msg: "{
{ ansible_facts.memtotal_mb }} {
{ ansible_facts.bios_version }} {
{ ansible_facts.distribution }} {
{ ansible_facts.devices.nvme0n1.size }}"
Job-Code:
---
- hosts: al
tasks:
- shell: touch /home/file
- name: hostname
lineinfile:
path: /home/file
regexp: '^hostname'
line: hostname={
{
ansible_facts.hostname }}
- name: memory
lineinfile:
path: /home/file
regexp: '^memory'
line: memory={
{
ansible_facts.memtotal_mb }}
- name: bios_version
lineinfile:
path: /home/file
regexp: '^bios_version'
line: bios_version={
{
ansible_facts.bios_version }}
- name: distribution
lineinfile:
path: /home/file
regexp: '^distribution'
line: bios_version={
{
ansible_facts.distribution }}
- name: devices.nvme0n1.size
lineinfile:
path: /home/file
regexp: '^devices.nvme0n1.size'
line: bios_version={
{
ansible_facts.devices.nvme0n1.size }}
zwei,
1. Wenn die Root-Partitionskapazität des aktuell verwalteten Hosts größer als 1 GB ist, installieren Sie die Softwarepakete httpd und mariadb-server. Wenn die Dienste httpd und mariadb nicht ausgeführt werden, führen Sie die Dienste aus.
Job-Code:
---
- hosts: all
tasks:
- name: install pkg
yum:
name:
- httpd
- mariadb-server
when: item.mount == "/" and item.size_total > 1000000000
loop: "{
{ ansible_facts.mounts }}"
- name: start service
service:
name: "{
{ item }}"
state: started
loop:
- httpd
- mariadb
2. Kopieren Sie die Datei example.conf in das Verzeichnis /etc/httpd/conf.d/. Der Inhalt der Datei example.conf lautet wie folgt:
<virtualhost *:80>
servername 0.0.0.0
documentroot /var/www/html
</virtualhost>
<directory /var/www/html>
allowoverride none
require all granted
</directory>
Wenn die Dateien im Verzeichnis /etc/httpd/conf.d/ aktualisiert werden, starten Sie den httpd-Dienst neu. Der Inhalt der Konfigurationsdatei /var/www/html/index.html lautet wie folgt:
zuoye
Job-Code:
---
- host: node02
tasks:
- copy:
src: example.conf
dest: /etc/httpd/conf.d/example.conf
hostify: restart httpd
- copy:
content: "zuoye\n"
dext: /var/www/html/index.html
- service:
name: firewalld
state: stopped
handlers:
- name: restart httpd
service:
name: httpd
state: restarted
„vim example.conf“
<virtualhost *:80>
servername 0.0.0.0
documentroot /var/www/html
</virtualhost>
<directory /var/www/html>
allowoverride none
require all granted
</directory>
3. Erstellen Sie ein Playbook mit den folgenden Anforderungen:
Dieses Playbook wird auf allen kontrollierten Knoten ausgeführt.
Dieses Playbook überschreibt den Inhalt der Datei /etc/message.
Auf den Hosts in der Dev-Hostgruppe lautet der Inhalt: Entwicklung.
Auf den Hosts in der Testhostgruppe lautet der Inhalt: Prüfen.
Job-Code:
---
- host: all
tasks:
- copy:
content: "development"
dest: /etc/message
when: inventory_hostname in groups.dev
- copy:
content: "Test "
dest: /etc/message
when: inventory_hostname in groups.test