【问题标题】:My playbook is not working. I can't copy the file我的剧本不起作用。我无法复制文件
【发布时间】:2021-06-02 02:31:10
【问题描述】:

Ansible 主机

  • CentOS 6(2.6.32-754.35.1.el6.x86_64)
  • Python 2.6 版
  • Ansible 2.6 版

测试虚拟机

  • CentOS 7(CentOS Linux 版本 7.9.2009(核心)3.10.0-1160.11.1.el7.x86_64)
  • Python 2.7.5

我如何将用户添加到测试服务器

groupadd -g 590 www
groupadd -g 591 playbookuser
adduser -u 690 -g 591 playbookuser
usermod -a -G www playbookuser
mkdir -p /home/playbookuser/.ssh/
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAA==">> /home/playbookuser/.ssh/authorized_keys
chmod 600 /home/playbookuser/.ssh/authorized_keys
chown -R playbookuser.playbookuser /home/playbookuser/
In /etc/sudoers addet "playbookuser ALL=(ALL) NOPASSWD:ALL"

然后我创建并运行剧本:

---
 - hosts: all
   become: yes
   become_method: sudo
   gather_facts: no
   tasks:
     - name: backup sshd config
       copy:
         src: /etc/ssh/sshd_config
         dest: /etc/ssh/sshd_config.bak
         backup: yes

Ansible 通过 ssh 连接到测试机器并执行来自用户 playbookuser 的命令 那么剧本将不起作用,请问是什么问题? PS。如果您在控制台中使用 sudo 前缀从用户运行相同的命令,那么一切正常。

但我收到此错误:

MSG:

an error occurred while trying to read the file '/etc/ssh/sshd_config': [Errno 13] Permission denied: '/etc/ssh/sshd_config'
  to retry, use: --limit @/var/lib/****/workspace/test_adm_deploy/174/backup_sshd%20_config.retry

【问题讨论】:

  • 您正在尝试将本地控制器 sshd 配置文件复制到清单中定义的每个远程目标。启动 playbook 的本地用户无权访问该文件。我怀疑你真正想要的是将远程文件复制到目标机器上的不同位置。在这种情况下,在复制模块中使用remote_src: yes。但在这种情况下,backup: yes 确实是 IMO 的矫枉过正。

标签: ansible centos centos7 ansible-2.x


【解决方案1】:

评论中列出了这个问题的答案。

remote_src:是的

应该添加。

备份:是的

应该删除。

【讨论】:

    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2018-01-14
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多