juju4.misp

操作状态 - 主分支 操作状态 - 开发分支

MISP Ansible 角色

这是一个用于设置 MISP(恶意软件信息共享平台与威胁共享)的 Ansible 角色。

替代方案:

要求与依赖

Ansible

已在以下版本中测试:

  • 2.0
  • 2.2
  • 2.3
  • 2.4
  • 2.5

操作系统

已在 Ubuntu 20.04、22.04 和 CentOS 8-Stream 上测试。

示例剧本

只需将此角色包含在您的列表中。例如:

- hosts: all
  roles:
    - juju4.MISP

默认的管理员凭据 (admin@admin.test / admin)

变量

目前没有特别的变量。

持续集成

该角色有一个 Travis 基本测试(用于 GitHub),更高级的测试使用 kitchen 以及 Vagrantfile(test/vagrant)。 默认的 kitchen 配置 (.kitchen.yml) 是基于 LXD 的,而 (.kitchen.vagrant.yml) 是基于 Vagrant/VirtualBox 的。

确保所有必要的角色都存在后,可以使用以下命令进行测试:

$ gem install kitchen-ansible kitchen-lxd_cli kitchen-sync kitchen-vagrant
$ cd /path/to/roles/juju4.MISP
$ kitchen verify
$ kitchen login
$ KITCHEN_YAML=".kitchen.vagrant.yml" kitchen verify

或者

$ cd /path/to/roles/juju4.MISP/test/vagrant
$ vagrant up
$ vagrant ssh

该角色还有 packer 配置,可以创建虚拟机的映像,如 VirtualBox、VMware、DigitalOcean、LXC 等。 在构建时,建议将它放在角色目录之外,因为整个目录会在构建时上传到盒子,并且目前无法排除 packer 目录(https://github.com/mitchellh/packer/issues/1811)。

$ cd /path/to/packer-build
$ cp -Rd /path/to/juju4.MISP/packer .
## 用您当前的 ansible 角色绝对路径更新 packer-*.json
## 您可以在 setup-roles.sh 中添加其他角色依赖
$ cd packer
$ packer build packer-*.json
$ packer build -only=virtualbox-iso packer-*.json
## 如果您想启用额外的日志
$ PACKER_LOG_PATH="packerlog.txt" PACKER_LOG=1 packer build packer-*.json
## 对于 DigitalOcean 构建,您需要在环境中导出 TOKEN。
## 更新您的设置和区域的 json 配置。
$ export DO_TOKEN=xxx
$ packer build -only=digitalocean packer-*.json
## 对于 Azure
$ . ~/.azure/credentials
$ packer build azure-packer-centos7.json
$ packer build -var-file=variables.json azure-packer-centos7.json

故障排除与已知问题

故障排除:

$ tail /var/log/apache2/misp.*
$ tail /var/www/MISP/app/tmp/logs/*.log
$ cd /var/www/MISP/app/Console && ./cake CakeResque.CakeResque tail

已知问题:

  • 在 /var/www/MISP/app/tmp/logs/error.log 中 错误:[MissingTableException] 在默认数据源中未找到模型 Log 的表。 请检查 MySQL 中是否存在 MISP 数据库并是否已填充。

  • MISP curl_tests.sh 是一次性运行的,与 kitchen verify 不同。如果重复运行,该测试将失败。

  • 如果使用特权 Docker 和具有 MySQL 的主机,可能会遇到以下问题:

mysqld[29176]: /usr/sbin/mysqld: error while loading shared libraries: libaio.so.1: cannot stat shared object: Permission denied

https://github.com/docker/docker/issues/7512

  • Docker 和 Redis 也可能会有问题,可能需要在 Xenial 上编辑 systemd 配置。 请参阅任务 'docker redis workaround ???'

  • CI 有时会失败,错误信息为 Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction。似乎与 问题 5004 相关 - 开放中。

  • Ubuntu 22.04 似乎不被支持,因为 php8.1 而 app/composer.json 要求 php >=7.2.0,<8.0.0。

  • Error: Database connection "Mysql" is missing, or could not be created. 可能是由于存在多个 PHP 版本并从 CLI 调用了错误版本造成的。

  • PHP Fatal error: Uncaught TypeError: Return value of Symfony\\Component\\Process\\Process::close() must be of the type int, null returned in phar:///usr/local/bin/composer/vendor/symfony/process/Process.php:1466(RHEL/RockyLinux 8 和 9):根本原因尚未识别,可能与容器/docker 相关,因为它仅在 molecule/docker 中失败,而在裸 GitHub 托管的映像中未失败。

常见问题

待办事项

许可证

BSD 2-clause

关于项目

MISP - Malware Information Sharing Platform & Threat Sharing

安装
ansible-galaxy install juju4.misp
许可证
bsd-2-clause
下载
1.1k
拥有者