VPS рдкрд░ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдерд╛рдкрдирд╛

рд╢реБрдн рджреЛрдкрд╣рд░, рд╣рдмреНрд░ред



рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА DevOps - Ansible рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрднреБрдд рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдЖрдЬ рдореИрдВ рдЖрдкрдХреЗ рд╕рдЯреАрдХ рдиреНрдпрд╛рдпрд╛рд▓рдп рдХреЛ рдЗрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рд▓реЗрдЦ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ, рдПрдХ рдЕрджреНрднреБрдд рдЙрдкрдХрд░рдгред рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред



Ansible рдХреНрдпрд╛ рд╣реИ



Ansible рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЕрдзрд┐рдХ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдЕрдкрдиреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ - рдпрд╣ рд╡рд╣ рдЪреАрдЬ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдмрдВрдбрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред



рдХреЛрдИ рдХрд╣реЗрдЧрд╛ рдХрд┐ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рд╡рд░реНрдЪреА, рдХрдардкреБрддрд▓реА рдЖрджрд┐ рд╣реИрдВред рдореИрдВ рдЗрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣рдордд рд╣реВрдВред рдпрджрд┐ рдЖрдк рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдорд╣рд╛рдиред рдореИрдВ рдпрд╣ рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдереЛрдбрд╝рд╛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЖрдВрд╕рд┐рдмрд▓ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрд╡рдЪрд╛рд▓рди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдХрднреА рднреА рдЕрдиреНрд╕рд┐рдмрд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕реЗрд▓реЗрд▓ рдХрдВрдкрдиреА рдХреЗ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдмрдврд╝рд┐рдпрд╛ рд▓реЗрдЦред



рдЕрдзрд┐рдХрддрдо рд╕реНрд╡рдЪрд╛рд▓рди



рдЖрдЗрдП рддрдп рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рд╡реАрдкреАрдПрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдХреЛ рдЙрдмрдВрдЯреВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:



рдЗрд╕ рдХреНрд░рдо рдореЗрдВ, рд╣рдо рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрдорд┐рдХрд╛рдПрдБ рд▓рд┐рдЦреЗрдВрдЧреЗред



рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧреА:

рдЫрд╡рд┐



nginx


рднреВрдорд┐рдХрд╛рдУрдВ / nginx / рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде main.yml рдмрдирд╛рдПрдБ:



- name: Add nginx repository apt_repository: repo='ppa:nginx/stable' - name: Install nginx action: apt pkg=nginx-extras state=installed update_cache=true - name: Disable default site file: path: /etc/nginx/sites-enabled/default state: absent
      
      





рд╕рдм рдХреБрдЫ рдЬреЛ "- рдирд╛рдо" рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, Ansible рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдп рд╣реИред рд╣рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЪрд░рдгреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:

  1. Nginx рднрдВрдбрд╛рд░ рдЬреЛрдбрд╝реЗрдВ (ppa: nginx / рд╕реНрдерд┐рд░)
  2. рдирдЧреНрдиреЗрдХреНрд╕-рдПрдХреНрд╕реНрдЯреНрд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕рдореЗрдВ SPDY рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
  3. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНтАНрдлрд╝рд┐рдЧрд░ рдХреЗ рд▓рд┐рдП рд╕рд┐рдорд┐рд▓рд┐рдВрдХ рд╣рдЯрд╛рдПрдВ


рднреВрдорд┐рдХрд╛рдУрдВ / nginx / рд╣реИрдВрдбрд▓рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде main.yml рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:



 - name: restart nginx service: name: nginx state: restarted
      
      





рдпрд╣ Nginx рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИред рд╣рдореЗрдВ рдЕрдкрдиреЗ Wordpress рдХреЗ рд▓рд┐рдП config рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред



рдпрд╣ рд╕рдм Nginx рдХреЗ рд╕рд╛рде рд╣реИред рджреЛ рд╕рд░рд▓ рдлрд╛рдЗрд▓реЗрдВ рд╣рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ, рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ, рдЗрд╕рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреАред



рд╣рдо рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред



MySQL


рдореБрдЭреЗ Percona MySQL рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрджрдд рд╣реИред рдмреЗрд╣рддрд░ рдпрд╛ рдмрджрддрд░ - рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмрд╣рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред



