我有一些机器,我用主帐户登录,然后我可以执行" 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。
答案 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:
...