Ansible和" sudo su - "

时间:2017-10-15 07:22:36

标签: automation ansible

我有一些机器,我用主帐户登录,然后我可以执行" sudo su - "如果有需要,没有密码。 你知道Ansible的任何方式来执行" sudo su - "登录我的主帐户后?提前谢谢。

我在例子中尝试了什么 play.yml:

---
- hosts: b1
  remote_user: user
  become: yes
  tasks:
     - name: who
       shell: whoami >> file.txt

还将此添加到Ansible主机文件:

host ansible_ssh_host=7.7.7.7 ansible_become_method=su ansible_become_exe="sudo su -"

当我用-k参数执行playbook时,它会询问我的传递,然而,它稍后不会成为root。

3 个答案:

答案 0 :(得分:0)

你可能过于复杂了。

如果登录用户已经拥有无密码的sudo,那么试试这个 - 从主机上删除额外的东西并使用更简单的游戏。

  

HOSTFILE

class Btn extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      succeed: false
    };
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    this.setState(previousState => {
      return {
        succeed: !previousState.succeed
      };
    });
  }

  render() {
    const succeed = (
      <div>
          <button bsStyle="primary" bsSize="large">Succeed</button>
      </div>
    )

    const notsucceed = (
      <div>
        <button bsStyle="primary" bsSize="large">Not Succeed</button>
      </div>
    )

    return (
      <div onClick={this.handleClick.bind(this)}>
        {this.state.succeed ? succeed : notsucceed}
      </div>
    )
  }
};
  

剧本

b1 ansible_ssh_host=7.7.7.7

答案 1 :(得分:0)

- hosts: b1
  become: yes
  become_user: oracle
  become_method: sudo
  tasks:
     - name: who
       command: /u01/app/oracle/OPatch/opatch lsinv

ansible-playbook patch1.yml -i /Users/Desktop/AnsibleSCP/hosts.inv -k

答案 2 :(得分:0)

这个对我有用:

- hosts: b1
  become: yes
  become_exe: "sudo su -"
  become_method: su
  tasks:
    ...