2015-08-04 5 views
0

Я использую версию 1.5.4 на 8 месяцев. Вчера я обнаружил, что login_port модуля mysql_repilcation не поддерживается в версии 1.5.4.Мигрирующая версия версии 1.5.4 до последней доступной версии

Это ошибка в этой версии, но они поддерживаются в последней версии (> = 1.8, я думаю). Но у меня уже есть более 50 анзибль скрипт работает в 1.5.4 , который был использован в стороне производства

Каков наилучший возможный сценарий:

  1. Если я перееду 1.5.4 до последней версии, повлияет ли он на любой существующий незаменимый скрипт

  2. Возможно ли достичь желаемого outout командой shell.

Я застрял посреди океана. Пожалуйста, помогите мне из этой проблемы

ответ

1
  1. Если я перееду 1.5.4 до последней версии, это будет влияние на любой существующий анзибль сценарий

Это сильно зависит от пьес/role, но я уверен, что он не будет работать без изменений. Например, я много раз читал, что в настоящее время пользователи имеют проблемы с sudo на уровне роли:

- roles: 
    - role: whatever 
    sudo: yes 

Это была нарушена в 1.9.1. Официально он исправлен, но я читал, что у пользователей все еще есть проблемы. Обычно sudo заменен на become. Несмотря на то, что документация claims sudo все еще поддерживается, это явно не полностью.

Другое изменение, которое я помню, было связано с транспортом ssh, но вы должны только спотыкаться об этой проблеме, если перезагрузите свой хост во время игры с Ansible.

Я думаю, что sudo/стать изменением было самым большим. Если вы хотите избежать хлопот и не обязательно нуждаетесь в самой последней версии, вы можете просто перейти на версию до 1.9 и иметь больше шансов пройти без изменений.

Если у вас есть время, я рекомендую вам сделать игру совместимой с последней версией. Версия Ansible 2.0 впереди и представит много новых очень полезных функций.

  1. Возможно ли достичь желаемого outout командой shell.

Вы хотите автоматически конвертировать свои playbook/role? Нет, если вы точно не узнаете о проблемах и не напишите этот сценарий самостоятельно. :)

Я застрял посреди океана.пожалуйста, помогите мне решить эту проблему.

Как правило, вы должны сначала протестировать каждую новую версию Ansible в тестовой/промежуточной среде. Если у вас нет тестовых хостов, вы можете настроить локальные виртуальные машины. Там вы можете проверить и исправить свою игру.

0

Поскольку модуль login_port модуля mysql_repilcation не поддерживается в незаменимой версии 1.7. Я нашел способ добиться результата.

- name: "stop slaves of existing database server" 
    shell: > 
     mysql -uroot -p{{ mysql_exist_slave_database_password }} \ 
     -P{{ default_port }} -h{{ default_host }} -e "stop slave" -s 


- name: "Retrieve the Position and binary file number using slave 
     status" 
    shell: > 
     mysql -uroot -p{{ mysql_exist_slave_database_password }} \ 
      -P{{ default_port }} -h{{ default_host }} -e "show slave 
      status\G" -s 
    register: output 



- name: "start slaves of existing database server" 
shell: > 
     mysql -uroot -p{{ mysql_exist_slave_database_password }} -P{{  
     default_port }} -h{{ default_host }} -e "start slave" -s 
Смежные вопросы