在使用 box bento/centos-7 的新 Vagrant VM 上,以下命令破坏了我的 pip 安装:
yum update
yum install epel-release -y
yum install python-pip -y
/usr/bin/pip2 install --upgrade pip setuptools pyOpenSSL psycopg2-binary lxml
Run Code Online (Sandbox Code Playgroud)
这最终失败了
Downloading https://files.pythonhosted.org/packages/84/48/5c99d8770fd0a9eb0f82654c3294aad6d0ba9f8600638c2e2ad74f2c5d52/setuptools-52.0.0.tar.gz (2.1MB)
100% |????????????????????????????????| 2.1MB 821kB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "setuptools/__init__.py", line 16, in <module>
import setuptools.version
File "setuptools/version.py", line 1, in <module>
import pkg_resources
File "pkg_resources/__init__.py", line 1367
raise SyntaxError(e) from e
^
SyntaxError: invalid …Run Code Online (Sandbox Code Playgroud) 在新的,新的CentOS 7.0 VM Rbenv安装不会为我安装红宝石
[vagrant@ad-proxy ~]$ rbenv install 2.2.4
Downloading ruby-2.2.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2
error: failed to download ruby-2.2.4.tar.bz2
BUILD FAILED (CentOS Linux 7 using ruby-build 20170405-4-g365dd1f)
Run Code Online (Sandbox Code Playgroud)
它显示了更详细的记录
[vagrant@ad-proxy ~]$ rbenv install 2.2.4 -v
/tmp/ruby-build.20170515092651.20803 ~
Downloading ruby-2.2.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2
curl: (35) Peer reports incompatible or unsupported protocol version.
error: failed to download ruby-2.2.4.tar.bz2
BUILD FAILED (CentOS Linux 7 using ruby-build 20170405-4-g365dd1f)
Run Code Online (Sandbox Code Playgroud)
这个问题似乎起源于例如卷曲
[vagrant@ad-proxy ~]$ curl https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2
curl: (35) Peer reports incompatible or unsupported protocol version.
[vagrant@ad-proxy ~]$ curl https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2 -v …Run Code Online (Sandbox Code Playgroud) no_proxy我对Linux上的环境变量感到困惑。
互联网上有很多说明显示前导点,例如.localdomain.com /sf/answers/1380391281/
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
Run Code Online (Sandbox Code Playgroud)
这个例子是与使用有关的wget。但我无法确认这是否有效。例如,在 Ubuntu 18.04 上,我删除了前导点以使其正常工作。请注意,例如我使用的是子域wget mysite.localdomain.com。
export no_proxy="localhost,127.0.0.1,localaddress,localdomain.com"
Run Code Online (Sandbox Code Playgroud)
当我使用 a 时,curl它将与前导点一起使用。
看来no_proxy配置方式应该取决于工具?curl对于和 来说是不同的wget。
no_proxy是否存在适用于所有工具的约定?
我想写出每个完整的域名都会起作用。
我正在尝试将一些日志记录添加到我的Chef配方中.
在其他食谱中,我注意到使用Chef::Log.info,例如:
Chef::Log.info("Connection to database '#{dbname}' on '#{host}' failed")
Run Code Online (Sandbox Code Playgroud)
我想知道这是做什么的.日志记录不会出现在任何地方,不会出现在控制台中,也不会出现在日志文件中.Chef网站似乎也没有记录为什么以及如何使用它.
为什么要添加这样的信息日志语句?你在哪里可以看到这样的消息?这需要高级功能吗?
我的knife.rblog_level如下
log_level :info
log_location STDOUT
Run Code Online (Sandbox Code Playgroud) 我正在尝试更改schemaLocation我的xjb文件以使用不使用URL的远程文件,而是使用也受版本控制的本地副本.
所以例如我的xjb文件有类似的东西
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsd:ID="JaxbBindingsForWMiddleware"
version="2.0">
<jxb:bindings node="/xsd:schema"
schemaLocation="http://myserver:80/a/b/c/d/myxsd.xsd">
Run Code Online (Sandbox Code Playgroud)
当我将其更改为本地副本时
schemaLocation="../../src/main/resources/myxsd.xsd">
Run Code Online (Sandbox Code Playgroud)
mvn clean install 将会失败并显示类似的消息
[警告]引起:com.sun.istack.SAXParseException2; systemId:file:/ E:/somefolder/somefolder/myjavaproject/target/bindings/myxjb.xjb; lineNumber:33; columnNumber:33; "file:/ E:/somefolder/somefolder/myjavaproject/target/bindings/mywsdl.wsdl"不是此编译的一部分.这是"file:/ E:/somefolder/somefolder/myjavaproject/target/bindings/myxjb.xjb"的错误吗?
我注意到它正在目录中查找我的wsdl文件target.我可以schemaLocation以指向src目录的方式操纵它.然后路径存在,但消息仍然存在.
我也可以将wsdl放在目标目录中,java尝试在其中找到它,但在这种情况下,消息保持不变.
所以看起来需要特定的东西来使它成为这个编译的一部分.应该怎么做才能以正确的方式编译它?
我正在使用template模块创建一个 systemd 服务
---
- name: Systemd service
template:
src: sonar.unit.j2
dest: /etc/systemd/system/sonarqube.service
when: "ansible_service_mgr == 'systemd'"
Run Code Online (Sandbox Code Playgroud)
sonarqube.service 的内容当然可以改变。更改时我想重新启动服务。我怎样才能做到这一点?
我总是用来在目标节点上安装/构建 Ansible 代理的步骤之一是pip2 install pyOpenSSL. 这是您的 Ansible 客户端的要求,以便使用标准 Ansible 模块创建自签名证书,例如openssl_certificate
从今天起这不再有效。
我可以按如下方式重现此消息:
vagrant init generic/ubuntu1804
vagrant ssh
sudo su -
apt-get update && apt-get -y install python python-pip
pip2 install pyOpenSSL
Run Code Online (Sandbox Code Playgroud)
最后一步失败并显示以下消息。目前在 Ubuntu 18.04 上安装pyOpenSSL 的正确方法是什么?这个问题有解决方法吗?
或者更好的是,是否有适用于 Ansible 的 Python 发行版?这包括所有依赖项,所以我不必编译构建我自己的 Ansible 客户端?
root@ubuntu1804:~# pip2 install pyOpenSSL
Collecting pyOpenSSL
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fc72409d5d0>: Failed to establish a new connection: [Errno -3] Temporary failure …Run Code Online (Sandbox Code Playgroud) 我正在构建和安装本地gem.还有详细的宝石安装只是坐在那里等待很长一段时间.没有输出.
当有输出时,它会在几秒钟内完成.
人们可以期待安装本地宝石快速进行,但显然它正在做一些事情,可能在网络上,虽然宝石是本地的,这需要永远.
关于如何解决这个问题的任何想法?
我正在研究一个厨师食谱,现在我想知道如何调试食谱。这似乎并不都是直截了当的。
例如添加简单的日志语句不清楚。我可以使用例如
Chef::Log.info "My message"
Run Code Online (Sandbox Code Playgroud)
但目前尚不清楚此消息将记录在何处。即使有详细输出,它也不会出现在厨师客户端运行控制台中,例如如下
knife ssh mynode "sudo chef-client" --manual-list --ssh-user myuser -VV
Run Code Online (Sandbox Code Playgroud)
迄今为止我发现的最好/最先进的调试方法只是引发异常。一点都不先进。
我想知道 Chef 是否可以使用remote_file使用自签名证书的 https 源中的资源。好像不可以。文档未提及证书并提供禁用 SSL 检查的配置。
如果您有一个带有自签名证书的 https 站点,则可以使用具有以下内容的配方进行复制:
remote_file "/tmp/image.png" do
source "https://mywebsite.com/image.png"
end
Run Code Online (Sandbox Code Playgroud)
您当然可以使用knife在目标节点上获取证书,如下所示
vagrant@devops:~$ Knife ssl fetch https://mywebsite.com/
警告:未找到 Knife 配置文件
警告:来自 mywebsite.com 的证书将被获取并放置在您的 trust_cert 目录中 (/home/vagrant/.chef/trusted_certs )。
Knife 无法验证这些证书是否正确。下载后您应该验证这些证书的真实性。
这似乎没有做太多/任何事情。厨师将继续显示消息
==>默认值:[2015-06-08T06:30:33+00:00]错误:remote_file[/tmp/image.png](jenkins::remote_file_test第1行)有错误:OpenSSL::SSL::SSLError : SSL_connect 返回=1 errno=0 state=SSLv3 读取服务器证书 B: 证书验证失败
也许这是一个错误?Chef 似乎忽略了受信任的证书。
有解决方法吗?我们能让 Chef 以某种方式信任该证书吗?
更新 Tensibai 给出了正确答案。看他的评论。