centos - Ansible 使用 ansible 任务 authorized_key 挂起 systemd-journald(停止记录并淹没 dmesg)

标签 centos ansible ssh-keys systemd

阻止 journald 记录我的剧本有什么问题?

/var/log/messages 不再更新!

我可以用这个简单的独立剧本重现这个问题:

- name: Reproduce journald hang
  hosts: test
  vars:
    - keys:
        - kp_XXX.pub
        - kp_YYY.pub
  tasks:
    - name: Verify journalctl before
      command: journalctl --verify

    - name: Add SSH keys 
      authorized_key: user=cloud key="{{ item }}"
      with_file: keys

    - name: Verify journalctl after
      command: journalctl --verify

key XXX 将使 journald 挂起,但 YYY 不会。
使用 ansible 1.9.4 在 CentOs 7.2 上复制

文件 kp_XXX.pub:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCLd9k03Hvf3QVL8+dYd1KZY9p1ju/RkxHr+t6l6YbMcMfYcLHW6lsNIw2aLC7qpRopQPe/prQZkbXQBy8sYzNUcVtohPTD/V6wX7RXDCiVME9uUztY96Wust1Uc4Z28DhWyC55WFKhetGzfyxK+hMrtORnzdruo/bxHKmGu3rT5HYquB8SlPN/cSG/7itwy6QkXsqzmQUbEvaLPZNwU7qd9LiySFxsbhI2vJz+FiBS+CzkoTKOSZt60I0jRs4wIjXOZjQApcgddGa2ls3vq5HH39Xdr66+PnRU/rrRpaMTrcOTLPzzeWUQoF8VbkSiDXsI8ds+M842DKAT0DFVXnR kp_XXX

文件 kp_YYY.pub:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQBM9IuDxubRnbFh1e1dvFSKE91vrME5h/nQMsZo1Bmt8FXIQ7wJdNh+ANLYyQA7Q0tiXD1n97QQ9r89iwHFEUZVSXc7VM01AE27N45ybfLmLwtNm+kny6ncoPy7+MHcOQS9Ra56u6Bi6xXUc7vM4pL2iB/m0GnUSmECZZ5EVuOpMeJltf04/+PldQGOqxp9BzVF8XKEPlW5uc6UBesPCoHpR9lGA5UIIYq1sUDIGBy3T7FEXu8KhiHrtb1wuDGJU62SqR/fxgJDypjAtedm41TFcTZOMqTR29KYCKC4OjRaUTu7kf4rWq7/HWJViK2NLaeoy9xyG1BUUTqrGY6qRo85 kp_YYY

虽然两个键都添加了,但是第三个任务失败了,journald 挂了:

TASK: [Verify journalctl after] ***********************************************
failed: [test] => {"changed": true, "cmd": ["journalctl", "--verify"], "delta": "0:00:00.008351", "end": "2016-03-31 12:49:58.669585", "rc": 1, "start": "2016-03-31 12:49:58.661234", "warnings": []}
stderr: 248668: invalid object
File corruption detected at /run/log/journal/cf9b563caf2bc11cab56d6a504ff6a29/system.journal:248668 (of 8388608 bytes, 28%).
FAIL: /run/log/journal/cf9b563caf2bc11cab56d6a504ff6a29/system.journal (Cannot assign requested address)

dmesg 记录了大量的这些行:

[  761.806277] systemd-journald[366]: Failed to write entry (27 items, 719 bytes), ignoring: Cannot assign requested address
[  761.807514] systemd-journald[366]: Failed to write entry (23 items, 633 bytes), ignoring: Cannot assign requested address
[  761.859245] systemd-journald[366]: Failed to write entry (24 items, 718 bytes), ignoring: Cannot assign requested address

当使用 journalctl --verify 验证 journald 文件时:

248668: invalid object
File corruption detected at /run/log/journal/cf9b563caf2bc11cab56d6a504ff6a29/system.journal:248668 (of 8388608 bytes, 28%).
FAIL: /run/log/journal/cf9b563caf2bc11cab56d6a504ff6a29/system.journal (Cannot assign requested address)

这是我的错误、ansible 错误还是 centos 错误?

如何修复?

找到这两个相关链接:
https://access.redhat.com/solutions/2117311?tour=6#comments
Claudio's blog

最佳答案

  • 打开控制台!
  • 成为根
  • 检查“journalctl -xn”和“dmesg”的输出
  • 如果你得到这个或类似的东西

    [ 12.713167] systemd-journald[113]:无法写入条目(9 项,245 字节),忽略:无法分配请求的地址

  • 使用“journalctl --verify”验证日志

  • 检查日志是否在“journalctl --disk-usage”大小范围内
  • 到那时您就会知道损坏的日志 - 它们以红色显示,您无法忽略它们
  • 创建一个新文件夹来移动这些文件。
  • 执行 journalctl --verify 重新运行验证并确保
  • 重启

关于centos - Ansible 使用 ansible 任务 authorized_key 挂起 systemd-journald(停止记录并淹没 dmesg),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36334412/

相关文章:

git - 如何在 Github 中查看我的 SSH 公钥和私钥?

python - 使用ansible从字符串中提取数字

docker - 如何定制molecules的docker镜像?

apache - 如何使用带有 centos7/httpd 基本镜像的 Docker 将 EnvironmentFile 指令添加到 systemctl

docker - Centos 服务已启动但仍处于禁用状态

ansible - 使用脚本模块引导 ansible 先决条件。需要Python吗?

amazon-web-services - 创建具有多个 key 对的 ec2 实例

git - 如何让 Git 在访问远程存储库时不要求我输入密码?

node.js - 用于 vue-cli 的 Webpack 开发服务器 : Error spawn EACCES

linux - Perl Cron Jobs = 高服务器负载?