用ansible安装指南针
install compass with ansible
我正在尝试使用 Ansible 在 EC2 服务器上安装我们的一项服务所需的指南针。
通常我们使用以下命令手动安装它 -
curl -L https://get.rvm.io | bash -s stable
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
source ~/.rvm/scripts/rvm
echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
rvm install 2.1.2
rvm use 2.1.2 --default
gem install compass
然后运行罗盘编译成功。
现在,当我尝试使用 Ansible 剧本(使用 shell 模块)运行 这些命令时,系统找不到指南针命令。
我已经尝试使用 RVM 官方 Ansible 角色(https://github.com/rvm/rvm1-ansible),但我得到的只是更多的错误。
我尝试使用 apt 安装 rubydev 和 rubygems-integration,然后使用 gem 模块安装 gem。这确实识别了指南针命令,但是当我尝试编译甚至显示指南针版本时,它 returns 出错。这是 运行ning compass -v 的错误,例如:
Errno::ENOENT on line ["25"] of /usr/lib/ruby/vendor_ruby/compass/version.rb: No such file or directory - /usr/lib/ruby/vendor_ruby/compass/../../VERSION.yml
Run with --trace to see the full backtrace
这是成功安装指南针的剧本,但给我留下了我提到的错误:
---
- hosts: "{{ host_name }}"
become: yes
become_method : sudo
tasks:
- name: install ruby-dev
apt:
name: ruby-dev
- name: install rubygems
apt:
name: rubygems-integration
- name: install ruby compass
apt:
name: ruby-compass
...
希望得到一些帮助。
这是我最终安装指南针的剧本 -
---
- hosts: "{{ host_name }}"
become: yes
become_user : deploy3
tasks:
#- name: get gpg
# shell: "gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3"
- name: install rvm
shell: "curl -L https://get.rvm.io | bash -s stable"
- name: install rvm 2.1.2
shell: "/home/deploy2/.rvm/bin/rvm install 2.1.2"
- name: use rvm 2.1.2 by default and install compass
shell: "bash -lc \"/home/deploy2/.rvm/bin/rvm use 2.1.2 --default && /home/deploy3/.rvm/rubies/ruby-2.1.2/bin/gem install compass\""
...
您也可以使用 gem 模块,它比 shell 脚本更好,因为它不依赖于您使用的 Linux 发行版,例如:
一个剧本示例
- name: Installing ruby
apt:
pkg: "{{ item }}"
state: present
with_items:
- ruby2.0
- ruby2.0-dev
- name: Symlink exists for Ruby 2.0
file: src=/usr/bin/ruby2.0 dest=/usr/local/bin/ruby state=link
- name: Symlink exists for Ruby Gems 2.0
file: src=/usr/bin/gem2.0 dest=/usr/local/bin/gem state=link
- name: install compass
gem:
name: compass
state: latest
顺便说一句,您可以在此处查看有关 gem 模块的更多信息到 ansible 文档中:http://docs.ansible.com/ansible/latest/gem_module.html
我正在尝试使用 Ansible 在 EC2 服务器上安装我们的一项服务所需的指南针。 通常我们使用以下命令手动安装它 -
curl -L https://get.rvm.io | bash -s stable
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
source ~/.rvm/scripts/rvm
echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
rvm install 2.1.2
rvm use 2.1.2 --default
gem install compass
然后运行罗盘编译成功。 现在,当我尝试使用 Ansible 剧本(使用 shell 模块)运行 这些命令时,系统找不到指南针命令。
我已经尝试使用 RVM 官方 Ansible 角色(https://github.com/rvm/rvm1-ansible),但我得到的只是更多的错误。
我尝试使用 apt 安装 rubydev 和 rubygems-integration,然后使用 gem 模块安装 gem。这确实识别了指南针命令,但是当我尝试编译甚至显示指南针版本时,它 returns 出错。这是 运行ning compass -v 的错误,例如:
Errno::ENOENT on line ["25"] of /usr/lib/ruby/vendor_ruby/compass/version.rb: No such file or directory - /usr/lib/ruby/vendor_ruby/compass/../../VERSION.yml
Run with --trace to see the full backtrace
这是成功安装指南针的剧本,但给我留下了我提到的错误:
---
- hosts: "{{ host_name }}"
become: yes
become_method : sudo
tasks:
- name: install ruby-dev
apt:
name: ruby-dev
- name: install rubygems
apt:
name: rubygems-integration
- name: install ruby compass
apt:
name: ruby-compass
...
希望得到一些帮助。
这是我最终安装指南针的剧本 -
---
- hosts: "{{ host_name }}"
become: yes
become_user : deploy3
tasks:
#- name: get gpg
# shell: "gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3"
- name: install rvm
shell: "curl -L https://get.rvm.io | bash -s stable"
- name: install rvm 2.1.2
shell: "/home/deploy2/.rvm/bin/rvm install 2.1.2"
- name: use rvm 2.1.2 by default and install compass
shell: "bash -lc \"/home/deploy2/.rvm/bin/rvm use 2.1.2 --default && /home/deploy3/.rvm/rubies/ruby-2.1.2/bin/gem install compass\""
...
您也可以使用 gem 模块,它比 shell 脚本更好,因为它不依赖于您使用的 Linux 发行版,例如:
一个剧本示例
- name: Installing ruby
apt:
pkg: "{{ item }}"
state: present
with_items:
- ruby2.0
- ruby2.0-dev
- name: Symlink exists for Ruby 2.0
file: src=/usr/bin/ruby2.0 dest=/usr/local/bin/ruby state=link
- name: Symlink exists for Ruby Gems 2.0
file: src=/usr/bin/gem2.0 dest=/usr/local/bin/gem state=link
- name: install compass
gem:
name: compass
state: latest
顺便说一句,您可以在此处查看有关 gem 模块的更多信息到 ansible 文档中:http://docs.ansible.com/ansible/latest/gem_module.html