[PYTHON] Ansible Playbook zum Installieren und Konfigurieren von `pyenv`

Einführung

CentOS6 Python Version 2.6.6? Dann wird das Modul von pip installiert Einige Dinge haben nicht funktioniert, also installieren Sie pyenv und aktualisieren Sie die Python-Version. Ich habe ein Ansible-Playbook für CentOS6 erstellt. Klicken Sie hier für rbenv http://qiita.com/tbuchi888/items/fd2e8d7e1790d398b281

Hauptschritte der Konstruktion

Führen Sie als Root für CentOS6 Folgendes aus

  1. Installation von pyenv
  2. Installation von Python Version 2.7.8

Spielbuch, Vagrantfile (Ansible provisoner) usw.

gits werden [hier] sein (https://gist.github.com/tbuchi888/03f2dccdd7726770cb0522260141ca41). git clone https://gist.github.com/tbuchi888/03f2dccdd7726770cb0522260141ca41

site.yml


---
 - include: install_pyenv_without_proxy.yml

Die Version von Python ist in vars: python_ver: 2.7.8 des folgenden Playbooks angegeben. Bitte ändern Sie sie entsprechend.

install_pyenv_without_proxy.yml


---
- hosts: all
  gather_facts: no
  become: yes
  vars:
    python_ver: 2.7.8
  tasks:
    - name: which pyenv
      shell:  source ~/.bash_profile; which pyenv
      register: pyenv_install
      failed_when: pyenv_install.rc == 0
    - debug: var=pyenv_install

    - block:
        - debug: msg="---------- block start ----------"
        - name: yum install with_items
          yum:
            name:  '{{ item.name }}'
            state: latest
          register: RESULT
          with_items:
            - name: gcc
            - name: gcc-c++
            - name: make
            - name: git
            - name: openssl-devel
            - name: bzip2-devel
            - name: zlib-devel
            - name: readline-devel
            - name: sqlite-devel
            - name: bzip2
            - name: sqlite
            - name: patch
        - name: results
          debug: var=RESULT.results

        - name: git clone pyenv , pyenv-virtualenv
          git:
            repo: '{{ item.repo }}'
            dest: '{{ item.dest }}'
          register: RESULT
          with_items:
            - repo: git://github.com/yyuu/pyenv.git
              dest: ~/.pyenv
            - repo: git://github.com/yyuu/pyenv-virtualenv.git
              dest: ~/.pyenv/plugins/pyenv-virtualenv
        - name: results
          debug: var=RESULT.results

        - name: "install pyenv and python ver.{{ python_ver }}"
          shell: '{{ item.cmd }}'
          register: RESULT
          with_items:
            - cmd: echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.bash_profile
            - cmd: echo 'if [ -d "${PYENV_ROOT}" ]; then' >> ~/.bash_profile
            - cmd: echo '    export PATH=${PYENV_ROOT}/bin:$PATH' >> ~/.bash_profile
            - cmd: echo '    eval "$(pyenv init -)"' >> ~/.bash_profile
            - cmd: echo 'fi' >> ~/.bash_profile
            - cmd: source ~/.bash_profile; pyenv -v
            - cmd: source ~/.bash_profile; python -V
            - cmd: source ~/.bash_profile; pyenv install '{{ python_ver }}'
            - cmd: source ~/.bash_profile; pyenv global '{{ python_ver }}'
            - cmd: source ~/.bash_profile; python -V
        - name: results
          debug: var=RESULT.results

        - debug: msg="---------- block end   ----------"

      when: pyenv_install.rc == 1

Das Folgende ist für die Vagrant-Umgebung Das Folgende ist "vagrant up", um den Server von CentOS 6 zu starten und die pyenv-Umgebung mit Ansible provisoner zu erstellen.

Ersetzen Sie den Box-Dateinamen durch den Box-Dateinamen von CentOS 6 in Ihrer Umgebung. Insbesondere im Fall einer 32-Bit-Maschinenumgebung ersetzen Sie diese bitte durch den Box-Dateinamen Ihrer eigenen 32-Bit-Version CentOS6.

Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://atlas.hashicorp.com/search.
  # Please replace it with a BOX name of CentOS6 for one's own 32bit when your host is 32bit machine.
  config.vm.box = "geerlingguy/centos6"

  # Add ansible provisioner
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "site.yml"
  end
end

Wie benutzt man

Ausführungsumgebung für die oben genannten Playbooks usw.

Ansible provisioner and Vagrant,Virtulbox Host  - OS:OSX yosemite --Virtualbox: Version 5.0.10 r104061  - Vagrant: Vagrant 1.8.1  - Ansible:

$ansible --version
ansible 2.1.0 (devel c600ab81ee) last updated 2016/04/20 11:11:25 (GMT +900)
  lib/ansible/modules/core: (detached HEAD 98322a777f) last updated 2016/04/20 11:11:54 (GMT +900)
  lib/ansible/modules/extras: (detached HEAD 1aecfc1e19) last updated 2016/04/20 11:11:55 (GMT +900)
  config file = 
  configured module search path = Default w/o overrides

pyenv install Server - OS: CentOS6.8

Recommended Posts

Ansible Playbook zum Installieren und Konfigurieren von `pyenv`
Installieren Sie pyenv und pyenv-virtualenv
Installation von Ansible
So installieren und konfigurieren Sie Amsel
Installieren und konfigurieren Sie den TigerVNC-Server unter Linux
Installieren Sie pyenv und Python 3.6.8 unter Ubuntu 18.04 LTS
Installieren Sie pyenv und rbenv systemweit unter CentOS
Installieren Sie pyenv auf dem Mac
Installieren Sie die neueste stabile Version von Python mit pyenv (sowohl 2 als auch 3).
Installieren Sie pyenv auf Raspberry Pi, um Python zu verwalten
Installieren Sie pyenv unter OSX
Installieren Sie pyenv auf MacBookAir und wechseln Sie Python zur Verwendung
Mechanismus von Pyenv und Virtualenv
Installieren Sie Python und Flask (Windows 10)
Installieren Sie ansible aus dem Quellcode
Wenn pyenv BUILD FAILED installiert
Anmerkungen zu Pyenv und Atom
Installieren Sie Python 3.7 und Django 3.0 (CentOS)
Koexistenz von Pyenv und Autojump
Installieren Sie pyenv von Homebrew, installieren Sie Python von pyenv
Python mit Pyenv und Venv
Catalina auf Mac und Pyenv
Ansible Playbook zum Konfigurieren von Python-Einstellungen mit pyenv auf dem Mac
[Gelöst] ImportError: Kein Modul mit den Namen pyexpat und pyenv install ist moos