How to clear gitlab aws Credentials?

Viewed 27

So I'm working with gitlab with ansible and deploying it to an EC2 instance. There was some authentication issue on the pipeline so I changed my yaml file to authenticate always whenever I deploy.

It worked for a while, but now I encountered an issue saying "DuplicateSectionError" that describes an issue with AWS configuration because I've probably authenticated too much.

Here's the error log:

configparser.DuplicateSectionError: While reading from '/root/.aws/credentials' [line  4]: section 'default' already existsDuring handling of the above exception, another exception occurred:Traceback (most recent call last):  File \"/usr/bin/aws\", line 27, in <module>    sys.exit(main())  File \"/usr/bin/aws\", line 23, in main    return awscli.clidriver.main()  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 68, in main    driver = create_clidriver()  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 77, in create_clidriver    load_plugins(session.full_config.get('plugins', {}),  File \"/usr/lib/python3/dist-packages/botocore/session.py\", line 364, in full_config    cred_profiles = botocore.configloader.raw_config_parse(  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 151, in raw_config_parse    raise botocore.exceptions.ConfigParseError(botocore.exceptions.ConfigParseError: Unable to parse config file: /root/.aws/credentialsTraceback (most recent call last):  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 149, in raw_config_parse    cp.read([path])  File \"/usr/lib/python3.8/configparser.py\", line 697, in read    self._read(fp, filename)  File \"/usr/lib/python3.8/configparser.py\", line 1067, in _read    raise DuplicateSectionError(sectname, fpname,configparser.DuplicateSectionError: While reading from '/root/.aws/credentials' [line  4]: section 'default' already existsDuring handling of the above exception, another exception occurred:Traceback (most recent call last):  File \"/usr/bin/aws\", line 27, in <module>    sys.exit(main())  File \"/usr/bin/aws\", line 23, in main    return awscli.clidriver.main()  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 68, in main    driver = create_clidriver()  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 77, in create_clidriver    load_plugins(session.full_config.get('plugins', {}),  File \"/usr/lib/python3/dist-packages/botocore/session.py\", line 364, in full_config    cred_profiles = botocore.configloader.raw_config_parse(  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 151, in raw_config_parse    raise botocore.exceptions.ConfigParseError(botocore.exceptions.ConfigParseError: Unable to parse config file: /root/.aws/credentialsTraceback (most recent call last):  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 149, in raw_config_parse    cp.read([path])  File \"/usr/lib/python3.8/configparser.py\", line 697, in read    self._read(fp, filename)  File \"/usr/lib/python3.8/configparser.py\", line 1067, in _read    raise DuplicateSectionError(sectname, fpname,configparser.DuplicateSectionError: While reading from '/root/.aws/credentials' [line  4]: section 'default' already existsDuring handling of the above exception, another exception occurred:Traceback (most recent call last):  File \"/usr/bin/aws\", line 27, in <module>    sys.exit(main())  File \"/usr/bin/aws\", line 23, in main    return awscli.clidriver.main()  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 68, in main    driver = create_clidriver()  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 77, in create_clidriver    load_plugins(session.full_config.get('plugins', {}),  File \"/usr/lib/python3/dist-packages/botocore/session.py\", line 364, in full_config    cred_profiles = botocore.configloader.raw_config_parse(  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 151, in raw_config_parse    raise botocore.exceptions.ConfigParseError(botocore.exceptions.ConfigParseError: Unable to parse config file: /root/.aws/credentialsError: Cannot perform an interactive login from a non TTY device", "stderr_lines": ["Traceback (most recent call last):", "  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 149, in raw_config_parse", "    cp.read([path])", "  File \"/usr/lib/python3.8/configparser.py\", line 697, in read", "    self._read(fp, filename)", "  File \"/usr/lib/python3.8/configparser.py\", line 1067, in _read", "    raise DuplicateSectionError(sectname, fpname,", "configparser.DuplicateSectionError: While reading from '/root/.aws/credentials' [line  4]: section 'default' already exists", "", "During handling of the above exception, another exception occurred:", "", "Traceback (most recent call last):", "  File \"/usr/bin/aws\", line 27, in <module>", "    sys.exit(main())", "  File \"/usr/bin/aws\", line 23, in main", "    return awscli.clidriver.main()", "  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 68, in main", "    driver = create_clidriver()", "  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 77, in create_clidriver", "    load_plugins(session.full_config.get('plugins', {}),", "  File \"/usr/lib/python3/dist-packages/botocore/session.py\", line 364, in full_config", "    cred_profiles = botocore.configloader.raw_config_parse(", "  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 151, in raw_config_parse", "    raise botocore.exceptions.ConfigParseError(", "botocore.exceptions.ConfigParseError: Unable to parse config file: /root/.aws/credentials", "Traceback (most recent call last):", "  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 149, in raw_config_parse", "    cp.read([path])", "  File \"/usr/lib/python3.8/configparser.py\", line 697, in read", "    self._read(fp, filename)", "  File \"/usr/lib/python3.8/configparser.py\", line 1067, in _read", "    raise DuplicateSectionError(sectname, fpname,", "configparser.DuplicateSectionError: While reading from '/root/.aws/credentials' [line  4]: section 'default' already exists", "", "During handling of the above exception, another exception occurred:", "", "Traceback (most recent call last):", "  File \"/usr/bin/aws\", line 27, in <module>", "    sys.exit(main())", "  File \"/usr/bin/aws\", line 23, in main", "    return awscli.clidriver.main()", "  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 68, in main", "    driver = create_clidriver()", "  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 77, in create_clidriver", "    load_plugins(session.full_config.get('plugins', {}),", "  File \"/usr/lib/python3/dist-packages/botocore/session.py\", line 364, in full_config", "    cred_profiles = botocore.configloader.raw_config_parse(", "  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 151, in raw_config_parse", "    raise botocore.exceptions.ConfigParseError(", "botocore.exceptions.ConfigParseError: Unable to parse config file: /root/.aws/credentials", "Traceback (most recent call last):", "  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 149, in raw_config_parse", "    cp.read([path])", "  File \"/usr/lib/python3.8/configparser.py\", line 697, in read", "    self._read(fp, filename)", "  File \"/usr/lib/python3.8/configparser.py\", line 1067, in _read", "    raise DuplicateSectionError(sectname, fpname,", "configparser.DuplicateSectionError: While reading from '/root/.aws/credentials' [line  4]: section 'default' already exists", "", "During handling of the above exception, another exception occurred:", "", "Traceback (most recent call last):", "  File \"/usr/bin/aws\", line 27, in <module>", "    sys.exit(main())", "  File \"/usr/bin/aws\", line 23, in main", "    return awscli.clidriver.main()", "  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 68, in main", "    driver = create_clidriver()", "  File \"/usr/lib/python3/dist-packages/awscli/clidriver.py\", line 77, in create_clidriver", "    load_plugins(session.full_config.get('plugins', {}),", "  File \"/usr/lib/python3/dist-packages/botocore/session.py\", line 364, in full_config", "    cred_profiles = botocore.configloader.raw_config_parse(", "  File \"/usr/lib/python3/dist-packages/botocore/configloader.py\", line 151, in raw_config_parse", "    raise botocore.exceptions.ConfigParseError(", "botocore.exceptions.ConfigParseError: Unable to parse config file: /root/.aws/credentials", "Error: Cannot perform an interactive login from a non TTY device"], "stdout": "", "stdout_lines": []}

