Как Ansible запустить внутри контейнера - PullRequest
0 голосов
/ 10 апреля 2020

как установить ansible на узле управления без inte rnet (debian9). или управляйте docker. Я пытаюсь запустить его внутри контейнера и получить ошибку. Dockerfile

FROM debian:stretch
ENV ANSIBLE_VERSION 2.9.6
RUN echo "===> Installing python, sudo, and supporting tools..." && \
apt-get update -y && apt-get install --fix-missing && \
DEBIAN_FRONTEND=noninteractive \
apt-get install -y \
python python-yaml sudo \
curl gcc python-pip python-dev libffi-dev libssl-dev && \
apt-get -y --purge remove python-cffi && \
pip install --upgrade pip && \
pip install --upgrade pycrypto cffi pywinrm && \
\
\
\
echo "===> Installing Ansible..." && \
pip install ansible==${ANSIBLE_VERSION} && \
pip install python-keyczar docker-py && \
\
\
\
echo "===> Installing handy tools (not absolutely required)..." && \
apt-get install -y sshpass openssh-client && \
\
\
echo "===> Removing unused APT resources..." && \
apt-get -f -y --auto-remove remove \
gcc python-pip python-dev libffi-dev libssl-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* && \
\
\
echo "===> Adding hosts for convenience..." && \
mkdir -p /etc/ansible && \
echo 'localhost' > /etc/ansible/hosts
RUN mkdir ~/.ansible
ENV ANSIBLE_GATHERING smart
ENV ANSIBLE_HOST_KEY_CHECKING false
ENV ANSIBLE_RETRY_FILES_ENABLED false
ENV ANSIBLE_ROLES_PATH /ansible/playbooks/roles
ENV ANSIBLE_LIBRARY /ansible/library
ENV ANSIBLE_SSH_PIPELINING True
WORKDIR /ansible/playbooks
USER root
# default command: display Ansible version
CMD [ "ansible-playbook", "--version" ]

Я могу использовать команду, чтобы получить версию, успешно:

 docker run --rm -it --net=host -v $(pwd):/ansible/playbooks ansible:debian ansible-playbook --version

Но когда извините playbook для службы развертывания. sh не может переместиться на удаленный сервер

docker run --rm -it --net=host -v $(pwd):/ansible/playbooks ansible:debian ansible-playbook site.yml

GET ERROR:


fatal: [node01]: UNREACHABLE! => {
"changed": false,
"msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo /ansible/playbooks/.ansible/ansible-tmp-1586502450.39-256495872795300 `\" && echo ansible-tmp-1586502450.39-256495872795300=\"` echo /ansible/playbooks/.ansible/ansible-tmp-1586502450.39-256495872795300 `\" ), exited with result 6",
"unreachable": true
}

помогите мне.

...