小编Ale*_*lex的帖子

理解python变量赋值

我正在尝试自学python(和一般的编程),并且对变量赋值有点困惑.我明白,如果我有

>>> a = [1,2,3]
>>> b = a
Run Code Online (Sandbox Code Playgroud)

b指的是内存中的同一个对象a.因此,如果我想创建一个新列表,b使用与当前相同的值a,我将如何实现?

另外,请考虑以下示例:

>>> a = [1, 2, 3]
>>> b = a
>>> x = a[1]
>>> a[1] = 4
>>> print a, b, x
[1, 4, 3] [1, 4, 3] 2
Run Code Online (Sandbox Code Playgroud)

我从这个例子中看到,这x是一个新对象,但b指向a.有人可以向我解释这里发生了什么,为什么x是一个新的对象,但b不是?

python

8
推荐指数
1
解决办法
270
查看次数

Ansible无法设置临时权限

我正在使用ansible替换多个RHEL6和RHEL7服务器上的用户的ssh密钥。我正在运行的任务是:

- name: private key   
  copy:
    src: /Users/me/Documents/keys/id_rsa
    dest: ~/.ssh/
    owner: unpriv
    group: unpriv
    mode: 0600
    backup: yes
Run Code Online (Sandbox Code Playgroud)

我尝试更新的两个主机出现以下错误:

致命的:[host1]:失败!=> {“ failed”:true,“ msg”:“无法对临时文件设置权限当成为非特权用户时,需要创建Ansible(rc:1,err:chown:更改/tmp/ansible-tmp-19/': Operation not permitted\nchown: changing ownership of/ tmp / ansible-tmp-的所有权19 / stat.py':不允许操作\ n)。有关解决此问题的信息,请参见 https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user “}

事实是,这两个正在得到错误的是一些正在更新的克隆。我已经比较了sudoers和sshd设置,以及/ tmp目录上的权限和安装选项。在问题主机和工作主机之间,它们都是相同的。关于下一步我可以检查的任何想法?

我在Mac OS Sierra上运行ansible 2.3.1.0,如果有帮助的话。

更新:

@techraf

我不知道为什么这可以在除两个主机之外的所有主机上工作。这是原始剧本:

- name: ssh_keys
  hosts: my_hosts
  remote_user: my_user
  tasks:
    - include: ./roles/common/tasks/keys.yml
      become: yes
      become_method: sudo
Run Code Online (Sandbox Code Playgroud)

和原始的keys.yml:

- name: public key
  copy:
    src: /Users/me/Documents/keys/id_rsab
    dest: ~/.ssh/
    owner: unpriv
    group: unpriv
    mode: 060
    backup: …
Run Code Online (Sandbox Code Playgroud)

ansible

5
推荐指数
3
解决办法
5607
查看次数

标签 统计

ansible ×1

python ×1