从Jenkins运行任何sudo命令时,我收到以下错误:sudo: no tty present and no askpass program specified.
我知道我可以通过在我的文件中添加NOPASSWD条目来解决这个问题,/etc/sudoers这将允许用户jenkins在不需要密码的情况下运行命令.我可以添加这样的条目:
%jenkins ALL=(ALL)NOPASSWD:/home/me/dir/script.sh
Run Code Online (Sandbox Code Playgroud)
...但这会导致以下问题:https://stackoverflow.com/questions/17414330/how-to-avoid-specifying-full-path-in-sudoers-file
我可以添加这样的条目:
%jenkins ALL=NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
...但是这允许用户jenkins避免所有命令的密码提示,这看起来有点不安全.我只是好奇我的选择是什么,如果有任何最佳实践我应该考虑.
当我输入sudo <command>终端时,我得到sudo: unknown uid 501: who are you?,当我输入时,su我得到su: who are you?
我想我必须在我的个人计算机上以某种方式更改超级用户权限.我现在无法使用sudo命令,但我找不到任何有用的解决方案.我必须对我的/etc/passwd文件做些什么吗?我可以修改吗?
我正在使用Ansible和Jinja2模板,这是一个我无法在Ansible的文档中找到解决方案或浏览Jinja2示例的场景.这是我想在Ansible中实现的逻辑:
if {{ existing_ansible_var }} == "string1"
new_ansible_var = "a"
else if {{ existing_ansible_var }} == "string2"
new_ansible_var = "b"
<...>
else
new_ansible_var = ""
Run Code Online (Sandbox Code Playgroud)
我可以通过组合几种技术来实现这一点,这里的变量赋值:在jinja中设置变量,条件比较在这里:http://jinja.pocoo.org/docs/dev/templates/#if-expression,以及默认值在此过滤:https://docs.ansible.com/playbooks_filters.html#defaulting-undefined-variables,
......但我觉得这太过分了.有更简单的方法吗?
我有一个 Heroku 应用程序对外部服务进行一些 API 调用。存在一些问题,服务想知道哪些 IP 正在拨打电话。
很多类似的基本工具ifconfig,traceroute,netstat,等不上的机器存在。看起来他们正在运行一个非常准系统的 Ubuntu 14.04.5。
我能够使用heroku ps:exec -a <myapp>SSH 进入我的应用程序并使用,ip addr但存在一些问题:
1) 这似乎只允许我通过 SSH 进入 web.1 dyno(并且我正在通过 rest.1、rest.2 等进行我的 API 调用) 2)这些调用通过 Heroku 一侧的路由器。
如何获取所有 dyno 实例和/或路由器的 IP?
Kubernetes提供了一个activeDeadlineSeconds领域都JobSpec和PodSpec
两者有什么区别?我整理了一个activeDeadlineSeconds设置为 20的小工作,在它的 Pod 定义中,我将activeDeadlineSeconds字段设置为 45。这些有点随意,但意味着要间隔开。当我创建/应用 Job 然后运行时kubectl get pods -a --watch,我可以看到 20 截止日期没有任何影响,但第二个截止日期是(我看到DeadlineExceeded输出)。
为了更加确定,我添加terminationGracePeriodSeconds: 10了 PodSpec 并看到了同样的事情。
activeDeadlineSeconds在工作中的目的是什么?它似乎没有向我的容器发送任何信号。
注意:我只是sleep在ubuntu图像上运行命令。当接收到 Kubernetes 发送的 TERM 信号时,这个命令应该退出(所以我希望在 20 秒时有一个 TERM 信号,然后 pod 会在此后不久死亡)
简明的 YAML 定义:
apiVersion: batch/v2alpha1 # K8s 1.7.x
kind: CronJob
spec:
schedule: "*/1 * * * *"
concurrencyPolicy: Allow
jobTemplate:
spec: # JobSpec
activeDeadlineSeconds: 20 # This needs to be …Run Code Online (Sandbox Code Playgroud) 我正在尝试libbsd在 Ubuntu 13.04 上从源代码进行编译。我正在使用工具链进行交叉编译,但 automake 在本地计算机上。我已经aclocal-1.13在 PATH 和所有内容中,但仍然收到此错误。我尝试过查找它们,但找不到任何线索。这里发生了什么?
<...>
config.status: executing libtool commands
CDPATH="${ZSH_VERSION+.}:" && cd .. && /bin/bash /home/me/libbsd/build-aux/missing aclocal-1.13 -I m4
error: cannot get project version.
configure.ac:9: error: AC_INIT should be called with package and version arguments
/usr/share/aclocal-1.13/init.m4:23: AM_INIT_AUTOMAKE is expanded from...
configure.ac:9: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
aclocal-1.13: error: echo failed with exit status: 1
make: *** [../aclocal.m4] Error 1
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏。
我有 linux utils 代码(可以在这里找到:https : //www.kernel.org/pub/linux/utils/util-linux/),我只需要 libuuid,没有别的。我已经尝试设置许多“--disable-”标志,但它似乎仍在编译我不需要的东西。
这是我的实际配置命令:
./configure --disable-libblkid --disable-libmount --disable-mount --disable-losetup --disable-cytune --disable-fsck --disable-partx --disable-uuidd --disable-mountpoint --disable-fallocate --disable-unshare --disable-nsenter --disable-setpriv --disable-eject --disable-agetty --disable-cramfs --disable-bfs --disable-fdformat --disable-hwclock --disable-wdctl --disable-switch_root --disable-pivot_root --disable-kill --disable-last --disable-utmpdump --disable-mesg --disable-raw --disable-rename --disable-login --disable-nologin --disable-sulogin --disable-su --disable-runuser --disable-ul --disable-more --disable-pg --disable-setterm --disable-schedutils --disable-wall --build="$BUILD_ARCH" --host="$HOST_ARCH" --prefix="$outputdir" --exec-prefix="$outputdir"
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
<...build things including libuuid...>
CC fdisks/cfdisk-cfdisk.o
../fdisks/cfdisk.c: In function 'get_string':
../fdisks/cfdisk.c:447:5: warning: implicit declaration of function 'getyx' [-Wimplicit-function-declaration]
../fdisks/cfdisk.c:447:5: warning: nested extern declaration of 'getyx' [-Wnested-externs] …Run Code Online (Sandbox Code Playgroud) 我的.la文件在dependency_libs=部分和libdir=部分都有完整的路径名,这使得我很难将我的库复制到不同的机器(相同的拱但不同的路径结构).有什么解决方案,除了有一些脚本来破解.la文件以调整新机器上的路径?
== ==详细
当我./configure; make; make install我的libfoo,这取决于我如何使用--prefix,--exec-prefix以及DESTDIR=标志,我会得到一个条目libfoo.la,读取文件libdir=/dir1/lib,我将有实际的.so在同一目录的文件libfoo.la.一切都很顺利(就连接的问题而言libfoo),直到我将它们打包并放在另一台机器上.
假设libbar我的第二台机器依赖于libfoo.当我使用我的-L/dir2/lib标志来查找时-lfoo,libbar编译/链接失败,因为libfoo.la文件期望foo安装在/dir1/lib(从第一台机器)实际进入时/dir2/lib.然后我需要dir1用正确的路径替换所有的路径,这两个路径都可能很长而且很复杂.
该dependency_libs=线也以类似的方式发挥作用.
我该如何避免这个问题?
我正在使用Ubuntu 12.04(我认为它是桌面......)并且正在运行vncserver以远程连接它.如果我-geometry在启动服务器时使用该标志,我可以成功设置分辨率,但我希望这是默认值,所以我不必在命令行中包含该标志.vncserver man页面建议使用该$HOME/.vnc/xstartup文件,因此我进行了以下更改:
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-terminal-emulator -geometry 1400x850 -ls -title "$VNCDESKTOP Desktop" &
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我尝试制作默认的"1400x850",这个分辨率在命令行提供时效果很好.我甚至尝试在其他一些文件中设置这个解决方案,这些文件是其他操作系统的解决方案,但这也没有用.我也很好奇它是否与我的X配置有关
这应该是一个相当简单的事情,这里出了什么问题?
给定k8s集群版本,是否有一张表格可以告诉我应该使用哪一组API版本?Kubernetes文档始终假设我始终拥有一个不错的,最新的集群(在撰写本文时为1.12),但是平台提供商并不总是生活在这一前沿,因此它可能很快就令人沮丧。
更好的是,是否存在kubectl我可以运行的命令,该命令可以使我集群告知每个资源类型及其最新支持的API版本?
linux ×4
compilation ×3
autotools ×2
kubernetes ×2
sudo ×2
ubuntu ×2
ansible ×1
autoconf ×1
automake ×1
configure ×1
heroku ×1
heroku-cli ×1
jenkins ×1
jinja2 ×1
kubectl ×1
libtool ×1
linker ×1
linux-kernel ×1
macos ×1
networking ×1
terminal ×1
uid ×1
uuid ×1
vnc ×1
vnc-server ×1