小编WoJ*_*WoJ的帖子

如何在ansible中统一包安装任务?

我从ansible开始,并将使用它在几个 Linux 发行版上安装软件包。

我在文档中看到yumapt命令是分开的 - 统一它们并使用这样的东西的最简单方法是什么:

- name: install the latest version of Apache
  unified_install: name=httpd state=latest
Run Code Online (Sandbox Code Playgroud)

代替

- name: install the latest version of Apache on CentOS
  yum: name=httpd state=latest
  when: ansible_os_family == "RedHat"

- name: install the latest version of Apache on Debian
  apt: pkg=httpd state=latest 
  when: ansible_os_family == "Debian"
Run Code Online (Sandbox Code Playgroud)

我理解这两个包管理器是不同的,但它们仍然有一组共同的基本用法。其他编排器(例如 salt)只有一个安装命令。

package-management ansible

75
推荐指数
3
解决办法
5万
查看次数

为什么 ntp 在无 Internet 启动后没有恢复?

我有一些 Linux 设备(没有 TOY 芯片,所以它们完全依赖于 ntp),它们可以在无法访问互联网的情况下启动(到交换机的链接已启动)。该ntp服务将启动,但显然不会联系任何对等方。然后我最终得到一个ntp正在运行但不与任何对等点同步的服务(ntpq -p给出一个 .INIT.状态)

问题是,当建立到 Internet 的连接时,这确实会改变。

如果连接在启动时可用,则一切正常。同上,如果我手动发出service ntp restart(ntp连接到对等点并且时间正确同步)。

ntp 不应该定期尝试重新连接吗?

  • 如果是:这是我需要配置的东西吗(我在配置中没有看到任何东西)
  • 如果不是:处理服务重启或服务启动延迟的好方法是什么(我可以假设与互联网的连接将在启动后n分钟恢复)

注意:从文档看来,最大池时间(据我所知是 ntp 在放弃之前尝试连接到对等方的最大时间?)是 1024 秒 = 17 分钟,这比建立所需的时间要长得多上网(大约 2 到 5 分钟,最坏情况)

linux ntp ntpd

11
推荐指数
1
解决办法
1519
查看次数

多级主机名有实际意义吗?

A备案hello.world.example.com可以注册

  • 作为hello域中的条目world.example.com
  • 或作为hello.world域中的条目example.com

从解析名称的服务的角度来看,这两种方法之间是否存在实际差异?

据我所知,它们的解析产生了值 A 记录(IP),因此客户端无法识别回复。

domain-name-system dns-zone

10
推荐指数
2
解决办法
1090
查看次数

排除私有 ip 流量的 tcpdump 过滤器

对于排除转储中私有 IP 地址之间的所有流量的通用过滤器,我想出了以下内容:

sudo tcpdump -n '
(not
    (
        (src net 172.16.0.0/20 or src net 10.0.0.0/8 or src net 192.168.0.0/16)
    and
        (dst net 172.16.0.0/20 or dst net 10.0.0.0/8 or dst net 192.168.0.0/16)
    )
) and 
(not
    (
        (dst net 172.16.0.0/20 or dst net 10.0.0.0/8 or dst net 192.168.0.0/16)
    and
        (src net 172.16.0.0/20 or src net 10.0.0.0/8 or src net 192.168.0.0/16)    
    )
)' -w test2.dump
Run Code Online (Sandbox Code Playgroud)

看起来很过分,但它似乎也有效,这个过滤器是否比它需要的时间长得多,并且有更好的方式来表达这个逻辑,或者过滤器有什么问题?

tcpdump

8
推荐指数
2
解决办法
3万
查看次数

带密码的 ssh,回退到 Google Authenticator

随着Google Authenticator的引入以及将其与 ssh一起使用的能力,我想知道是否有人已经通过 sshd_config 设置

  • 首先期待一把钥匙
  • 如果失败,请回退到使用 Google Authenticator 进行身份验证

这个想法通常与密钥无缝连接,并且通常在不太友好的环境中与两个因素机制连接。

ssh google-authenticator

8
推荐指数
1
解决办法
1525
查看次数

如何以UDP模式启动iperf3服务器?

我想测试 UDP 连接iperf3,但不知道如何在 UDP 服务器模式下启动它。

iperf3 -s只打开一个 TCP 套接字:

root@srv ~# lsof -i -P | grep iperf3
iperf3    21030            root    3u  IPv4 15606995      0t0  TCP *:5201 (LISTEN)
Run Code Online (Sandbox Code Playgroud)

bandwidth iperf udp

