我正在编写一个可执行的剧本来执行各种pm2函数。
我已经搜索了一些,找不到有人设置pm2 logrotate的例子。
我相信我已经接近了,但我不确定我的shell命令是否有效。当我ssh进入子节点并运行sudo pm2 ls
时,它会显示In-memory PM2 is out-of-date, do: $ pm2 update
,尽管我正在从我的剧本中运行该命令。我在这里错过了什么?
---
# RUN playbook
# ansible-playbook -K pm2-setup.yml
- name: Setup pm2 and pm2-logrotate
hosts: devdebugs
remote_user: ansible
become: true
tasks:
- name: Install/Update pm2 globally
community.general.npm:
name: pm2
global: yes
state: latest
- name: Update In-memory pm2
ansible.builtin.shell: pm2 update
- name: Install/Update pm2-logrotate globally
ansible.builtin.shell: pm2 install pm2-logrotate
- name: Copy pm2-logrotate config
ansible.builtin.copy:
src: /home/ubuntu/files/pm2-logrotate-conf.json
dest: /home/ubuntu/.pm2/module_conf.json
owner: root
group: root
mode: '0644'
...
额外的问题:如果不需要shell命令(即,如果已经安装了pm2-logrotate(,有没有方法跳过它们?
我混淆了服务器上的用户。我通过指定作为update命令的ubuntu运行来修复这个问题。