环境
我在 IBM 工作,正在尝试为 ubuntu 制作网络启动 (pxe) 原型。这个问题用于识别在使用 juju 部署 https://jujucharms.com/u/openstack-charmers-next/openstack-base/40捆绑包。捆绑包部署了所有必要的服务(openstack、rabbitmq、ceph、mysql(percona)等。不幸的是,开箱即用的 openstack 40 捆绑包在 mysql/percona 部署期间失败。
问题
在为 mysql 设置 percona 时,由于以下原因失败
无法为 Percona Server“root”用户设置密码
上述消息可以在运行 mysql/percona 的 lxc 容器的节点/机器上的 mysql 日志中看到。
如果你使用 juju status 就会看到以下内容:
mysql:
charm: cs:~openstack-charmers-next/trusty/percona-cluster-7
exposed: false
service-status:
current: error
message: 'hook failed: "install"' <=====================
since: 14 Oct 2015 16:19:51Z
relations:
cluster:
- mysql
units:
mysql/0:
workload-status:
current: error
message: 'hook failed: "install"' <=====================
since: 14 Oct 2015 16:19:51Z
agent-status:
current: idle
since: 14 Oct 2015 16:19:51Z
version: 1.24.6
agent-state: error
agent-state-info: 'hook failed: "install"'
答案1
解决
这显示了如何使用仅适用于 mysql (percona) 的独立包来修复它的示例。基本上,必须允许 openstack40 包进入 mysql charm 故障点,然后您必须修复问题。下面是我们在遇到问题后进行的练习,以使只有 mysql(percona) charm 能够工作。只需将 percona.yaml 更改为您使用的 openstack yaml。请注意,对于 ppc64le,您必须获取 openstack 40 yaml 并将其更新为 arch=ppc64el,因为 charm store openstack 40 包仅与 x86 相关。
部署 mysql/percona
juju-deployer -c /root/.juju/bundles/percona.yaml -s 90 -d -v
遇到mysql密码问题。上面列出的问题。
在mysql容器中设置密码
chroot /var/lib/lxc/juju-machine-0-lxc-1/rootfs/ passwd root
---> POC 密码:xxxxxxxx
exit
注意我们在示例中列出了 lxc 机器 juju-machine-0-lxc-1。它必须是 mysql 部署到的 lxc。
登录容器
lxc-console -n juju-machine-0-lxc-1
解决问题
UPDATE mysql.user SET Password=PASSWORD('PASSW0RD') WHERE User='root'; FLUSH PRIVILEGES; exit
告诉 juju 固定魅力
juju resolved mysql/0 --retry --show-log --debug
重新驱动,显示先前的步骤已部署并继续失败的魅力。
juju-deployer -c /root/.juju/bundles/percona.yaml -s 90 -d -v