gpt4 book ai didi

Ansible delegate_to 如何设置用于连接到目标的用户?

转载 作者:行者123 更新时间:2023-12-04 08:56:19 24 4
gpt4 key购买 nike

我有一个 Ansible (2.1.1.) list :

build_machine ansible_host=localhost ansible_connection=local
staging_machine ansible_host=my.staging.host ansible_user=stager

我在没有 ControlMaster 的情况下使用 SSH .

我有一个带有同步命令的剧本:
- name: Copy build to staging
hosts: staging_machine
tasks:
- synchronize: src=... dest=...
delegate_to: staging_machine
remote_user: stager

该命令提示输入错误用户的密码:
local-mac-user@my-staging-host's password:
所以不要使用 ansible_user在 list 中定义或 remote_user在任务中定义以连接到目标(播放中指定的主机),它使用我们连接到的用户 delegate-to box as,连接到目标主机。

我究竟做错了什么?我该如何解决?

编辑:它适用于 2.0.2,不适用于 2.1.x

最佳答案

remote_user设置在剧本级别使用以设置特定的播放运行作为用户。

例子:

---
- hosts: webservers
remote_user: root

tasks:
- name: ensure apache is at the latest version
yum:
name: httpd
state: latest
- name: write the apache config file
template:
src: /srv/httpd.j2
dest: /etc/httpd.conf

如果您只有某个任务需要以不同的用户身份运行,您可以使用 becomebecome_user设置。
- name: Run command
command: whoami
become: yes
become_user: some_user

最后,如果您有一组任务要在游戏中以用户身份运行,您可以使用 block 将它们分组。

例子:
- block:
- name: checkout repo
git:
repo: https://github.com/some/repo.git
version: master
dest: "{{ dst }}"
- name: change perms
file:
dest: "{{ dst }}"
state: directory
mode: 0755
owner: some_user
become: yes
become_user: some user

引用:
- How to switch a user per task or set of tasks?
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html

关于Ansible delegate_to 如何设置用于连接到目标的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38660246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com