8
推荐指数
1
解决办法
6万
查看次数

将多个 IP 地址解析回 (PTR) 到一个与任何相关 A 记录都不匹配的名称是否有效?

我有几台设备,每台设备都有自己的 IP 地址。有各种名称指向这些地址(在几个不同的域中)。作为示例,该设备具有

  • IP地址10.0.0.1被称为dev1.example.comabc.example.net
  • IP地址192.168.1.1被称为dev2.example.comxyz.example.net

在各自的 DNS 权威example.comexample.netA记录)中。

我想了解将两个 IP 地址都指向 ( PTR) 指向一个名称(例如,contact-john-doe.example.org)是否会对 DNS 产生影响。

这样做的基本原理是确保在其日志、监控等中看到 IP 地址之一的人获得contact-john-doe.example.org解析名称。这个解析的名称可能会也可能不会指向真实的IP address/ CNAME,由于 IP 地址背后的服务的性质(这些是扫描仪,它们不为最终用户提供任何服务),这应该无关紧要。

domain-name-system reverse-dns

7
推荐指数
1
解决办法
527
查看次数

是否可以编辑docker检查返回的数据?

docker inspect返回有关 docker 映像或容器(或另一个对象)的各种有趣信息。

这些信息存储在哪里?可以编辑吗?

docker

6
推荐指数
2
解决办法
1万
查看次数

为什么 CloudFront 提供的 S3 存储桶中只有 index.html 可用,而没有其他内容?

我正在尝试通过 CloudFront 公开 S3 中托管的静态站点。

S3 存储桶( testyop1) 设置为托管静态网站(非公共模式),其存储桶策略为

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E...."
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::testyop1/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

网站托管配置声明这index.html是索引文档。

在 CloudFront 端,源域名设置为testyop1.s3-website-eu-west-1.amazonaws.com没有任何源路径。该名称取自 S3 网络托管配置(不带http://)。

我可以访问https://xxxxx.cloudfront.net, 以及https://xxxxx.cloudfront.net/index.html(其中 xxxxx 是 CloudFront 生成的名称)

所有其他调用https://xxxxx.cloudfront.net失败

403 Forbidden

Code: AccessDenied
Message: Access Denied
RequestId: F...D
HostId: i...V4X7l4=
Run Code Online (Sandbox Code Playgroud)

尽管.html存在文件(在根目录和子目录中)。

该错误消息是否来自 …

amazon-s3 amazon-cloudfront amazon-web-services

6
推荐指数
1
解决办法
3216
查看次数

为什么当文件存在时 docker-compose 会发出“没有这样的文件或目录”?

我正在测试我的服务器的裸机恢复,它基本上用我的服务启动了一组 docker 容器。我从备份中恢复/etc/docker,在那里我保留了所有配置和持久卷。

然后我尝试启动其中一个容器:

root@srv-backup:/etc/docker# docker-compose --verbose -f /etc/docker/docker-compose.d/20-registry.yaml up
compose.config.config.find: Using configuration files: /etc/docker/docker-compose.d/20-registry.yaml
ERROR: compose.cli.main.main: .IOError: [Errno 2] No such file or directory: '/etc/docker/docker-compose.d/20-registry.yaml'
Run Code Online (Sandbox Code Playgroud)

然而,该文件在那里:

root@srv-backup:/# ll /etc/docker/docker-compose.d/20-registry.yaml
-rwxrwxr-x+ 1 root root 842 Jan 24 15:19 /etc/docker/docker-compose.d/20-registry.yaml*

root@srv-backup:/# cat /etc/docker/docker-compose.d/20-registry.yaml
services:
  registry:
    container_name: registry
    image: registry
    labels:
      - traefik.http.routers.registry.rule=Host(`registry.example.com`)
      - traefik.http.routers.registry.entryPoints=https
      - traefik.http.routers.registry.tls=true
      - traefik.http.routers.registry.tls.certresolver=le
      - traefik.http.middlewares.lan.ipwhitelist.sourcerange=192.168.10.0/24, 192.168.20.0/24
      - traefik.http.routers.registry.middlewares=lan
      - traefik.enable=true
    restart: unless-stopped
    volumes:
      - /etc/docker/container-data/registry:/var/lib/registry
version: '3'

root@srv-backup:/# file /etc/docker/container-data/registry
/etc/docker/container-data/registry: directory
Run Code Online (Sandbox Code Playgroud)

我用相对路径和完整路径尝试了各种咒语 - …

docker docker-compose

6
推荐指数
1
解决办法
2万
查看次数