Как установить kubectl? - PullRequest
0 голосов
/ 04 марта 2020

Я хотел бы установить https://kubernetes.io/docs/tasks/tools/install-kubectl/. Инструкции по установке описаны следующим образом:

  ....
  curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
  echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
  sudo apt-get update
  sudo apt-get install -y kubectl

Как перевести приведенные выше инструкции в Ansible задачи?

То, что я пробовал, это:

  - name: Add kubectl GPG apt Key
    apt_key:
      url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
      state: present

Здесь я даже не знаю, нужно ли мне сначала добавить get_url задачу или добавить ее напрямую, как указано выше.

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Вы на правильном пути. Мы устанавливаем Rundeck, который выполняет аналогичные шаги, используя следующий код Ansible:

- name: add rundeck apt repository key
  become: true
  apt_key:
    url: https://bintray.com/user/downloadSubjectPublicKey?username=bintray

- name: add rundeck apt repository
  become: true
  apt_repository:
    repo: 'deb https://rundeck.bintray.com/rundeck-deb /'
    filename: rundeck

- name: install rundeck dependencies
  become: true
  apt:
    name: openjdk-8-jdk

- name: install rundeck and rundeck-cli
  become: true
  apt:
    name: "{{ item }}"
  loop:
    - rundeck
    - rundeck-cli

Используйте это в качестве примера, и у вас должно быть хорошо для go. Модуль apt_repository автоматически запускается apt-get update при добавлении новых репозиториев.

0 голосов
/ 04 марта 2020
  1. Вы можете использовать модуль URI вместо команды curl. Для получения дополнительной информации https://docs.ansible.com/ansible/latest/modules/uri_module.html

    tasks:
        - name: post to consul
        uri:
           url: http://marathon.service.consul:8080/v2/apps/
           method: POST
           body: "{{ lookup('file','mesos-consul.json') }}"
           body_format: json
           headers:
              Content-Type: "application/json"
    
  2. Вы можете зарегистрировать результат этого вызова в переменной. т.е. сохранение результата в переменную ansible, которая будет использоваться на следующем шаге, как дополнение apt-key в вашем случае. Как сохранить результаты в переменной здесь - https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#registering -варианты

  3. Выполняя команды оболочки и переключаясь на пользователя sudo, вы можете найти его здесь: https://docs.ansible.com/ansible/latest/modules/shell_module.html и https://docs.ansible.com/ansible/2.4/become.html

  4. Как только вы поняли вышеизложенное, наконец, вам нужно просто написать файл yaml с нужными вам задачами и в порядке, который вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...