Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting Error "You need to be root to perform this command" ansible-playbook

Tags:

ansible

I am running below playbook. which will login to the server using ec2-user but mysql-java-connector will be installed, my test1 user.

---
- hosts: cluster
  become: yes
  remote_user: ec2-user
  tasks:
  - name: Create test1 User
      user:
        name: test1
        password: '$6$jQX0JQzf8GB$NI/Pv1rMLyxWYaFCGNsbrun3sfn5bXSzg89Ip.ga2yf3n7hhrjiPsEo5IChIA7X8xVxnuZzm2sWA7IRM6qZOR0'
        state: present
        shell: /bin/bash       # Defaults to /bin/bash
        system: no             # Defaults to no
        createhome: yes        # Defaults to yes
        home: /home/test1
  - name: Add users to sudoers
      lineinfile:
        dest : /etc/sudoers
        state: present
        line: 'test1  ALL=(ALL)  NOPASSWD: ALL'
  - name: Install mysql java connector
      become_user: test1
      become_method: sudo
      yum: name=mysql-connector-java state=present

Gets below error:

fatal: [xxx.xxx.xxx.211]: FAILED! => {"changed": false, "msg": "You need to be root to perform this command.\n", "rc": 1, "results": [""]}
like image 860
Sanjay Sethi Avatar asked Oct 17 '25 10:10

Sanjay Sethi


1 Answers

Same error, you should include become and become_user. In some cases add become method. More

- hosts: somehost
  name: Install something 
  become: yes
  remote_user: yourname

become

set to yes to activate privilege escalation.

become_user

set to user with desired privileges — the user you become, NOT the user you login as. Does NOT imply become: yes, to allow it to be set at host level. Default value is root.

like image 62
Ivan Vovk Avatar answered Oct 21 '25 09:10

Ivan Vovk