【问题标题】:Error on ansible playbook installing WordPress with wp-cliansible playbook 使用 wp-cli 安装 WordPress 时出错
【发布时间】:2020-10-25 21:49:36
【问题描述】:

我正在使用 ansible playbook(ansible 版本 2.9)使用 wp-cli 工具安装 WordPress。

这是剧本:

- name: Create WordPress database
  mysql_db: name="{{ db_name }}"
            state=present
            login_user=root
            login_password="{{ mysql_root_password }}"

- name: Create WordPress DB user and grant permissions to WordPress DB
  mysql_user: name="{{ db_user }}"
              password="{{ db_pwd }}"
              priv="{{ db_name }}.*:ALL"
              state=present
              login_user="root"
              login_password="{{ mysql_root_password }}"

- name: Is WordPress downloaded?
  stat: path="/var/www/{{ domain_name }}/html/index.php"
  register: wp_dir

- name: Download WordPress
  command: wp core download
  args:
      chdir: "/var/www/{{ domain_name }}/html/"
  remote_user: "{{ web_user }}"
  when: wp_dir.stat.isdir is not defined

- name: Configure WordPress
  command: wp core config
           --path="/var/www/{{ domain_name }}/html"
           --dbname="{{ db_name }}"
           --dbuser="{{ db_user }}"
           --dbpass="{{ db_pwd }}"
           --dbprefix="{{ db_prefix }}"
  remote_user: "{{ web_user }}"
  when: wp_dir.stat.isdir is not defined

- name: Is WordPress installed?
  command: wp core is-installed
  args:
    chdir: "/var/www/{{ domain_name }}/html/"
  register: wordpress_is_installed
  ignore_errors: True
  remote_user: "{{ web_user }}"

- name: Install WordPress tables
  command: wp core install
            --url="{{ wp_home_url }}"
            --title="{{ wp_site_title }}"
            --admin_user="{{ wp_admin_user }}"
            --admin_password="{{ wp_admin_pwd }}"
            --admin_email="{{ wp_admin_email }}"
  args:
      chdir: "/var/www/{{ domain_name }}/html/"
  when: wordpress_is_installed|failed
  remote_user: "{{ web_user }}"

在“下载 WordPress”任务中,出现致命错误:

“错误:太糟糕了!看起来您是以 root 身份运行此程序。您可能打算以您的 WordPress 安装所在的用户身份运行此程序。”

我以 sudo 用户身份运行 playbook(hosts 文件中的“ansible_user”)。我已经设置了一个额外的用户来管理 WordPress 设置 (remote_user: "{{ web_user }}")。

任何帮助将不胜感激!

【问题讨论】:

    标签: wordpress ansible wp-cli


    【解决方案1】:

    在您需要使用becomebecome_user 而不是remote_user 的任务中,如下所示

    - name: Download WordPress
      command: wp core download
      args:
          chdir: "/var/www/{{ domain_name }}/html/"
      become: yes
      become_user: "{{ web_user }}"
      when: wp_dir.stat.isdir is not defined
    

    【讨论】:

      【解决方案2】:

      现在运行相同的代码时会出现不同的错误:

      FAILED! => {"msg": "Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user (rc: 1, err: chown: changing ownership of '/var/tmp/ansible-tmp-1613648876.307028-8235-221563540981220/': Operation not permitted\nchown: changing ownership of '/var/tmp/ansible-tmp-1613648876.307028-8235-221563540981220/AnsiballZ_command.py': Operation not permitted\n}). For information on working around this, see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user"}
      

      我将 Ansible 更新为可用的最新版本 (2.10)。

      到目前为止,我发现的唯一解决方案是将 allow_world_readable_tmpfiles = Yes 添加到 ansible.cfg 文件中...

      有什么想法吗?

      谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-18
        • 2019-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-10
        • 2013-05-02
        相关资源
        最近更新 更多