brew install ansible

配置主机 sudo vim /etc/ansible/hosts

192.168.0.11 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=passwd

装置

brew install sshpass.rb

sshpass.rb

require 'formula'class Sshpass < Formula  url 'http://sourceforge.net/projects/sshpass/files/sshpass/1.09/sshpass-1.09.tar.gz'  homepage 'http://sourceforge.net/projects/sshpass'  sha256 '71746e5e057ffe9b00b44ac40453bf47091930cba96bbea8dc48717dedc49fb7'  def install    system "./configure", "--disable-debug", "--disable-dependency-tracking",                          "--prefix=#{prefix}"    system "make install"  end  def test    system "sshpass"  endend

nginx-php-install-playbook.yml

---- hosts: all  remote_user: root  vars:    - PHP_VERSION: 7.4    - GROUPUSER: www  tasks:    - name: 'create {{GROUPUSER}} group'      group: name={{GROUPUSER}} state=present    - name: 'create {{GROUPUSER}} user'      user: name={{GROUPUSER}} group={{GROUPUSER}} state=present create_home=False shell=/sbin/nologin    - name: 'software-properties-common'      apt: name=software-properties-common state=present    - name: 'Add php repo'      apt_repository: repo='ppa:ondrej/php'    - name: 'update'      shell: apt update    - name: 'Install php{{PHP_VERSION}} software'      apt:        name:           - php{{PHP_VERSION}}-fpm          - php{{PHP_VERSION}}-redis          - php{{PHP_VERSION}}-common          - php{{PHP_VERSION}}-bcmath          - php{{PHP_VERSION}}-curl          - php{{PHP_VERSION}}-gd          - php{{PHP_VERSION}}-mbstring          - php{{PHP_VERSION}}-mysql          - php{{PHP_VERSION}}-xml          - php{{PHP_VERSION}}-zip          - php{{PHP_VERSION}}-swoole        state: present    - name: 'update php-fpm listen'      lineinfile:        dest: /etc/php/{{PHP_VERSION}}/fpm/pool.d/www.conf        regexp: "listen = *"        line: "listen = 127.0.0.1:9000"    - name: 'update php-fpm group'      lineinfile:        dest: /etc/php/{{PHP_VERSION}}/fpm/pool.d/www.conf        regexp: "listen.group = *"        line: "listen.group = {{GROUPUSER}}"    - name: 'update php-fpm owner'      lineinfile:        dest: /etc/php/{{PHP_VERSION}}/fpm/pool.d/www.conf        regexp: "listen.owner = *"        line: "listen.owner = {{GROUPUSER}}"    - name: "restart php{{PHP_VERSION}}-fpm"      service: name='php{{PHP_VERSION}}-fpm' state=restarted          - name: 'Install nginx'      apt: name=nginx state=present    - name: 'update nginx user'      lineinfile:        dest: /etc/nginx/nginx.conf        regexp: "user www-data"        line: "user {{GROUPUSER}}"            - name: "restart nginx"      service: name=nginx state=restarted