小编Dav*_*avB的帖子

Ansible非root sudo用户和"成为"特权升级

我已经设置了一个david具有sudo权限的用户的盒子.我可以进入框中并执行sudo操作apt-get install.当我尝试使用Ansible的"成为特权升级"做同样的事情时,我收到一个permission denied错误.所以一个简单的剧本可能看起来像这样:

simple_playbook.yml:

---
- name: Testing...
  hosts: all
  become: true
  become_user: david
  become_method: sudo

  tasks:
    - name: Just want to install sqlite3 for example...
      apt: name=sqlite3 state=present
Run Code Online (Sandbox Code Playgroud)

我使用以下命令运行此playbook:

ansible-playbook -i inventory simple_playbook.yml --ask-become-pass
Run Code Online (Sandbox Code Playgroud)

这给了我一个密码的提示,我给出了,我得到以下错误(缩写):

fatal: [123.45.67.89]: FAILED! => {...
failed: E: Could not open lock file /var/lib/dpkg/lock - open (13: 
Permission denied)\nE: Unable to lock the administration directory
(/var/lib/dpkg/), are you root?\n", ...}
Run Code Online (Sandbox Code Playgroud)

为什么我被拒绝了?

附加信息

我正在运行Ansible 2.1.1.0并且我的目标是Ubuntu 16.04.如果我按照Ansible <v1.9 使用remote_user和 …

privileges sudo ansible

16
推荐指数
2
解决办法
4万
查看次数

嵌套关联,如何为视图,rails准备变量

运行Rails 3.1.3 ......

我将使用一个嵌套关联的简单示例(不确定这是否是正确的术语).基本上我是在建模数据库 - 每个数据库都有自己的表,每个表都有自己的列:

class Database < ActiveRecord::Base
  has_many :tables
end

class Table < ActiveRecord::Base
  belongs_to :database
  has_many :columns
end

class Column < ActiveRecord::Base
  belongs_to :table
end
Run Code Online (Sandbox Code Playgroud)

我的问题是,我想在视图中显示数据库的表和列,在将这些数据传递给视图之前捆绑这些数据的好方法.基本上,我的控制器和视图会是什么样子?

我想出了以下内容,但如果没有更好的方法,我会感到惊讶:

我的控制器:

class DatabasesController < ApplicationController
  def show
    @database = Database.find_by_id(params[:id])
    @tables = @database.tables
    @columns = @database.tables.columns
  end
end
Run Code Online (Sandbox Code Playgroud)

我的看法:

Database: <%= @database.database_name %><br />
<% @tables.each do |table| %>
  Table: <%= table.table_name %><br />
  <% table.columns.each do |column| %>
    Column: <%= column.column_name %><br />
  <% end %>
<% end …
Run Code Online (Sandbox Code Playgroud)

nested ruby-on-rails associations

7
推荐指数
1
解决办法
187
查看次数

Ruby哈希键以数组为条件的哈希值

我希望在满足条件时将哈希键值提取到数组.例如,使用散列h我想提取值为"true"的键:

h = { :a => true, :b => false, :c =>true }
Run Code Online (Sandbox Code Playgroud)

我想出来了:

h.map {|k,v| k if v==true} - [nil]
Run Code Online (Sandbox Code Playgroud)

任何替代品?

ruby hash

3
推荐指数
1
解决办法
4898
查看次数

在单个数据步骤中将一行合并到所有行

两个数据集:

  1. 第一组数据有很多观察结果:

    data ds1;
      do var1=1 to 3;
        output;
      end;
    run;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 第二个数据集有1个观察结果:

    data ds2;
      var2=1;
    run;
    
    Run Code Online (Sandbox Code Playgroud)

每个数据集中的变量数量无关紧要.

我想将DS2中的单个观察值与DS1中的所有观察值合并得到:

数据集DS3:

VAR1 VAR2
1    1
2    1
3    1
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用PROC SQL步骤执行此操作:

proc sql noprint;
  create table ds3 as
  select a.*, b.*
  from ds1 as a, ds2 as b;
quit;
Run Code Online (Sandbox Code Playgroud)

是否可以通过单个数据步骤进行预处理?

sas

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

ansible ×1

associations ×1

hash ×1

nested ×1

privileges ×1

ruby ×1

ruby-on-rails ×1

sas ×1

sudo ×1