需求:
\n\n环境:
\n\n询问:
\n\nDef 欣赏基于类似现实世界经验的解决方案。
\n\n假设:
\n\n澄清:
\n\n目标服务器:
-bash-4.2$ python -V
Python 2.7.5
-bash-4.2$ pip list | grep psycopg2
psycopg2 (2.8.3)
Run Code Online (Sandbox Code Playgroud)
但如果使用此任务运行 ansible playbook 将失败:
- name: Create repmgr database
postgresql_db:
name: repmgr
become: true
become_user: postgres
Run Code Online (Sandbox Code Playgroud)
错误:
TASK [db : Create repmgr database] ***************************************************************************
fatal: [192.168.0.1]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (psycopg2) on db's Python /usr/bin/python. Please read module documentation and install in the appropriate location. If the required library is installed, but Ansible is using the wrong Python …Run Code Online (Sandbox Code Playgroud) 我找到了一个 Django 项目,但未能通过以下方式使其在 Docker 容器中运行:
git clone https://github.com/hotdogee/django-blast.git我有以下 Dockerfile:
FROM python:2
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
Run Code Online (Sandbox Code Playgroud)
对于docker-compose.yml我来说:
version: "3"
services:
db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
Run Code Online (Sandbox Code Playgroud)
接下来,我遇到了这个错误:
$ docker-compose build
...
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python -c 'import …Run Code Online (Sandbox Code Playgroud) 我有一个简单的基于 Python 的 Web 服务器,在使用 docker compose 设置的容器中运行,该容器公开端口 8080。
\n当我 docker-compose up 服务时,它报告端口已公开,但端口未向外部公开。
\n接下来我应该看什么诊断?
\n这是一个典型的运行
\n\xe2\x9e\x9c demo04 sudo docker-compose up -d\nRecreating leagueweb_database ... done\nRecreating leagueweb_server ... done\nRun Code Online (Sandbox Code Playgroud)\nPython Web 服务器(使用 CherryPy)报告它已正常启动并打开端口 8080。
\nleagueweb_server | [25/Jan/2022:11:27:21] ENGINE Serving on http://127.0.0.1:8080\nRun Code Online (Sandbox Code Playgroud)\nDocker 报告它正在转发端口 8080
\n\xe2\x9e\x9c demo04 sudo docker-compose ps\n Name Command State Ports\n------------------------------------------------------------------------------------------------------------------------\nleagueweb_database /entrypoint.sh mysqld Up (healthy) 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp\nleagueweb_server ./wait-for-it.sh database: ... Up 0.0.0.0:8080->8080/tcp,:::8080->8080/tcp\nRun Code Online (Sandbox Code Playgroud)\n从远程 PC 进行测试,我可以看到虽然端口 3306 是外部开放的,但端口 8080 却没有。
\nPS …Run Code Online (Sandbox Code Playgroud) 我正在使用 Gentoo Linux 并且我想安装 Python2.5 但有一个问题。
该命令emerge -av python输出以下内容,
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild U ] dev-lang/python-3.1.2-r3 [3.1.1-r1] USE="gdbm ipv6 ncurses readline ssl threads (wide-unicode%*) xml -build -doc -examples -sqlite* -tk -wininst (-ucs2%)" 9,558 kB
[ebuild U ] app-admin/python-updater-0.8 [0.7] 8 kB
Run Code Online (Sandbox Code Playgroud)
还有更多版本的 ebuild:
# ls /usr/portage/dev-lang/python
ChangeLog
files
Manifest
metadata.xml
python-2.4.6.ebuild
python-2.5.4-r4.ebuild
python-2.6.4-r1.ebuild
python-2.6.5-r2.ebuild
python-3.1.2-r3.ebuild
Run Code Online (Sandbox Code Playgroud)
如何选择我想要的ebuild?(python-2.5.4-r4)
更新
@Ophidianemerge -av =python-2.5.4-r4工作..谢谢
有什么办法可以看到是什么开始了这个过程,为什么?
$ ps -e
PID TTY TIME CMD
...
41 ?? 0:00.55 /System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 RHEL 5.7 机器上构建 Python3,我成功地构建了 Python 3.2.2,使用:
# Install required build dependencies
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
# Fetch and extract source. Please refer to http://www.python.org/download/releases
# to ensure the latest source is used.
wget http://www.python.org/ftp/python/3.2/Python-3.2.tar.bz2
tar -xjf Python-3.2.tar.bz2
cd Python-3.2
# Configure the build with a prefix (install dir) of /opt/python3, compile, and install.
./configure --prefix=/opt/python3
make
Run Code Online (Sandbox Code Playgroud)
但是我在使用 Python 3.2.3 时失败了(?):
Failed to build these modules:
_posixsubprocess
Run Code Online (Sandbox Code Playgroud)
这是一个应该困扰我的问题吗?我如何构建它?我找到了这个补丁,但它没有包含在我从网站上获得的 Python 3.2.3 源中......
这是 stderr 的输出: …
问题:我有一个脚本,它以 root 身份通过 cron 作业定期运行,但我想给人们一种通过网页异步启动它的方法。(将编写脚本以确保它不会运行重叠实例等。)
我不需要用户登录或拥有帐户,他们只需单击一个按钮,如果脚本准备好运行,它就会运行。用户可以为脚本选择参数(作为输入进行了大量过滤),但为简单起见,我们会说他们只有选择按下的按钮。
作为一个简单的测试,我在 cgi-bin 中创建了一个 Python 脚本。chown-ing 到 root:root 然后对它应用 "chmod ug+" 没有得到预期的结果:它仍然认为它具有网络服务器帐户的有效组......据我所知,这不是允许。
我读到用编译的 cgi 程序包装它可以完成这项工作,所以我创建了一个 C 包装器来调用我的脚本(它的权限恢复到正常)并给可执行文件根权限和 setuid 位。那行得通……脚本运行起来就像 root 运行它一样。
我的主要问题是,这是否正常(需要二进制包装器来完成工作),这是安全的方法吗?它不是面向世界的,但我仍然想学习最佳实践。
更广泛地说,我经常想知道为什么编译后的二进制文件在实践中比脚本更“可信”?我认为你会信任一个人类可读的文件,而不是一个神秘的二进制文件。如果攻击者可以编辑文件,那么您就已经有麻烦了,如果是您无法轻松检查的文件,则更是如此。简而言之,我希望它在此基础上反过来。你的意见?
我尝试使用 Python 的 HP-ILO 模块连接到 HP 刀片服务器(HP BladeSystem c3000 Enclosure)。
obj=hpilo.Ilo('172.8.2.29', login='Administrator', password='<redacted>', timeout=60, port=443, protocol=None, delayed=False)
Run Code Online (Sandbox Code Playgroud)
使用 python 库创建了一个 HP-ILO 对象并尝试获取资产标签详细信息,但出现以下错误。
hpilo.IloError:远程返回虚假数据,可能不是 iLO
Python API:https : //pythonhosted.org/python-hpilo/ilo.html
我也可以通过浏览器和 ssh 客户端连接服务器,但我无法通过 RIBCL 脚本或使用 python 连接服务器。
我有一个运行某些脚本的 Ubuntu 服务器,应该通过 ssh 进入 Windows 服务器来执行数据。我正在使用 python 进行开发,并使用 paramiko 进行 ssh。
目前,windows 登录 ssh 密码以纯文本形式提供。
有什么好方法可以存储/检索密码,以便如果有人阅读代码,他们就无法轻松获取密码?