рд╕рд┐рджреНрдзрд╛рдВрдд рдмрд┐рд▓рдХреБрд▓ рдПрдХ рдЬреИрд╕рд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рднреВрдорд┐рдХрд╛рдПрдВ / рдкреНрд░рддрд┐-рдорд╛рдЗрд╕реНрдХрд▓ / рдХрд╛рд░реНрдп / main.yml:



 - name: Add GPG key for repository command: apt-key adv --keyserver keyserver.ubuntu.com --recv CD2EFD2A - name: Add Percona repository shell: echo "deb http://repo.percona.com/apt {{ ansible_lsb['codename'] }} main" | tee /etc/apt/sources.list.d/percona.list creates=/etc/apt/sources.list.d/percona.list - name: Install Percona MySQL server apt: pkg: "{{ item }}" update_cache: true with_items: - percona-server-server-5.5 - percona-server-client-5.5 - python-mysqldb - name: Change root password (fail is not a problem) mysql_user: name: root password: "{{ mysql_root_password}}" ignore_errors: yes
      
      







рдЕрдм рдХрджрдо:

  1. рднрдВрдбрд╛рд░ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВ
  2. рд╣рдо рдЙрд╕ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде рд╣реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдлрд╝рд╛рдЗрд▓ /etc/apt/source.list.d/percona.list рдмрдирд╛рдИ рдЧрдИ рдереА
  3. рддреАрди рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

    • percona-server-рд╕рд░реНрд╡рд░ 5.5
    • percona-server-рдХреНрд▓рд╛рдЗрдВрдЯ 5.5
    • рдЕрдЬрдЧрд░ (mysqldb) (mysql рд╕рд░реНрд╡рд░ рдХреЛ ansible рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)
  4. рдЪрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдмрджрд▓реЗрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)


рд╣рдо рдиреАрдЪреЗ рдореБрдЦреНрдп yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВрдЧреЗред рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдирд╛рдо, рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЖрджрд┐ рдХреЛ рднреА рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



PHP5


рдЪреВрдВрдХрд┐ рд╣рдо рдЕрдкрд╛рдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо php-phpm рдХреЗ рд╕рд╛рде php рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рднреВрдорд┐рдХрд╛ / php5 / рд╣реИрдВрдбрд▓рд░ / main.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ php5-fpm рд╕реЗрд╡рд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:



 - name: restart php5-fpm service: name: php5-fpm state: restarted
      
      





рдбреЗрдореЙрди рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП php5-fpm рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред

рднреВрдорд┐рдХрд╛ / php5 / рдХрд╛рд░реНрдп / main.yml:



 - name: install php5 apt: pkg={{ item }} with_items: - php5 - php5-cgi - php5-fpm - php5-memcache - php5-memcached - php5-mcrypt - php5-mysql - php5-gd - php5-curl - php5-xmlrpc - name: change listen socket lineinfile: dest: '/etc/php5/fpm/pool.d/www.conf' insertafter: 'listen = 127.0.0.1:9000' line: 'listen = /var/run/fpm.socket' notify: restart php5-fpm
      
      





рдкрд╣рд▓рд╛ рдХрджрдо рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред

рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ рдХрджрдо рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЖрдЗрдП рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред Nginx рдореЗрдВ рд╣рдо php5-fmp рдХреЗ рд╕рд╛рде рдпреВрдирд┐рдХреНрд╕ рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ php5-fpm рдбреЗрдорди рдХреЗ www рдкреВрд▓ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЙрд╕ рдорд╛рд░реНрдЧ рдкрд░ рд╕реЙрдХреЗрдЯ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИред рд▓рд╛рдЗрдирдЗрдирдлрд╛рдЗрд▓ рдореЙрдбреНрдпреВрд▓ рд╣рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:





memcached


рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдпрд╣ рд╣реИред рднреВрдорд┐рдХрд╛ / рдореЗрдордХреЗрдЪреНрдб / рдХрд╛рд░реНрдп / main.yml:

 - name: install memcached server apt: pkg: memcached
      
      





Wordpress


рдпрд╣рд╛рдВ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Wordpress рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ nginx рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдБред рдпрд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ рдХреНрдпреЛрдВ? рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдЖрдк рдХрд┐рд╕реА рднреА рднреВрдорд┐рдХрд╛ рдХреЛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдЕрдиреНрдп рдЕрдирд╕реБрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдПрдХ рдФрд░ рднреВрдорд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдХреЛ рддреИрдирд╛рдд рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдЖрдкрдХрд╛ рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯред рдпрд╛рдиреА рдпрд╣ рдЖрдо рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред



