不能通过ansible将变量回显到远程bashrc

时间:2019-09-19 09:32:42

标签: bash ansible

在某些地方,我无法使用Ansible在远程主机中读写〜/ .bashrc。 我尝试过,以前使用.bashrc尝试过,现在使用.profile尝试,但都徒劳无功:

- name: install elasticsearch
      command: "{{ item }}"
      with_items:
        - "cd /apps/dmg/ && tar -xzf elasticsearch-6.4.3.tar.gz"
        - "cd /apps/dmg/elasticsearch-6.4.3"
        #- echo "ES_HOME=/apps/dmg/elasticsearch-6.4.3" >> ~/.profile
        #- "source ~/.profile" 

我意识到,艰巨的任务不会写到远程主机上的任何文件,因为即使运行此任务后也不存在“〜/ .profile”文件,

changed: [WONTTELLXXXX] => (item=echo "ES_HOME=/apps/dmg/elasticsearch-6.4.3" >> ~/.profile)

1 个答案:

答案 0 :(得分:0)

请勿使用扩展名~(需要引证)

~/.profile

remote_userbecome_user或其他任何需要使用完整路径。例如

"/home/{{ remote_user }}/.profile"

$HOME可能也可以

"$HOME/.profile"


笔记

以下任务将有助于找出正在发生的事情

- command: whoami
  register: result
- debug: var=result.stdout

- command: pwd
  register: result
  args:
    chdir: $HOME
- debug: var=result.stdout

- command: pwd
  register: result
  args:
    chdir: ~
- debug: var=result.stdout