在macbook使用ansible

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" enddef test system "sshpass" end end

【在macbook使用ansible】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

    推荐阅读