рддреЛ рднреВрдорд┐рдХрд╛рдПрдВ / рд╡рд░реНрдбрдкреНрд░реЗрд╕ / рдХрд╛рд░реНрдп / main.yml:



 - name: creating database mysql_db: name: "{{ db_name }}" state: "present" login_user: "root" login_password: "{{ mysql_root_password }}" - name: creating database user mysql_user: name: "{{ db_user }}" password: "{{ db_password }}" priv: "{{ db_name }}.*:ALL" state: "present" login_user: "root" login_password: "{{ mysql_root_password }}" - name: install nginx configuration template: src: wordpress.conf dest: /etc/nginx/sites-available/wordpress.conf notify: restart nginx - name: activate site configuration file: src: '/etc/nginx/sites-available/wordpress.conf' dest: '/etc/nginx/sites-enabled/wordpress.conf' state: 'link' - name: download WordPress get_url: url: "{{ download_url }}" dest: "/tmp/latest.tar.gz" - name: creating directory for WordPress file: path: "{{ wpdirectory }}" state: "directory" owner: "www-data" group: "www-data" - name: unpack WordPress installation shell: "tar xvfz /tmp/latest.tar.gz -C {{ wpdirectory }} && chown -R www-data:www-data {{ wpdirectory }}"
      
      





рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ:

  1. рд╣рдо рдХрдиреЗрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ (рд░реВрдЯ рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ
  2. рд╣рдо рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдирдП рдмрдирд╛рдП рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрд╕рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ
  3. рд╣рдо рдПрдХ рдкреВрд░реНрд╡-рддреИрдпрд╛рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Nginx рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ Nginx рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд рднреЗрдЬрддреЗ рд╣реИрдВ
  4. рд╣рдо рд╕рд░реНрд╡рд░ рдХреЛ Nginx рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирддрд╛ рд╣реИ
  5. рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  6. Wordpress рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ
  7. рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдзрд┐рдХрд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдВ


рдЕрдм Nginx рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рд░реЛрд▓реНрд╕ / рд╡рд░реНрдбрдкреНрд░реЗрд╕ / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / wordpress.conf:



 server { listen 80 default_server; root {{ wpdirectory }}/wordpress; index index.php index.html index.htm; server_name {{ domain }}; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } } server { listen 80; server_name www.{{ domain }}; location / { return 301 http://{{ domain }}; } }
      
      





Nginx рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИ рдФрд░ рдПрдХ рднреА рдирд╣реАрдВред рдЪрд▓реЛ рдЗрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рд╣реЛрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВред



рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛


рд╣рдореЗрдВ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП Ansible рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ playbook wordpress.yml рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:



 - hosts: appservers-php sudo: yes vars: - mysql_root_password: "SuperP@S$w0rd" - domain: "example.com" - download_url: "http://wordpress.org/latest.tar.gz" - wpdirectory: "/var/www" - db_name: "wordpress" - db_user: "wordpress" - db_password: "wordpress" roles: - { role: nginx } - { role: percona-mysql } - { role: memcached } - { role: php5 } - { role: wordpress }
      
      





рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╕рд░реНрд╡рд░ рдкрд░, рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ, рдФрд░ рдХрд┐рд╕ рдЕрдзрд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрди рдХрд░рдирд╛ рд╣реИред





рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореЗрдЬрдмрд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░ рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ:



 [appservers-php] example.com ansible_ssh_host=10.0.0.2 ansible_ssh_user=ubuntu
      
      





рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдмреНрд▓реЙрдХ рд╢рдмреНрдж рд╣реЛрд╕реНрдЯ рдХреА рд╕реВрдЪреА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ wordress.yml рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдЖрдЧреЗ рдПрдХ рдирдИ рд▓рд╛рдЗрди рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ред

рд╕рд░реНрд╡рд░ рдбреЛрдореЗрди рдкрд╣рд▓реЗ рд╡рд╛рд▓рд╛ рд╣реИред

рджреВрд╕рд░рд╛ рдЙрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ Ansible рдХреЛ ssh рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХрд╛ рдбреЛрдореЗрди рдкрд╣рд▓реЗ рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рд╕рд░реНрд╡рд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реИ, рддреЛ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред

рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде Ansible ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдЧрд╛ред



рдЕрдм рдЖрдк рд╕реНрдерд╛рдкрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



 ansible-playbook -i hosts wordpress.yml -kK
      
      









рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Wordpress рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рддреИрдпрд╛рд░ рдиреБрд╕реНрдЦрд╛ рдЬреАрдереБрдм рдкрд░ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдХрд╛рдо рдкрд░ (рдФрд░ рдШрд░ рдкрд░) рджрд┐рдирдЪрд░реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝реА рдорджрдж рдХрд░реЗрдЧрд╛ред рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред



All Articles