标签: rhel7

通过 ansible 使用静态设置配置 centos-7 网络接口的推荐方法

我是 ansible 的新手,一点点谷歌搜索并没有让我很快找到我的问题的正确解决方案。

使用 ansible 将静态网络设置分配给 centos-7 主机的“with the Grain”方式是什么?我觉得这一定是一个非常普遍的需求——而且一定有很多人对在从 rhel-6 到 rhel-7(即, 默认情况下为 network-manager,默认情况下来自内核 systemd 的一致设备命名)。

在 ansible 之前,我一直在卸载网络管理器并通过 /etc/init.d/network-scripts/ifcfg-* 文件手动配置主机——我想我可以使用 ansible_default_ipv4 事实对 ansible 做同样的事情:

    "ansible_default_ipv4": {
        "address": <snip>,
        "alias": "enp3s0",
        "gateway": <snip>,
        "interface": "enp3s0",
        "macaddress": <snip>,
        "mtu": 1500,
        "netmask": "255.255.255.128",
        "network": <snip>,
        "type": "ether"
    }
Run Code Online (Sandbox Code Playgroud)

Ansible far 非常棒,为此我想确保我不会不必要地反对 ansible 谷物。如果有通过ansible管理网络管理器介导的接口配置的好方法,我愿意不卸载网络管理器...

ansible rhel7 centos7

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

SELinux:如何创建新的文件类型

在 RHEL/CentOS 7 上,我试图为文件创建一个新的 SELinux 安全上下文,以支持我正在编写的新服务。

我已经为我的新服务创建了一个类型强制文件,但我无法创建一个系统将识别为文件类型的新类型。

我正在基于此CentOS 5“构建本地策略模块”文档工作,该文档指示我创建一个 TE 文件,然后使用checkmodule并semodule_package编译它。

如果我只是在我的 TE 文件中写入:

type myservice_spool_t;
Run Code Online (Sandbox Code Playgroud)

然后 TE 编译得很好,但是当我尝试时,semanage fcontext我得到了这个:

$ sudo semanage fcontext -a -t myservice_spool_t "/var/spool/myservice(/.*)?" 
ValueError: Type myservice_spool_t is invalid, must be a file or device type
Run Code Online (Sandbox Code Playgroud)

我已经阅读了各种教程,但没有找到一个有效的例子——我所看到的一切都是:

  • 过时 - 例如这个RHEL 4 SELinux 文档页面说应该使用type myservice_spool_t, file_type;但checkmodule说:ERROR 'attribute file_type is not declared'
  • 不完整 - 例如,这个答案会让我使用宏,file_type()但checkmodule说: …

selinux rhel7 centos7

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

如何使用 Puppet 或 MCollective 部署滚动操作系统升级和重启?

我正在寻找对我的基础架构执行定期滚动升级的最佳方法。

通常,这涉及在每台主机上执行此操作,一次一个:

sudo yum update -y && sudo reboot
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了可扩展性的限制。

我只想在我的每个角色中一次重新启动一个节点,这样,比如说,我不会同时关闭所有负载均衡器或数据库集群成员。

理想情况下,我想做类似的事情:

for role in $(< roles_list.txt) ; do
    mco package update_all_and_reboot \
        --batch 1 --batch-sleep 90 \
        -C $role -F environment=test
done
Run Code Online (Sandbox Code Playgroud)

但是,这似乎并不存在。我不确定使用“shell”代理是否是最好的方法?

mco shell run 'yum update -y && reboot' \
    --batch 1 --batch-sleep 90
Run Code Online (Sandbox Code Playgroud)

不过,我是否只是为这项工作寻找了错误的工具?有没有更好的方法来管理这些滚动重启,但我可以以某种方式与我的 Puppet 分配的角色联系起来,这样我就可以放心,我不会一下子删除任何重要的东西,但我仍然可以做一些并行更新和重启?

puppet mcollective rhel7

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

RHEL7 中的 DEFROUTE 与 GATEWAY

我已禁用网络管理器,并且正在使用 ifcfg- 脚本进行网络配置。我试图找出 DEFROUTE="yes" 和 GATEWAY 选项之间的区别。

我理解“ifcfg 文件按数字升序解析,最后一个要读取的 GATEWAY 指令用于在路由表中组成默认路由。” 根据 RHEL 文档。但是 DEFROUTE 是如何使用的呢?

例如 ifcfg-em1 具有 DEFROUTE="yes" 和指定的 GATEWAY 选项。而 ifcfg-em2 只有 GATEWAY 选项。我看到 ifcfg-em2 GATEWAY 作为默认网关被添加到路由表中。完全有 DEFROUTE 的原因是什么?

谢谢,
最好的问候,
罗马

redhat routing linux-networking rhel7

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

如何在rhel 7中启动网络接口?