I've found something close to my problem which is this: "configparser.DuplicateOptionError" when running AWS CLI command

So my question is, how do I clear wherever the authentication is happening from the bash script I've set for my gitlab? Is this the right way to do this or am I going about this on the wrong way?

Here's my gitlab yaml:

deploy:server:docker:
  stage: deploy
  image: registry.itsyndicate.org/public-area/ansible:2.10.4-py2.9.1-buster
  before_script:
    - eval $(ssh-agent -s)
    - ssh-add <(echo "$DEV_SSH_PRIVATE_KEY")
    - mkdir -p ~/.ssh && chmod 700 ~/.ssh
    - echo -e "Host *\n\tStrictHostKeyChecking no\n\tPort 22722\n\n" >> ~/.ssh/config
  script:
    - export API_SERVER=$(cat ./deploy.env | grep API_SERVER | awk -F= '{print $2}')
    - export ENVIRONMENT=$(cat ./deploy.env | grep ENVIRONMENT | awk -F= '{print $2}')
    - echo ${ENVIRONMENT}
    - echo Deploy on Server_IP - ${API_SERVER}
    - ansible-playbook -i ansible/inventory --limit ${ENVIRONMENT} --extra-vars "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} ENVIRONMENT=${ENVIRONMENT} IMAGE_TAG=${CI_COMMIT_SHA}-${CI_PIPELINE_ID} IMAGE_REGISTRY=${AWS_DOCKER_REGISTRY}" ansible/deploy.yml 
  dependencies:
    - prepare:envfiles:dev
    - build:server:docker
  rules:
    - if: '$CI_COMMIT_BRANCH =~ /Feature-*/'
      when: manual
  cache: {}
0 Answers
Related