当前位置:  开发笔记 > 编程语言 > 正文

不能用ansible来源〜/ .bashrc文件

如何解决《不能用ansible来源〜/.bashrc文件》经验,为你挑选了1个好方法。

我有一个文件中的别名列表.bash_aliases,正在被复制到远程服务器ansible playbook.该文件得到复制到目标,但.bashrc(这反过来加载.bash_aliases)文件是没有得到使用以下ansible任务加载.

我试过给出可执行参数

  - name: source the .bashrc file
    shell: source ~/.bashrc
    args:
      executables: "/bin/bash"

没有争论

  - name: source the .bashrc file
    shell: source ~/.bashrc

使用原始模块

  - name: source the .bashrc file
    raw: source ~/.bashrc

使用命令模块 - 名称:源.bashrc文件命令:source~/.bashrc

什么都行不通!任何帮助



1> 小智..:

通过阅读您的评论,您表示您正在尝试制作永久别名,而不是针对特定会话.为什么不在/etc/profile.d中的那些别名中创建那些你需要拥有这些特定别名而不是用户的机器上的别名?

另外,当我在Ansible细节上运行google搜索时出现的另一个帖子,因为我不是Ansible专家...... 不可能使用Ansible来源.bashrc(感谢@chucksmash的链接)

"Steve Midgley

您有两个选项可以使用ansible源代码.一个是"shell:"命令和/ bin/sh(ansible默认值)."来源"被称为"." 在/ bin/sh.所以你的命令是:

-name: source bashrc
sudo: no
shell: . /home/username/.bashrc && [the actual command you want run]

请注意,您必须在采购之后运行命令.bashrc b/c每个ssh会话都是不同的 - 每个ansible命令都在单独的ssh事务中运行.

你的第二个选择是强制Ansible shell使用bash然后你可以使用"source"命令:\

name: source bashrc
sudo: no   
shell: source /home/username/.bashrc && [the actual command you want run]
args:
  executable: /bin/bash

最后,我会注意到,如果您使用的是Ubuntu或类似设备,您可能想要实际获取"/ etc/profile",这样可以更完整地模拟本地登录."

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有