我得到了一个 rhel7 vmware 模板,用于配置 rhel 7 测试环境。当我创建我的虚拟机时,它启动得很好,只是我的网络接口似乎没有出现。如果我输入 ifconfig -a 我得到以下信息:

ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:50:56:XX:XX:XX  txqueuelen 1000  (Ethernet)
        RX packets 55  bytes 3300 (3.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 792  bytes 62296 (60.8 KiB)
        RX …
Run Code Online (Sandbox Code Playgroud)

networking virtual-machines rhel7

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

cobbler 的 RHEL 文档中的 iptables 命令,在 RHEL 7 中失败

这似乎是一个非常简单的问题。但我在网上看不到任何关于它的信息。该命令来自RHEL 文档本身,所以我希望它可以工作......但它失败了。任何见解?

命令:

/sbin/iptables -A INPUT -m state --state NEW -m tcp -p udp --dport 25150 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

输出:

iptables: Invalid argument. Run `dmesg' for more information.
Run Code Online (Sandbox Code Playgroud)

dmesg 日志:

[ 1719.334534] x_tables: ip_tables: tcp match: only valid for protocol 6
Run Code Online (Sandbox Code Playgroud)

iptables cobbler satellite rhel7

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

注册离线RHEL系统有什么好处?

我有几个 RHEL 7.2 系统,它们没有任何在线连接——也没有通过任何代理或卫星。我确实有订阅,可以按照 RedHat here 的描述附加到系统上。

现在,我的问题是:这样做有什么好处?我仍然无法在线跟踪系统状态或自动下载任何补丁。根据我的理解,只要我至少订阅了一个,我就可以从 RHN 网站手动下载任何软件包,对吗?

感谢您的任何建议!

redhat subscription rhel7

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

错误:无法初始化 NSS 库

在 RHEL-7.7.3 中安装更新或补丁时出现错误..

错误:无法初始化 NSS 库

导入 Python 模块之一时出现问题

需要运行 yum。导致这个问题的错误是:

 

   无法导入名称 ts

 

请安装提供此模块的软件包,或

验证模块是否安装正确。

 

可能是上面的模块不匹配

当前版本的 Python,即:

2.7.5(默认,2016 年 8 月 2 日,04:20:16)

[GCC 4.8.5 20150623(红帽 4.8.5-4)]

 

如果您自己无法解决此问题,请转到

百胜常见问题解答:

  http://yum.baseurl.org/wiki/Faq

我该如何解决?

rhel7

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

yum 组来自哪个存储库?

是否有一种简单的方法可以确定特定 yum 组的来源?

我可以使用yum grouplist.
我可以使用查询组信息yum group info $yum_group_name

困扰我的是我无法确定一个组来自哪个存储库。

我所做的最好的事情是找到保存该组的存储库:

yum_group_name="....."  # or ID 
# find all repository identifiers
# perform yum commands with only 1 repository enabled
cat /etc/yum.repos.d/*  | grep '\[.*\]' | grep -v '#' | tr -d '[]' | xargs -I {} -t sh -c "yum --disablerepo='*' --enablerepo='{}' group info $yum_group_name 2>&1 | grep 'Group:'"
# subsequently, associate a bareurl to repository identifier
Run Code Online (Sandbox Code Playgroud)

假设一个组存在于多个存储库中,我怎么知道使用了哪个?

linux yum rhel7

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

配置透明大页;[总是]、[madvise] 或 [从不]

我们有一堆通用 Centos 7 LAMP 堆栈服务器,它们运行带有底层 MariaDB 数据库的 apache。

来自RHEL 6的RedHat Performance Tuning 文档:

Trasparent Hugepages (THP) 向系统管理员和开发人员隐藏了使用大页面的大部分复杂性。由于 THP 的目标是提高性能,因此其开发人员(来自社区和红帽)已经在广泛的系统、配置、应用程序和工作负载中测试和优化了 THP。这允许 THP 的默认设置提高大多数系统配置的性能。但是,不建议将 THP 用于数据库工作负载。

这听起来很棒,直到数据库部分。实际上,某些 MariaDB 选项(例如 TokuDB 引擎)实际上需要禁用 THP。

很多导游,我发现禁用THP请示更改默认配置transparent_hugepages= always来never。

但是,来自RHEL 7的RedHat Performance Tuning 文档:

为了防止应用程序分配不必要的内存资源,您可以在系统范围内禁用大页面,并仅在 MADV_HUGEPAGE madvise 区域内启用它们

如果我没看错的话,这transparent_hugepages= madvise似乎是一个更好的选择,允许从 THP 中受益的进程使用它们,允许那些不使用它们的进程。

我确实找到了一篇建议这种方法的文章。

为什么这不是默认选项?

有没有transparent_hugepages= never比使用更明智的情况madvise?

redhat rhel7

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