Инструменты пользователя

Инструменты сайта


linux:ansible:ad_hoc

Это старая версия документа!


Ad Hoc команды

C помощью Ad-hoc команд — мы можем запускать различные действия из командной строки . Это самый простой и быстрый способ использования Ansible.

# Проверить существование нового пользователя, создать нового пользователя если он не существует. В данном случае такой пользователь есть поэтому изменения в состоянии «changed»: false.

werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible -i hosts.ini -m user -a "name=werwolf state=present" demo
127.0.0.1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "append": false,
    "changed": false,
    "comment": "werwolf",
    "group": 1000,
    "home": "/home/werwolf",
    "move_home": false,
    "name": "werwolf",
    "shell": "/bin/bash",
    "state": "present",
    "uid": 1000
}

# Проверить существование нового пользователя, создать нового пользователя если он не существует. В данном случае такой пользователь но для создания нового пользователя нехватает прав sudo, выскакивает ошибка.

werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible -i hosts.ini -m user -a "name=werwolf2 state=present" demo
127.0.0.1 | FAILED! => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "msg": "useradd: Permission denied.\nuseradd: cannot lock /etc/passwd; try again later.\n",
    "name": "werwolf2",
    "rc": 1
}

# Проверить существование нового пользователя, создать нового пользователя если он не существует. Передаем параметры для выполнения команды по sudo '-b', и запрос пароля '-K'

werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible -i hosts.ini -m user -a "name=werwolf2 state=present" -b -K demo
BECOME password: 
127.0.0.1 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": true,
    "comment": "",
    "create_home": true,
    "group": 1001,
    "home": "/home/werwolf2",
    "name": "werwolf2",
    "shell": "/bin/sh",
    "state": "present",
    "system": false,
    "uid": 1001
}
werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible -i hosts.ini -m user -a "name=werwolf2 state=absent" -b -K demo
BECOME password: 
127.0.0.1 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": true,
    "force": false,
    "name": "werwolf2",
    "remove": false,
    "state": "absent"
}
werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible -i hosts.ini -m user -a "name=werwolf2 state=present" -e "ansible_become=true ansible_become_password=123" demo
127.0.0.1 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": true,
    "comment": "",
    "create_home": true,
    "group": 1001,
    "home": "/home/werwolf2",
    "name": "werwolf2",
    "shell": "/bin/sh",
    "state": "present",
    "stderr": "useradd: warning: the home directory /home/werwolf2 already exists.\nuseradd: Not copying any file from skel directory into it.\n",
    "stderr_lines": [
        "useradd: warning: the home directory /home/werwolf2 already exists.",
        "useradd: Not copying any file from skel directory into it."
    ],
    "system": false,
    "uid": 1001
}
werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible -i hosts.ini -m user -a "name=werwolf2 state=absent" -e "ansible_become=true ansible_become_password=123" demo
127.0.0.1 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": true,
    "force": false,
    "name": "werwolf2",
    "remove": false,
    "state": "absent"
}
werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible -i hosts.ini -m user -a "name=werwolf2 state=present" demo
127.0.0.1 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": true,
    "comment": "",
    "create_home": true,
    "group": 1001,
    "home": "/home/werwolf2",
    "name": "werwolf2",
    "shell": "/bin/sh",
    "state": "present",
    "stderr": "useradd: warning: the home directory /home/werwolf2 already exists.\nuseradd: Not copying any file from skel directory into it.\n",
    "stderr_lines": [
        "useradd: warning: the home directory /home/werwolf2 already exists.",
        "useradd: Not copying any file from skel directory into it."
    ],
    "system": false,
    "uid": 1001
}
werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible -i hosts.ini -m user -a "name=werwolf2 state=absent" demo
127.0.0.1 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": true,
    "force": false,
    "name": "werwolf2",
    "remove": false,
    "state": "absent"
}

hosts.ini

[demo]
127.0.0.1 ansible_user=werwolf ansible_port=2222 ansible_become=true ansible_become_password=123
linux/ansible/ad_hoc.1700726174.txt.gz · Последние изменения: 2023/11/23 10:56 — werwolf