如果有人需要,这是我现在的剧本:
- name: Create SSH directory
file: path=/root/.ssh state=directory
- name: Copy SHH key for Git access
copy:
content: "{{ git_ssh_key }}"
dest: /root/.ssh/id_rsa
owner: root
group: root
mode: 0600
# Also tried this, but it also hangs
#- name: Start SSH agent and add SSH key
# shell: eval `ssh-agent -s` && ssh-add
- name: Get new source from GIT
git:
key_file: /root/.ssh/id_rsa
repo: "git@gitlab.com:user/repo.git"
dest: "{{ staging_dir }}"
depth: 1
accept_hostkey: yes
clone: yes
我使用的是Ansible 2.3.1.0,python版本=2.7.12
以下是使其工作的步骤(在MacOS、Ubuntu LTS上用Ansible 2.3.1和Python 2.7.10测试):
>
生成不带密码短语的新SSH密钥对ssh-keygen-f my_ssh_key-n“
。
将my_ssh_key.pub
添加到存储库服务器用户配置文件中
---
- hosts: localhost
gather_facts: no
vars:
git_ssh_public_key: "Your public ssh key"
git_ssh_key: |
-----BEGIN RSA PRIVATE KEY-----
.... actual key here ....
-----END RSA PRIVATE KEY-----
tasks:
- name: Copy SSH public key file
copy:
content: "{{ git_ssh_public_key }}"
dest: /root/.ssh/id_rsa.pub
mode: 0644
- name: Copy SSH private key file
copy:
content: "{{ git_ssh_key }}"
#src: id_rsa
dest: /root/.ssh/id_rsa
mode: 0600
- name: Get new source from GIT
git:
repo: "git@gitlab.com:user/repo.git"
dest: "/var/www/"
depth: 1
accept_hostkey: yes
clone: yes
重要保安通告
如果你想在现实世界中使用这个例子,请不要用明文保存你的私钥--使用Ansible Vault。
您也不应该使用root作为ansible用户。在没有sudo权限的情况下创建新用户会更加安全。
问题内容: 如何使用XMLStreamWriter确切地编写我输入的内容?例如,如果我创建脚本标签并用javascript填充,我不希望我所有的单引号都以‘ 这是我编写的一个小测试,它没有使用我已经使用的任何抽象,只是调用了writeCharacters。 这会为围绕hello world的两个单引号生成一个apos实体。 问题答案: 无法逃脱 。只逃脱 , 并且 和 也逃脱 (见的javadoc
我正在尝试使用模块:ping ping远程主机。我的主机文件如下所示: 命令:手动我可以在主机上使用相同的用户A成功地进行ssh,但不能通过ansible 调试日志: 找不到配置文件;使用默认值 加载类型为stdout的最小回调,v2.0 为用户建立SSH连接:userA SSH:EXEC ssh-c-vvv-o strithostkeychecking=no-o kbdinteractiveau
问题内容: 我有这两个容器,例如(CentOs)和。我想拥有的是,可以从容器中连接到mongo数据库,就像它在本地运行一样, 无论如何,据我所知,您可以像这样将端口localhost:27017映射到mongo:27017 但是,如果执行此操作,则必须提供root密码,然后它会将我登录到容器中,并且不会发生端口转发 背景:我想这样做是因为我正在运行一个Java程序,该程序连接到localhost上
但是现在要通过Java的JSch库来完成,怎么做呢?第一次尝试了portforwarding,但在终端上我没有这样做(没有在中设置参数)。 然后我遇到了一个问题,如何使用JSCH SSH到另一个SSH服务器后面的服务器?,但我不明白如何创建tcp隧道!
问题内容: 给定代码: 输出如下: 调试大型json文档时,很难读懂- 使用Newtonsoft.Json的内置功能(不是正则表达式或可能会破坏事情的hack),可以通过任何方式使输出字符串成为有效值: 问题答案: 查看值时,在调试器中看到的是应该在C#文件中使用以获得相同值的字符串值。 确实可以替换 与 而不更改程序的行为。 因此,要获得不同的值,您应该更改JsonConvert的工作方式,但是
我希望能够远程连接到公开了JMX的Java服务,但它被防火墙阻止了。我尝试使用ssh本地端口转发,但是连接失败了。查看wireshark,当您试图与jconsole连接时,它似乎希望在连接到端口9999后通过一些短暂的端口进行连接,这些端口被防火墙阻止。 有没有什么方法可以让jconsole只通过9999连接或者使用代理?这篇文章还是最好的解决方案吗?或者,我是不是漏掉了什么?