Ansible
을 사용하여 제어 호스트에서 원격 서버로 파일 tar.gz
을 복사하려고합니다. 이러한 모든 사이에서한 서버에서 다른 서버로 타르 볼을 복사하는 중
# 0. Copy tar ball into directory.
- name: copy java tar ball
tags: copyJavaTarBall
register: copyJavaTarBallOut
copy: src={{ javaSrcLocation }} dest={{ javaDestLocation }}
#shell: /bin/rsync -v -e "ssh -p {{ ansible_port }} -i {{ ansible_ssh_private_key_file }}" {{ javaSrcLocation }} [email protected]{{ ansible_host }}:/home/sriram
#synchronize:
# src: {{ javaSrcLocation }}
# dest: {{ javaDestLocation }}
# rsync_opts:
#- "-e \" ssh -p {{ ansible_port }} -i {{ ansible_ssh_private_key_file }} \""
#delegate_to: localhost
- debug: var=copyJavaTarBallOut.stdout_lines
의 copy
지시어는 단순한 파일 (텍스트 파일 등) 작동 : 여기에 플레이 모습입니다. 다음과 같은 오류에 tar.gz
아카이브 결과를 사용 :
task path: /root/ansible/playbooks/javaSetup.yml:22
An exception occurred during task execution. The full traceback is:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 119, in run
res = self._execute()
File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 490, in _execute
result = self._handler.run(task_vars=variables)
File "/usr/lib/python2.7/site-packages/ansible/plugins/action/copy.py", line 153, in run
source_full = self._loader.get_real_file(source_full)
File "/usr/lib/python2.7/site-packages/ansible/parsing/dataloader.py", line 402, in get_real_file
if is_encrypted_file(f):
File "/usr/lib/python2.7/site-packages/ansible/parsing/vault/__init__.py", line 152, in is_encrypted_file
b_vaulttext = to_bytes(to_text(vaulttext, encoding='ascii', errors='strict'), encoding='ascii', errors='strict')
File "/usr/lib/python2.7/site-packages/ansible/module_utils/_text.py", line 177, in to_text
return obj.decode(encoding, errors)
MemoryError
fatal: [xx.yy.zz.aa]: FAILED! => {
"failed": true,
"msg": "Unexpected failure during module execution.",
"stdout": ""
}
중 하나 synchronize
또는 정지 된 실행에 shell
지시문 결과 rsync
사용.
내 질문 :
1. 신뢰할 수있는 기능을 사용하여 제어 호스트의 타볼을 대상 서버로 복사하는 방법은 무엇입니까?
** 업데이트 :
- Ansible은과 같이 호출되고 : ANSIBLE_KEEP_REMOTE_FILES=1 ansible-playbook -vvvv -s javaSetup.yml --key-file=sshPvtKeys/pvtKeyFile.pem -c ssh --ask-sudo-pass -l appservers --tags copyJavaTarBall
- 파일 크기가 147M입니다. RAM 크기는 대략 1GB입니다.
"*'copy' 지시어는 단순한 파일에서만 작동합니다."- ** 간단한 파일 **이란 무엇입니까? – techraf
'copy' 모듈은 tgz 파일에서도 작동합니다. 'javaSrcLocation'과'javaDestLocation' 변수의 값은 무엇입니까? 당신은 또한 당신이 작업을 실행하는 데 사용했던'ansible' 또는'ansible-playbook' 명령을 보여줄 수 있습니까? –
파일의 크기는 얼마입니까? 복사 모듈은 RAM에 맞지 않는 파일에 문제가 있습니다. –